MatplotlibはPythonの強力なデータ可視化ライブラリで、時系列データのプロットに特に優れています。しかし、時系列データをプロットする際には、時間軸の設定が重要な要素となります。この記事では、PythonとMatplotlibを使用して時間軸を設定する方法を解説します。
時間軸の設定
まずは、サンプルの時系列データを用意して、デフォルト設定でプロットしてみます。
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
data = np.random.rand(36)
df = pd.DataFrame({"Val":data}, index=pd.Index(pd.date_range("2020/1/1", periods=36, freq='MS'), name="Date"))
fig, ax = plt.subplots(figsize=(6, 2))
ax.plot(df.index, df["Val"])
このコードを実行すると、x軸の時間軸目盛りが重なってしまい、よく見えません。そこで、設定を変更して、時間軸を見やすく、自分の思った通りに設定したいですよね。
時間軸の自動調整
目盛りを見えるようにするだけの場合は、時系列目盛りの自動調整機能で十分な場合もあります。目盛りを自動で調整する場合は、Figureオブジェクトの .autofmt_xdate()
を使用します。
fig, ax = plt.subplots(figsize=(6, 2.5))
fig.autofmt_xdate()
ax.plot(df.index, df["Val"])
fig.autofmt_xdate()
を実行するだけで、時間軸目盛りが一気に見やすくなっていますね。
FormatterとLocatorの使用
より詳細な時間軸の設定を行うためには、FormatterとLocatorを使用します。これらを使用することで、目盛りの表示形式や表示位置を自由に設定することが可能です。
import matplotlib.dates as mdates
fig, ax = plt.subplots(figsize=(6, 2.5))
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m'))
ax.xaxis.set_major_locator(mdates.MonthLocator(interval=1))
ax.plot(df.index, df["Val"])
このコードでは、主要な目盛り(年と月)を1ヶ月ごとに設定し、その表示形式を ‘年-月’ の形式に設定しています。
以上、PythonとMatplotlibを使用した時間軸の設定方法について解説しました。この知識を活用して、自分のデータに最適なグラフを作成してみてください。.