熊猫绘图:如何格式化datetimeindex?

时间:2016-08-22 13:49:44

标签: python pandas matplotlib formatting datetimeindex

我在一个数据帧中用一个15分钟的datetimeindex做了一个条形图。 使用此代码:

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)。

有人可以为此提供帮助吗?

2 个答案:

答案 0 :(得分:1)

由于似乎无法在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)

答案 1 :(得分:0)

我想出一种替代方法(至少对我来说更好)是将以下内容添加到 df_Vol_new.plot() 命令中:

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

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