首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在pandas中按月绘制图表

在pandas中按月绘制图表
EN

Stack Overflow用户
提问于 2019-04-21 01:37:41
回答 1查看 360关注 0票数 0

我有一个数据集:df.head(4)

代码语言:javascript
运行
复制
               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

我如何绘制每个月的降雨量直方图。我不知道确切的方法,但是,我已经尝试过这样的东西,但没有成功。

代码语言:javascript
运行
复制
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'

请建议我如何绘制每个月的降雨量柱状图。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-21 05:19:18

就像@DamianoC一样。也就是说,datetime_utc是你的索引。所以你也可以这样做:

代码语言:javascript
运行
复制
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')

代码语言:javascript
运行
复制
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:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55776092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档