如何为我的问题创建堆积的条形图?

时间:2019-01-04 14:57:44

标签: python pandas matplotlib seaborn

我有DataFrame df

df = pd.DataFrame(columns=["Event_type","Delay_class"], 
                  data=[["A1",0],
                        ["A1",0],
                        ["A2",1],
                        ["A3",1],
                        ["A1",1],
                        ["A2",0]])

我想创建一个堆叠的条形图,其中X轴为Event_type,每个条形都由每个Delay_class的值计数组成。

在我的示例中,我有2个值Delay_class。这意味着每个条应堆叠两个子条。每个子栏的大小对应于延迟类的计数。

例如,对于事件A1(X轴),对于Delay_class 0,Y轴的值将为2,对于Delay_class 1,Y轴的值将为1。 A1为3。

如何获得这种堆积的条形图?

这是我尝试过的:

df.set_index('Event_type').T.plot(kind='bar', stacked=True)

1 个答案:

答案 0 :(得分:4)

您需要crosstab + plot(kind='bar',stacked=True)

pd.crosstab(df.Event_type,df.Delay_class).plot(kind='bar',stacked=True)

enter image description here