我正在尝试用 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)
我面临的问题是,对于每个组,条形图的顺序都不符合我的要求。文档说条形图的“位置”参数指定了条形图的相对位置,0 表示左边,1 表示右边。但它似乎完全相反。我误会了什么?
最佳答案
pd.Df.plot
中的位置参数控制条形图布局的对齐方式。它类似于 align
的相似性matplotlib 条形图的参数。
插图:
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 轴标签重合,如图所示:
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)
现在,您可以清楚地区分以上两个数字之间的区别。
关于python - 用 Pandas 定位多个堆叠条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38983145/