Matplotlib では Mathematica や Sympy のように数学関数をそのままグラフ出力することはできないが,x と y に対応する値の配列さえ準備できれば折れ線グラフで任意の関数のグラフを描画可能です.まず,モジュールを読み込むが,pandas
は必要ない.
モジュールを読み込む
import matplotlib.pyplot as plt
import numpy as np
グラフを作成したい横軸の範囲と刻み幅を指定します.
横軸の範囲と刻み幅の指定
x_min = 0
x_max = 8
x_step = 0.1
横軸の値を格納する NumPy 配列を準備します.ただし範囲が 0 <= x <= 8 になるようにしています.
横軸の準備
x = np.arange(x_min, x_max + x_step, x_step)
print(x)
[0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1. 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2. 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3. 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 4. 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5. 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6. 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 7. 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 8. ]
描画したい関数を記述します.ここでは,\( y = - x^2 + 8 x - 4 \) を描くことにします.
関数の準備
y = - x**2 + 8 * x - 4
print(y)
[-4. -3.21 -2.44 -1.69 -0.96 -0.25 0.44 1.11 1.76 2.39 3. 3.59 4.16 4.71 5.24 5.75 6.24 6.71 7.16 7.59 8. 8.39 8.76 9.11 9.44 9.75 10.04 10.31 10.56 10.79 11. 11.19 11.36 11.51 11.64 11.75 11.84 11.91 11.96 11.99 12. 11.99 11.96 11.91 11.84 11.75 11.64 11.51 11.36 11.19 11. 10.79 10.56 10.31 10.04 9.75 9.44 9.11 8.76 8.39 8. 7.59 7.16 6.71 6.24 5.75 5.24 4.71 4.16 3.59 3. 2.39 1.76 1.11 0.44 -0.25 -0.96 -1.69 -2.44 -3.21 -4. ]
グラフを描画します.
グラフの描画
fig, ax = plt.subplots(1, 1, figsize=(6, 4))
ax.plot(x, y)
plt.show()
複数のグラフをまとめて描画し,凡例も表示するには次のように入力すると良いでしょう.
複数のグラフ描画
y1 = - x**2 + 8 * x - 4
y2 = x**2 - 8 * x + 8
fig, ax = plt.subplots(1, 1, figsize=(6, 4))
ax.plot(x, y1, label='y1')
ax.plot(x, y2, label='y2')
ax.legend()
plt.show()