Pandas 绘图:如何格式化 datetimeindex?

Pandas plotting: How to format datetimeindex?

几年来,我正在使用 15 分钟的日期时间索引从数据框中绘制条形图。 使用此代码:

df_Vol.resample(
    'A',how='sum'
).plot.bar(
    title='Sums per year',
    style='ggplot',
    alpha=0.8
)

不幸的是,X 轴上的刻度现在显示为带有完整的时间戳,如下所示:2009-12-31 00:00:00.

我希望保持绘图的代码简短,但我找不到一种简单的方法来将时间戳简单地格式化为绘图的年份 (2009...2016)。

有人可以帮忙吗?

由于似乎无法在 Pandas df.plot() 中格式化日期,我决定创建一个新的数据框并从中绘制。

下面的解决方案对我有用:

df_Vol_new = df_Vol.resample('A',how='sum')
df_Vol_new.index = df_Vol_new.index.format(formatter=lambda x: x.strftime('%Y')) 
ax2 =df_Vol_new.plot.bar(title='Sums per year',stacked=True, style='ggplot', alpha=0.8)

我想出了一个替代方法(更好,至少对我而言)是将以下内容添加到 df_Vol_new.plot() 命令中:

plt.legend(df_Vol_new.index.to_period('A'))

这样您可以保留 df_Vol_new.index 日期时间格式,同时获得更好的绘图。