使用pandas进行多个堆叠条形图的定位

4

我正在尝试使用pandas制作多重堆积条形图。

以下是示例代码:

import pandas as pd

df = pd.DataFrame({'a':[10, 20], 'b': [15, 25], 'c': [35, 40], 'd':[45, 50]}, index=['john', 'bob'])

ax = df[['a', 'c']].plot.bar(position=0, width=0.1, stacked=True)
df[['b', 'd']].plot.bar(position=1, width=0.1, stacked=True, ax=ax)

在笔记本电脑中,以下内容会得到如下输出:stacked bar plot。问题是,对于每组数据,条形图的顺序不是我想要的。文档表示,条形图的“position”参数指定了条形图的相对位置,0表示最左侧,1表示最右侧。但它似乎完全相反。我理解错了什么?
1个回答

2
pd.Df.plot 中,position参数控制条形图的布局对齐方式。它与matplotlib条形图的 align 参数相似。
示例:

1. 当 position=0.5 时:[默认值:居中对齐]
df[['a', 'c']].plot.bar(position=0.5, width=0.1, stacked=True, ax=ax)
df[['b', 'd']].plot.bar(position=0.5, width=0.1, stacked=True, ax=ax)

条形图与X轴标签重合,如下所示: enter image description here 2. 当position=0时:[左/底部对齐]
df[['a', 'c']].plot.bar(position=0, width=0.1, stacked=True, ax=ax)
df[['b', 'd']].plot.bar(position=0, width=0.1, stacked=True, ax=ax)

这里展示的条形图中,最左侧的部分与X轴标签重合: enter image description here 现在,你可以清晰地区分上述两个图表的差异。

1
非常好的答案,谢谢!接下来有一个跟进问题:使用pandas的绘图功能绘制多个堆叠条形图的正确方法是什么?我将每个“组”有4个条形图。请告诉我您是否认为我应该创建一个新帖子。 - Moncef M.
1
我觉得这样会更好。你也可以在帖子中包含一个示例数据框 - Nickil Maveli

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接