我在一个数据帧中用一个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
)。
有人可以为此提供帮助吗?
答案 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
日期时间格式,同时获得更好的绘图。