【Python】Matplotlibで1つのグラフに間隔の異なる2つの時系列をプロットする方法
Matplotlibを使用すると、時間間隔の異なる2つの時系列データを1つの同じプロット上に簡単に重ねて描画できます。この記事では、具体的な手順とサンプルコードをわかりやすく解説します。
手順
図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
x1、y1 および x2、y2 のデータポイントを作成します。
図(figure)とサブプロットのセットを作成します。
日付データを含む (x1, y1) と (x2, y2) のデータポイントをそれぞれプロットします。
X軸の目盛りラベル(ticklabels)にメジャーフォーマッターを設定します。
tick_params() メソッドを使用して、X軸の目盛りラベルを45度回転させます。
図を表示するには、show() メソッドを使用します。
サンプルコード
import matplotlib.pyplot as plt
from matplotlib.dates import date2num, DateFormatter
import datetime as dt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
x1 = [date2num(dt.datetime(2021, 1, 15, 1, 1, 1)), date2num(dt.datetime(2021, 1, 15, 9, 1, 1))]
y1 = [6, 2]
x2 = [date2num(dt.datetime(2021, 1, 15, 2, 1, 1)),
date2num(dt.datetime(2021, 1, 15, 4, 1, 1)),
date2num(dt.datetime(2021, 1, 15, 6, 1, 1)),
date2num(dt.datetime(2021, 1, 15, 8, 1, 1)),
date2num(dt.datetime(2021, 1, 15, 10, 1, 1))]
y2 = [3, 6, 5, 4, 1]
fig, ax = plt.subplots()
ax.plot_date(x1, y1, 'o--')
ax.plot_date(x2, y2, 'o:')
ax.xaxis.set_major_formatter(DateFormatter('%H:%M:%S'))
ax.tick_params(rotation=45)
plt.show()
補足:新しいバージョンのMatplotlibでの注意点
Matplotlib 3.3以降では plot_date() は非推奨となっており、最新バージョンでは削除されています。代わりに、datetime オブジェクトを直接 ax.plot() に渡す方法が推奨されます。日付ラベルの書式設定には、引き続き DateFormatter を ax.xaxis.set_major_formatter() と組み合わせて使用できます。
出力結果
上記のコードを実行すると、以下のようなグラフが出力されます。

-
PythonとMatplotlibを使って3次元の等高線図(コンタープロット)を作成する方法
Matplotlibは、データ可視化のために広く使われている人気のPythonライブラリです。データの可視化は分析において非常に重要なステップであり、複雑な計算を行ったり数値を一つずつ確認したりしなくても、データの中で何が起きているのかを直感的に把握できるようになります。また、定量的な洞察を効果的に伝える手段としても役立ちます。Matplotlibは主に2次元のプロットを作成するために使用されますが、オブジェクト指向のAPIを備えており、作成したグラフをPythonアプリケーションに組み込むことも可能です。IPythonシェル、Jupyter Notebook、Spyder IDEなど、さまざ
-
Pythonのmatplotlibで1つのグラフに3つの異なるデータセットをプロットする方法
Matplotlibは、Pythonで最も広く利用されているデータ可視化ライブラリのひとつです。データを可視化することは、数値を一つひとつ確認したり複雑な計算を行ったりしなくても、データ全体の傾向や特徴を直感的に把握できるようにする重要なステップです。また、定量的な洞察を読者や聴衆に効果的に伝えるための手段としても非常に有効です。 Matplotlibは、データをもとに2次元のグラフやプロットを作成するために使用されます。オブジェクト指向のAPIを備えており、作成したグラフをPythonアプリケーションに簡単に組み込むことができます。IPythonシェル、Jupyter Notebook、Sp