Edited at

[python]グラフ描画のためのライブラリMatplotlibの使い方

More than 1 year has passed since last update.

[参考]ゼロから作るDeep Learning(p130)

ディープラーニングの実験においては、

グラフ描画やデータの可視化が重要になる。

グラフ描画のためのライブラリMatplotlibを使えば、

簡単にグラフの描画やデータの可視化が簡単に行える。


Matplotlibの基本的な使い方。

「y=2x」を例に、描画のために以下のような値を指定する。

import numpy as np

import matplotlib.pyplot as plt

# 描画範囲の指定
# x = np.arange(x軸の最小値, x軸の最大値, 刻み)
x = np.arange(0, 6, 0.1)

# 計算式
y = 2 * x

# 横軸の変数。縦軸の変数。
plt.plot(x, y)

# 描画実行
plt.show()

以下のように描画出力される。


計算式を変えてみる

実際に「y=2x」以外の計算式をグラフ描画してみる。

コードの「#計算式」の部分を変えればグラフが変わる。


「y = 2 * (x**2)」の場合

import numpy as np

import matplotlib.pyplot as plt

x = np.arange(0, 6, 0.1)

# 計算式
y = 2 * (x**2)

plt.plot(x, y)
plt.show()


「y = sin(x)」の場合

# 計算式

y = np.sin(x)


描画範囲を変えてみる。

今までの例では、描画範囲をnp.arange(0, 6, 0.1)にした。

計算式はy=np.sin(x)で、描画範囲を変えてみる。


x軸(-12~+12)の範囲を描画する

x = np.arange(-12, 12, 0.1)

ちなみに、

arangeで指定する場合はy軸は値で自動で設定してくれるので、

計算式をy = 4 * np.sin(x)とするだけで、以下のようにy軸の範囲が広がる。


y軸の描画範囲を固定したい場合

以下のような実装だと、y軸はyの値によって変動する。

import numpy as np

import matplotlib.pyplot as plt

x = np.arange(0, 6, 0.1)
y = np.sin(x)
plt.plot(x, y)

plt.show()

y軸の範囲を固定したいときは、

ylimでy軸の描画範囲を指定する。

x軸の範囲を固定するxlimも用意されている。

import numpy as np

import matplotlib.pyplot as plt

x = np.arange(0, 6, 0.1)
y = np.sin(x)
plt.plot(x, y)

plt.ylim([-4,4])
plt.show()


刻みを変えてみる

以下のようなy=np.sin(x)を描画するとき、

np.arange(0, 6, 0.1)で描画範囲を指定していた。

arangeの第三引数で"数値の刻み"指定できる。

この例だと、0.1刻みで描画される。

import numpy as np

import matplotlib.pyplot as plt

x = np.arange(0, 6, 0.1)
y = np.sin(x)
plt.plot(x, y)
plt.show()

これを0.5刻みにすると以下のようになる。

角ばったような描画になる。

x = np.arange(0, 6, 0.5)


二つのグラフを描画するとき

sin関数とcos関数を同時に描画する。

import numpy as np

import matplotlib.pyplot as plt

# 描画範囲の指定
x = np.arange(0, 6, 0.1)

# 計算式
y1 = np.sin(x)
y2 = np.cos(x)

# グラフ描画設定
plt.plot(x, y1, label="sin") # y1グラフに、ラベル「sin」付与。
plt.plot(x, y2, linestyle="--", label="cos") # y2グラフに、ラベル「cos」付与。linestyleで線のスタイルを指定。
plt.xlabel("x")
plt.xlabel("y")
plt.title('sin & cos')

# ラベルの描画
plt.legend()
# グラフの描画実行
plt.show()