我有一个数据集:df.head(4)
Dewptm Fog Humidity Pressurem Tempm Wspdm Rainfall
datetime_utc
1996-11-01 11.666667 0.0 52.916667 -2659.666667 22.333333 2.466667 0
1996-11-02 10.458333 0.0 48.625000 1009.833333 22.916667 8.028571 0
1996-11-03 12.041667 0.0 55.958333 1010.500000 21.791667 4.804545 0
1996-11-04 10.222222 0.0 48.055556 1011.333333 22.722222 1.964706 0
我如何绘制每个月的降雨量直方图。我不知道确切的方法,但是,我已经尝试过这样的东西,但没有成功。
df.groupby([df['datetime_utc'].dt.month_name()], sort=False).sum().plot(kind="bar",figsize=(18,5),stacked=True,align='center',width=0.9)
plt.ylabel('Rainfall (mm)')
plt.xlabel('Year Wise')
但是我得到了一个错误:KeyError: 'datetime_utc'
请建议我如何绘制每个月的降雨量柱状图。
发布于 2019-04-21 05:19:18
就像@DamianoC一样。也就是说,datetime_utc
是你的索引。所以你也可以这样做:
df = df.reset_index()
df.groupby([df['datetime_utc'].dt.month_name()], sort=False).sum().plot(kind="bar",figsize=(18,5),stacked=True,align='center',width=0.9)
plt.ylabel('Rainfall (mm)')
plt.xlabel('Year Wise')
或
df.groupby([df.index.month_name()], sort=False).sum().plot(kind="bar",figsize=(18,5),stacked=True,align='center',width=0.9)
plt.ylabel('Rainfall (mm)')
plt.xlabel('Year Wise')
但是,建议不要使用字符串作为绘图索引。取而代之的是,执行df.index.month
并使用ax.set_xticklabels()
修改标签。例如,如果您的数据以2018-06-04
开头,您将得到如下所示的图形,并注意x-axis
是如何以6月开头的。
同时,您可以使用df.index.month
和get:
https://stackoverflow.com/questions/55776092
复制相似问题