[matplotlib] 基本的な操作

Posted on 2019/03/10 in programming , Updated on: 2019/04/03

はじめに

python における作図ライブラリとしてもっともメジャーな matplotlib の使い方。 非常に簡単にデータを視覚化でき、ラベルやテキストを自由に設定できる。また図中のすべての要素(ラベル、凡例、軸、色、タイトル等)を簡単に操作できる。

NumPy、pandasとjupyter notebookと組み合わせて使う。

[pandas] 基本的な操作
[NumPy_01] 基本的な操作
Qiita:データサイエンティストに向けたコーディング環境Jupyter Notebookの勧め

インポート

plt としてインポートするのが慣例。セットで NumPy と pandas もインポートしておく。
また、jupyter notebook内にグラフを表示するためのマジックコマンド%matplotlib inlineを追加。

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

%matplotlib inline

pltプロット (MATLABスタイル)

まず NumPy を使ってデータを準備。

# 0 ~ 10 までの 11コの要素を持つアレイを準備
x = np.linspace(0, 10, 11)
# array([ 0.,  1.,  2.,  3.,  4.,  5., 6.,  7.,  8.,  9., 10.])

y = x ** 2
# array([  0.,   1.,   4.,   9.,  16.,  25.,
#         36.,  49.,  64.,  81., 100.])

plt.plot()として、プロット図を描画する。
引数は、(x値, y値, +オプション) で渡す。また、下記の例のように、plt.~としてラベルやタイトルなど様々な要素を追加していくことができる。

# 3つめの引数で色を指定可能。色は Hex code でも渡せる。
plt.plot(x, y, 'blue')

# X, Yラベルおよびグラフタイトルを追加
plt.xlabel('X label')
plt.ylabel('Y label')
plt.title('Title')

グラフが表示される。

Alt Text>

複数の図形を表示

複数グラフを作成したい場合は、plt.subplot()を使う。 引数として(行数、列数、プロットする番号)を渡すことでいくつものグラフを自由に配置できる。

# plt.subplot(nrows, ncols, plot_number)

# 1行、2列で構成されるグラフの1つ目
plt.subplot(1, 2, 1)
plt.plot(x, y, 'r--') # redの破線

# 1行、2列で構成されるグラフの2つ目
plt.subplot(1, 2, 2)
plt.plot(y, x, 'g*-') # greenの*プロット

Alt Text>

棒グラフ

縦棒グラフ

棒グラフは、.bar()を使う。

# x = array([ 0.,  1.,  2.,  3.,  4.,  5., 6.,  7.,  8.,  9., 10.])
# y = x**2

plt.bar(x, y)

Alt Text>

横棒グラフ

plt.barh(x, y)

Alt Text>

ヒストグラム

# 平均100, 標準偏差10, データ数10000のアレイを作る。
x = np.random.normal(100, 10, 10000)

# ヒストグラム図を表示
plt.hist(x)

Alt Text>

.hist()には、様々な引数を与えることができる。 bins(棒)でヒストグラム図の棒数を指定できる。

# 各棒のサイズを 0.8倍にして
plt.hist(x, bins=50, rwidth=0.8)

x=100を中心に正規分布している綺麗な図が表示される。

Alt Text>

おわりに

matplotlib には、他にも多くのグラフ描画メソッドがあり、それらの各種パラメータも多岐にわたるため、個別記事にて投稿していこうと思いますので、関連記事も参考ください。