在多列上分组时如何绘制条形图?

Posted

技术标签:

【中文标题】在多列上分组时如何绘制条形图?【英文标题】:How to plot a Bar graph when grouping on multiple columns? 【发布时间】:2019-08-16 11:31:19 【问题描述】:

按日期分组数据:

grouped = tickets.groupby(['date'])
size = grouped.size()
size

然后使用:

size.plot(kind='bar')

结果:

但是,我需要按日期对数据进行分组,然后对 modeofcommunication 进行分组,最后绘制每个子组的计数。

grouped = df.groupby([‘date’,’modeofcommunication'])
size = grouped.size()
size

结果如下:

date                modeofcommunication
2019-03-15          Chat                       2
                    Internal Email             2
                    Phone                      4

2019-03-16          Chat                      25
                    Email                     20
                    Feedback Form              2
                    Phone                      6

2019-03-17          Chat                      23
                    Email                     68
                    Feedback Form             13
                    Internal Email             3


2019-03-18          Chat                    1822
                    Email                     57
                    Facebook                  14
                    Feedback Form             11
                    Internal Email            11
                    Phone                    812
                    Twitter                    4

如何为分组数据绘制条形图,以便每个子组(通信模式)的计数表示为父组下的垂直条?

【问题讨论】:

【参考方案1】:

我相信你需要 Series.unstackDataFrameMultiIndex Series 然后 DataFrame.plot.bar:

size.unstack().plot.bar()

或者:

size.unstack().plot.bar(stacked=True)

【讨论】:

谢谢@jezraeil。这两种解决方案都运行良好,正是我想要的。

以上是关于在多列上分组时如何绘制条形图?的主要内容,如果未能解决你的问题,请参考以下文章