Python Pandasでスタックイベントの期間をプロットする方法
PythonのPandasライブラリを使って、複数のイベント期間(開始日から終了日まで)をスタック状に可視化する方法を紹介します。イベントの継続期間を横棒(水平線)として時系列上に描画することで、各イベントがいつ始まり、いつ終わったのかをひと目で把握できます。
実装の手順
- 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
- 各イベントの開始日 xmin と終了日 xmax のリストからデータフレームを作成します。
- hlines() メソッドを使って、イベント期間を水平線としてプロットします。
- 最後に show() メソッドで図を表示します。
ポイント
Matplotlibの hlines() は、指定したy座標の位置にxminからxmaxまでの水平線を描画する関数です。データフレームのインデックスをy座標として渡すことで、イベントごとに行を分けて期間を並べて表示できます。線の太さは lw 引数、色は colors 引数で自由にカスタマイズ可能です。
サンプルコード
import pandas as pd
from datetime import datetime as dt
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
df = pd.DataFrame(dict(xmin=[dt.strptime('1994-07-19', '%Y-%m-%d'),
dt.strptime('2006-03-16', '%Y-%m-%d'),
dt.strptime('1980-10-31', '%Y-%m-%d'),
dt.strptime('1981-06-11', '%Y-%m-%d'),
dt.strptime('2006-06-28', '%Y-%m-%d')],
xmax=[dt.strptime('1998-06-30', '%Y-%m-%d'),
dt.strptime('2007-01-24', '%Y-%m-%d'),
dt.strptime('2007-07-31', '%Y-%m-%d'),
dt.strptime('1990-08-01', '%Y-%m-%d'),
dt.strptime('2007-01-24', '%Y-%m-%d')]
))
plt.hlines(df.index, df.xmin, df.xmax, lw=5, colors='red')
plt.show()出力結果
このコードを実行すると、5つのイベントそれぞれの期間が赤い水平線として描画され、x軸には日付、y軸にはイベントのインデックス番号が表示されます。これにより、複数のイベントの時系列的な重なりや継続期間の長さを簡単に比較できます。

-
MatplotlibとPythonで矢印プロット(Quiver Plot)を作成する方法を徹底解説
Matplotlibは、データ可視化に広く活用されている人気のPythonパッケージです。データの可視化は分析において非常に重要なステップです。数値を一つひとつ確認したり複雑な計算を実行しなくても、データの中で何が起きているのかを直感的に把握できるようになるためです。また、定量的な洞察を効果的に伝える手段としても大きな力を発揮します。 Matplotlibは2次元のグラフやプロットを作成するために使用されます。オブジェクト指向APIを備えており、Pythonアプリケーション内にプロットを組み込むことも可能です。IPythonシェル、Jupyter Notebook、Spyder IDEなど、さ
-
Pythonのmatplotlibで積み上げ棒グラフを作成・表示する方法
Matplotlibは、Pythonで最も広く使われているデータ可視化ライブラリの一つです。データの可視化は、数値を一つずつ確認したり複雑な計算を行ったりすることなく、データ全体の傾向や特徴を直感的に把握するために欠かせないステップです。また、定量的な洞察を効果的に伝える手段としても非常に有用です。 Matplotlibは、データをもとに2次元のグラフやプロットを作成するために使用されます。オブジェクト指向のAPIを備えており、作成したグラフをPythonアプリケーションに組み込むことも可能です。IPythonシェル、Jupyter Notebook、Spyder IDEなど、さまざまな環境で