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

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

未経験からはじめるPython学習「キノクエスト」 キノクエスト
  • スキルアップしたいけど何からはじめればよいかわからない…
  • プログラミングスクールに入りたいけど料金が高い…
  • プログラミングを学んでも業務やキャリアに活かせるか不安…

キノクエストは、このような悩みを持つ方にぴったりのプログラミング学習サービスです。
国内最大級のプログラミング学習系YouTubeチャンネル「キノコード」が提供しているから、未経験者にもわかりやすく質の高い学習体験を実感していただけます。

キノクエスト