1

几年来,我正在用 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为绘图的年份 ( )。

有人可以帮忙吗?

4

2 回答 2

3

由于似乎无法在 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)
于 2016-08-25T11:45:15.983 回答
1

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

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

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

于 2021-01-25T21:27:38.897 回答