【问题标题】:How to create a stacked bar chart for my problem?如何为我的问题创建堆积条形图?
【发布时间】:2019-01-04 14:57:43
【问题描述】:

我有 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 的值计数组成。

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

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

我怎样才能得到这样的堆积条形图?

这是我尝试过的:

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

【问题讨论】:

    标签: python pandas matplotlib seaborn


    【解决方案1】:

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

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

    【讨论】:

    • 有趣:) 谢谢。如果有大量堆叠的条形图,是否有任何方法只显示前 10 个 Y 值最大的条形图?
    • @ScalaBoy ummm 我认为这很难做到,因为你需要他们的所有班级列表,而前 10 名是每个 event_type 的。
    猜你喜欢
    • 2021-09-28
    • 1970-01-01
    • 1970-01-01
    • 2019-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多