【问题标题】:How to Bar Chart (with Dates on x-axis) after Groupby operationGroupby操作后如何制作条形图(x轴上有日期)
【发布时间】:2020-09-11 05:17:38
【问题描述】:

我有一个很大的 df,我在“topic_nmf”和“dates”上使用了组操作并计算了 topic_nmf 的出现次数

样本 DF

df3 = pd.DataFrame({'topic_nmf':[0,0,0,0,0,1,1,1,2,2], 'date':['2020-08','2020-06','2020-05','2020-02','2019-11','2019-08','2020-03','2020-02', '2019-10','2019-09'], 'count':[3,5,3,5,6,3,3,9,2,1]})

真正的df要大得多(它有40 top_nmf)

我希望在 x 轴上绘制带有“日期”(年/月)的线图或条形图 以及 y 轴上的“计数”。

每个“topic_nmf”本身就是一条趋势线,或条形图上的颜色编码条。

我的尝试如下:

plt.bar(df3.date, df3.count)

但我收到以下错误:

TypeError: +: 'int' and 'method' 的操作数类型不受支持

任何帮助表示赞赏。

更新:谢谢这确实有帮助,虽然我不在那里

df3.set_index('date').plot.bar()

df3.set_index('date').plot()

但是,我正在寻找三个趋势线(每个标记为 0、1、2),并且条形图相同?

【问题讨论】:

    标签: pandas matplotlib


    【解决方案1】:

    date 设置为索引。默认情况下,索引绘制在x axis

    df3.set_index('date').plot.bar()
    
    df3.set_index('date').plot()
    

    关注你的 cmets。请尝试

    df3.groupby(['date','topic_nmf'])['count'].sum().unstack().plot.bar()
    #df3.groupby(['date','topic_nmf'])['count'].sum().unstack().plot()#lineplot
    

    【讨论】:

    • 感谢@wwnde,这很有帮助。但我不太明白。抱歉,我最初的问题应该更清楚
    • @Prolle 查看我的编辑,如果您需要进一步帮助,请告诉我
    • 非常感谢,很抱歉没有投票。再次感谢您为我解锁这个。保持安全
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-09
    • 1970-01-01
    • 2015-06-09
    • 2019-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多