Python
DeepLearning

[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()