【Matplotlib】階段グラフ(ステップグラフ)を表示する (step)

階段グラフはステップグラフとも呼ばれ,データ間を垂直線と平行線で繋げたグラフです

データのトレンド,変化のパターン,ステップ関数の可視化などに使用されます.特にカテゴリカルなデータや累積データの可視化に適しています.また,時間経過に伴う変化やイベントの発生を強調するのにも役立ちます

本記事では,PythonのMatplotlibで階段グラフを表示する方法を解説します

基本的な線グラフに関しては下記記事を参考にしてください

目次

基本的な階段グラフ

Matplotlibではstep関数のxとyに配列を指定して階段グラフを描画します

Axes.step
引数
  • x (配列) : 1次元の配列データ
  • y (配列) : 1次元の配列データ
  • fmt (文字列) : フォーマット文字列.線種,線色,マーカーを一度に指定可能
  • where (文字列) : ステップの位置.‘pre’, ‘post’, ‘mid’のいずれかを指定
返値
公式ドキュメント

下記のタブにコードとフローチャートの解説をしています

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()

マーカー中心が白なのは,rcParams[‘lines.markerfacecolor’] = ‘white’としているからです

マーカーを変える

マーカーは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の色の種類

シェアしてくださると嬉しいです!
  • URLをコピーしました!

コメント

コメントする

目次