如何在 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 分组箱线图的数据格式

解决matplotlib或seaborn的中文画图问题

如何修复 matplotlib 和 seaborn 热图?

可视化在 matplotlib/seaborn 中有意义的数值与分类数据

Matplotlib 直方图或 Seaborn 分布图的 bin 上没有轮廓