Pythonでステップ関数のグラフを作成する方法です。
使用するのはPythonのmatplotlibライブラリのstep関数です。
ステップ関数は、ある点で値が不連続に変わり、グラフが階段状になる関数のことです。
import matplotlib.pyplot as plt
このようなデータを使用します。
x = [0, 1, 2, 3, 4, 5]
y = [0, 1, 2, 3, 4, 5]
まず、step関数を使用してグラフを作成してみましょう。
引数にx座標の値とy座標の値を指定します。
x座標に指定する値の位置で、y座標の値が不連続に変わります。
違いが分かりやすいように、plot関数のグラフも一緒に作成しましょう。
実行します。
plt.step(x, y)
plt.plot(x, y)
plt.show()
値が不連続に変化する、ステップ関数のグラフを作成できました。
このように、plot関数は連続な関数のグラフを作成しますが、step関数は不連続な関数のグラフを作成します。
なお、デフォルトではx座標、y座標に指定した位置から左側に直線が引かれます。
引数whereにpostを指定すると、x座標、y座標に指定した位置から右側に直線を引くことができます。
実行します。
plt.step(x, y, where="post")
plt.plot(x, y)
plt.show()
x座標、y座標に指定した位置から右側に直線を引くことができました。
なお、似た関数にstairs関数があります。
stairs関数は、step関数と異なり、最後にy座標の値がベースラインに戻ります。
引数にはy座標の値と、グラフの角となるエッジのx座標を指定します。
そのため、指定するエッジの数はy座標の値の数よりも一つ多くなります。
確認してみましょう。
実行します。
y2 = [1, 2, 3, 4, 5]
edge = [0, 1, 2, 3, 4, 5]
plt.stairs(y2, edge)
plt.show()
最後にy座標の値がベースラインに戻る、不連続な関数を作成できました。