【问题标题】:Stacked Bar Plot in Seaborn with groupsSeaborn 中的堆叠条形图与组
【发布时间】:2021-06-02 13:00:09
【问题描述】:

我想为每个Day_Since_Acquisition 创建一个堆积条形图,显示每个Total_Customers 的数量Aquisition_Channel

我在创建此 df 的堆积条形图时遇到问题,该条形图显示在 X 轴上 Day_Since_Acquisition 的值上,而两者之间没有任何内容。

DF

Aquisition_Channel   Day_Since_Acquisition  Total_Customers
Digital              7                       10
Digital              14                      12
Digital              21                      16
Digital              28                      20
Organic              7                       32
Organic              14                      40
Organic              21                      41
Organic              28                      45
Offline              7                       23
Offline              14                      30
Offline              21                      46
Offline              28                      55

这是我当前的代码:

fig = px.bar(df, x="Day_Since_Acquisition", y="Total_Customers",
             color="Day_Since_Acquisition", barmode = 'stack')
 
fig.show()

【问题讨论】:

    标签: python pandas matplotlib seaborn


    【解决方案1】:
    df2 = df.groupby(["Day_Since_Acquisition","Aquisition_Channel"]).sum().unstack("Aquisition_Channel").fillna(0)
    df2["Total_Customers"].plot.bar(stacked=True)
    

    输出图表为:

    【讨论】:

    • 如何显示每个采集通道的值?
    • 查看这个非常详细(非常出色)的answer 并根据需要调整您的代码
    • @user12625679 由于没有值与.sum() 聚合,因此正确的实现是使用.pivot()dfp = df.pivot(index='Day_Since_Acquisition', columns='Aquisition_Channel', values='Total_Customers') 然后dfp.plot(kind='bar', stacked=True)