使用pandas定位多个堆积条形图

时间:2016-08-16 19:39:17

标签: python pandas matplotlib

我正在尝试用熊猫制作一个多叠的条形图。

以下是示例代码:

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

我面临的问题是,对于每个组,条形图不符合我希望它们的顺序。文档说条形图的“位置”参数指定条形图的相对位置,其中0表示左侧,1表示右侧。但似乎完全相反。我误解了什么?

1 个答案:

答案 0 :(得分:2)

pd.Df.plot中的位置参数控制条形图布局的对齐方式。它类似于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

现在,您可以清楚地区分上述两个数字之间的差异。