【こつこつPython】Pythonでステップ関数のグラフを作成する方法|matplotlib.pyplot.step

stepサムネイル
毎日Python/こつこつPython

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座標の値がベースラインに戻る、不連続な関数を作成できました。