matplotlib はx 軸に配列を正しくレンダリングしないため、実際に呼び出すplt.plot
(または API を使用する) 必要があります。例えば:matplotlib
datetime64
In [18]: s = Series(randn(10), index=date_range('1/1/2001', '1/1/2011', freq='A'))
In [19]: s
Out[19]:
2001-12-31 -1.236
2002-12-31 0.234
2003-12-31 -0.858
2004-12-31 -0.472
2005-12-31 1.186
2006-12-31 1.476
2007-12-31 0.212
2008-12-31 0.854
2009-12-31 -0.697
2010-12-31 -1.241
Freq: A-DEC, dtype: float64
In [22]: ax = s.plot()
In [23]: ax.xaxis.set_major_locator(YearLocator())
In [24]: ax.xaxis.set_major_formatter(DateFormatter('%Y'))
与える
代わりに、次のようにする必要があります。
fig, ax = subplots()
ax.plot(s.index.to_pydatetime(), s.values)
ax.xaxis.set_major_locator(YearLocator())
ax.xaxis.set_major_formatter(DateFormatter('%Y'))
fig.autofmt_xdate()
取得するため:
YearLocator
別の年の倍数が必要な場合は、次のように、必要な倍数をコンストラクターに渡します。
fig, ax = subplots()
ax.plot(s.index.to_pydatetime(), s.values)
ax.xaxis.set_major_locator(YearLocator(2))
ax.xaxis.set_major_formatter(DateFormatter('%Y'))
fig.autofmt_xdate()
その結果: