matplotlibは、pythonから利用可能なグラフ描画ライブラリです。
numpyやpandasで行った数値解析結果を視覚化する際など、いろいろと便利です。
matplotlibでは、いろいろと細かく指定ができるようになっています。
こんなことがしたいなと思うところがあれば、公式サイトのmatplotlib.pyplot.plotを調べてみてください。
今回は、x-yグラフの書き方について見ていきます。
matplotlibのインストール
pip install matplotlib
とりあえず描いてみる
x−yグラフ(折れ線グラフ)を書くときに使用するのが、matplotlib.pyplot.plot()です。
from matplotlib import pyplot as plt
x = [1, 2, 3, 4, 5, 6]
y = [1, 4, 9, 16, 25, 36]
plt.plot(x, y)
plt.show()
次に、このグラフのスタイルを設定していきます。
- マーカーを表示する
plot()の引数に、スタイルを指定します。 - 凡例を表示する
plot()を実行した後で、plt.legend()を実行します。 - グラフにタイトルをつける
plt.title()でタイトルを指定します。 - 軸にラベルをつける
plt.xlabel()、plt.ylabel()で軸ラベルを設定します。
from matplotlib import pyplot as plt
from matplotlib import rcParams
rcParams['font.family'] = 'sans-serif'
rcParams['font.sans-serif'] = ['Noto Sans CJK JP']
x = [1, 2, 3, 4, 5, 6]
y = [1, 4, 9, 16, 25, 36]
plt.title('graph title')
plt.xlabel('axis-x')
plt.ylabel('axis-y')
plt.plot(x, y, 'o-', label=u'観測値')
plt.legend()
plt.show()
plot()で使用できる主なスタイル
マーカーのスタイル
plot()にmarker引数で指定します。指定可能な値の一例を示します。(まだまだあります)
値 | 表示 |
. | |
o | |
s | |
v | |
^ | |
x |
色を指定する
color(または、c)引数で指定します。
値 | 色 |
r | 赤 |
g | 緑 |
b | 青 |
c | シアン |
m | マゼンタ |
y | 黄 |
k | 黒 |
w | 白 |
線の種類
linestyle(または、ls)引数で指定します。
– | 直線 |
— | 破線 |
-. | 一点鎖線 |
: | 点線 |
None または、” | 描画しない |
複数のグラフを重ねて描く
plt.plot()を続けて実行するだけでOKです。
from matplotlib import pyplot as plt
from matplotlib import rcParams
rcParams['font.family'] = 'sans-serif'
rcParams['font.sans-serif'] = ['Noto Sans CJK JP']
v1 = {
'x': [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0],
'y': [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0]
}
v2 = {
'x': [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0],
'y': [0.0, 1.0, 4.0, 9.0, 16.0, 25.0, 36.0]
}
plt.title('graph title')
plt.xlabel('axis-x')
plt.ylabel('axis-y')
# グリッド表示を追加しています。
plt.grid(True)
plt.plot(v1['x'], v1['y'], marker='o', label='v1', color='g')
plt.plot(v2['x'], v2['y'], marker='s', label='v2', color='r')
# x軸の表示範囲を指定
plt.xlim([-1, 7])
# y軸の表示範囲を指定
plt.ylim([-1, 50])
plt.legend()
plt.show()
関数の描画
やり方は、今までと同じです。y軸の値の部分に描画したい関数を指定するだけです。
from matplotlib import pyplot as plt
import numpy as np
from matplotlib import rcParams
rcParams['font.family'] = 'sans-serif'
rcParams['font.sans-serif'] = ['Noto Sans CJK JP']
x = np.arange(-10, 10, 0.1)
y1 = np.tan(x)
y2 = np.sin(x)
y3 = np.cos(x)
plt.title('graph title')
plt.xlabel('axis-x')
plt.ylabel('axis-y')
plt.grid(True)
plt.plot(x, y1, marker='o', label='tan', color='g', markersize=2)
plt.plot(x, y2, marker='s', label='sin', color='r', markersize=2)
plt.plot(x, y3, marker='v', label='cos', color='b', markersize=2)
plt.ylim([-2, 2])
plt.legend()
plt.show(
今回は、plot()の基本的な使い方について見てきました。
matplotlibを使えば、この他にも散布図やヒストグラムなんかも簡単に描くことができます。
それは、また、次回以降ということで。
コメント