gpt4 book ai didi

python - Matplotlib 中的水平堆积条形图

转载 作者:太空狗 更新时间:2023-10-29 19:35:25 24 4
gpt4 key购买 nike

我正在尝试使用 matplotlib 创建水平堆叠条形图,但我看不到如何让条形实际堆叠而不是全部从 y 轴开始。

这是我的测试代码。

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
plot_chart(df, fig, ax)
ind = arange(df.shape[0])
ax.barh(ind, df['EndUse_91_1.0'], color='#FFFF00')
ax.barh(ind, df['EndUse_91_nan'], color='#FFFF00')
ax.barh(ind, df['EndUse_80_1.0'], color='#0070C0')
ax.barh(ind, df['EndUse_80_nan'], color='#0070C0')
plt.show()

在看到 tcaswell 的评论后编辑为使用 left kwarg。

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
plot_chart(df, fig, ax)
ind = arange(df.shape[0])
ax.barh(ind, df['EndUse_91_1.0'], color='#FFFF00')
lefts = df['EndUse_91_1.0']
ax.barh(ind, df['EndUse_91_nan'], color='#FFFF00', left=lefts)
lefts = lefts + df['EndUse_91_1.0']
ax.barh(ind, df['EndUse_80_1.0'], color='#0070C0', left=lefts)
lefts = lefts + df['EndUse_91_1.0']
ax.barh(ind, df['EndUse_80_nan'], color='#0070C0', left=lefts)
plt.show()

这似乎是正确的方法,但如果没有特定柱的数据,它会失败,因为它试图将 nan 添加到一个值,然后返回 nan .

最佳答案

由于您使用的是 pandas,因此值得一提的是,您可以本地绘制堆叠条形图:

df2.plot(kind='bar', stacked=True)

查看 visualisation section of the docs .

关于python - Matplotlib 中的水平堆积条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16653815/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com