我有一个像这样的月度数据的时间序列,并将其绘制成如下:
rng = pd.date_range('1965-01-01', periods=600, freq='M')
ts = pd.Series(np.random.randn(len(rng)), index=rng)
fig, ax = plt.subplots()
ts.plot(ax=ax)
主要的刻度标记是每10年设定一次,从1969年开始。我想改变它,所以它们始于1975年。看了一些matplotlib样本(here和here)后我尝试添加
from matplotlib.dates import YearLocator, DateFormatter
decs = YearLocator(10) # decades
decsFmt = DateFormatter("%Y")
ax.xaxis.set_major_locator(decs)
ax.xaxis.set_major_formatter(decsFmt)
datemin = pd.datetime(ts.index.min().year, 1, 1)
datemax = pd.date(ts.index.max().year + 1, 1, 1)
ax.set_xlim(datemin, datemax)
但这不起作用。
答案 0 :(得分:1)
如果要使用matplotlib设置轴限制,则需要关闭pandas的日期格式。
只需将行更改为
即可ts.plot(x_compat=True, ax=ax)
它应该有效。