階段グラフはステップグラフとも呼ばれ,データ間を垂直線と平行線で繋げたグラフです
データのトレンド,変化のパターン,ステップ関数の可視化などに使用されます.特にカテゴリカルなデータや累積データの可視化に適しています.また,時間経過に伴う変化やイベントの発生を強調するのにも役立ちます
本記事では,PythonのMatplotlibで階段グラフを表示する方法を解説します
基本的な線グラフに関しては下記記事を参考にしてください
【Matplotlib】折れ線グラフや散布図!線種,線色,マーカー (plot)
Pythonでデータを可視化するためにグラフを描画したいと思ったことはありませんか? PythonにはMatplotlibというグラフを作るための優れたライブラリがあります Matplot…
目次
基本的な階段グラフ
Matplotlibではstep関数のxとyに配列を指定して階段グラフを描画します
Axes.step
- 引数
- 返値
-
- Line2Dのリスト
- 公式ドキュメント
下記のタブにコードとフローチャートの解説をしています
import matplotlib.pyplot as plt
import numpy as np
# step1 データの作成
x = np.arange(10)
y = np.sin(x)
# step2 グラフフレームの作成
fig, ax = plt.subplots()
# step3 階段グラフの描画
ax.step(x, y, label='Sample 1')
ax.step(x, y+2, label='Sample 2')
ax.set_xlabel('X label')
ax.set_ylabel('Y label')
ax.legend()
ax.set_title('Step Line Chart')
plt.show()
フォーマットの設定 (fmt)
fmt(フォーマット文字列)は,下記のようにマーカー,線種,色を一度に指定できます
fmt = '[marker][line][color]'
fmtを使って3種類の階段グラフを作成してみました
# step3 階段グラフの描画
# 円形+緑色+破線
ax.step(x, y, 'og--' ,label='fmt="og--"')
# 四角形+赤色+一点鎖線
ax.step(x, y+2, 'sr-.' ,label='fmt="sr-."')
# 星形+シアン+点線
ax.step(x, y+4, '*c:' ,label='fmt="*c:"')
plt.show()
【Matplotlib】科学論文のグラフ体裁を一括設定する方法 (rcParams)
PythonのMatplotlibでグラフを作成する際に,グラフ体裁を整えるのに毎回苦労していませんか? 実はMatplotlibでは,グラフの体裁を一括で整えることができるrcParamsと…
マーカーを変える
マーカーは25種類の中から指定できます
円形と四角形,三角形の3種類で描画しました
# step3 階段グラフの描画
# マーカー
ax.step(x, y, 'o-' ,label='circle')
ax.step(x, y+2, 's-' ,label='square')
ax.step(x, y+4, '^-' ,label='triangle_up')
線種を変える
線の種類は4種類の中から指定でき,「実線,破線,一点鎖線,点線」となります
# step3 階段グラフの描画
# 線種
ax.step(x, y, '-' ,label='solid')
ax.step(x, y+2, '--' ,label='dashed')
ax.step(x, y+4, '-.' ,label='dash-dot')
ax.step(x, y+6, ':' ,label='dotted')
色を変える
色は大きく分けると3つの指定方法があります
色の指定方法
- 1文字で指定(8種類)
- Hex stringsで指定.ex) ‘#008000’
- フルネームで指定.ex) palegreen, tab:olive
# step3 階段グラフの描画
# 色
ax.step(x, y, 'm' ,label='Magenta')
ax.step(x, y+2, '#0097a7' ,label='#0097a7')
ax.step(x, y+4, 'tomato' ,label='tomato')
ステップの配置 (where)
ステップの配置は下記の3種類があります
ステップの種類
- pre : ステップは直前のxと同じ.ex) x=0~1のときy=1
- post : ステップは直後のxと同じ.ex) x=0~1のときy=0
- mid : ステップはx座標の中間
3種類のステップ配置と線グラフを比較して描画しました
# step3 階段グラフの描画
ax.step(x, y, where='pre', label='pre (default)')
ax.plot(x, y, 'o--', color='grey', alpha=0.4)
ax.step(x, y+2, where='mid',label='mid')
ax.plot(x, y+2, 'o--', color='grey', alpha=0.4)
ax.step(x, y+4, where='post', label='post')
ax.plot(x, y+4, 'o--', color='grey', alpha=0.4)
plt.show()
参考文献
Axes.step関数の公式ドキュメント
階段グラフのデモ
Axes.plot関数の公式ドキュメント(fmt:フォーマット文字列)
Matplotlibの色の種類
コメント