如何在 matplotlib 或 seaborn 中创建带有系列的堆叠条形图? [复制]
Posted
技术标签:
【中文标题】如何在 matplotlib 或 seaborn 中创建带有系列的堆叠条形图? [复制]【英文标题】:How to create a stacked bar chart with a series in matplotlib or seaborn? [duplicate] 【发布时间】:2021-11-16 07:37:38 【问题描述】:这听起来很简单,但我无法获得堆积条形图。按数据框中的列分组后,我得到了一个系列。
s1 = df_sort.groupby('loan_status')['count_loans'].sum()
s1
loan_status
Fully paid 8045
Not fully paid 1533
Name: count_loans, dtype: int64
我试过了
s1.T.plot.bar(stacked=True)
s1.plot(kind="bar", stacked=True)
哪个产生两个单独的条?
谢谢。
【问题讨论】:
【参考方案1】:您应该将 groupby 行更改为:
df = df.groupby(by = 'loan_status').sum().T
然后你可以用:
df.plot(kind = 'bar', stacked = True)
plt.show()
【讨论】:
我认为你改变了 OP 的最终值? 是的,因为我随机生成了一个分组依据的其他数据框,因此值与问题中报告的值不同 谢谢!你知道如何删除“count_loans”吗? 您应该将df.plot
分配为ax = df.plot(kind = 'bar', stacked = True)
,然后您可以删除带有ax.set_xticklabels('')
的刻度标签
好的 :) 谢谢。我现在正在尝试将百分比值放在上面-也许您也知道该怎么做? ***.com/questions/69306442/…【参考方案2】:
您必须将您的 Series
转换为 DataFrame
否则您无法转置:
s1.to_frame().T.plot(kind='bar', stacked=True, rot=0)
plt.show()
【讨论】:
以上是关于如何在 matplotlib 或 seaborn 中创建带有系列的堆叠条形图? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何从 seaborn / matplotlib 图中删除或隐藏 x 轴标签
使用 seaborn 或 matplotlib 分组箱线图的数据格式