Pythonで時系列データを扱う際、x軸に日付を表示することは一般的な要件です。しかし、この操作は一見すると簡単そうですが、実際にはいくつかの注意点があります。この記事では、Pythonのmatplotlibライブラリを使用して、x軸にdatetime型のデータをプロットする方法を詳しく説明します。
まず、datetime型のデータを作成します。以下のコードは、現在の日時から始まり、1時間ごとにデータを生成します。
import datetime
x = [datetime.datetime.now() + datetime.timedelta(hours=i) for i in range(10)]
次に、これらのデータをmatplotlibでプロットします。以下のコードは、x軸にdatetime型のデータをプロットし、それに対応するy値をプロットします。
import matplotlib.pyplot as plt
y = range(len(x))
plt.plot(x, y)
plt.gcf().autofmt_xdate()
plt.show()
このコードのplt.gcf().autofmt_xdate()
は、x軸の日付ラベルが重ならないように自動的にフォーマットします。
しかし、このままではx軸の目盛りが多すぎる場合や、特定の間隔で目盛りを表示したい場合に対応できません。そのため、matplotlib.datesモジュールのDayLocator
やHourLocator
を使用して、目盛りの間隔を調整します。
import matplotlib.dates as mdates
plt.gca().xaxis.set_major_locator(mdates.DayLocator(interval=1))
このコードは、x軸の主要な目盛りを1日ごとに設定します。interval=1
を他の数値に変更することで、目盛りの間隔を調整できます。
以上が、Pythonのmatplotlibを使用して、x軸にdatetime型のデータをプロットする基本的な方法です。この方法をマスターすることで、時系列データの可視化がより容易になります。.