我有一个数据集: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'
请建议我如何为降雨列绘制每个月的图形。
答案 0 :(得分:1)
作为@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
并获得: