python - 用 Pandas 定位多个堆叠条形图

标签 python pandas matplotlib

我正在尝试用 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

我面临的问题是,对于每个组,条形图的顺序都不符合我的要求。文档说条形图的“位置”参数指定了条形图的相对位置,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 轴标签重合,如图所示: 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

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

关于python - 用 Pandas 定位多个堆叠条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38983145/

相关文章:

python - 显示处理后的视频帧(一帧一帧)Python

python - 在制作新图时再次绘制旧数据(对于较早的图)

python - Heroku 上的 webpack 和 django : bundling before collectstatic

python setup.py安装错误[WinError 3]系统找不到指定的路径

python - 如何在Python中与beautifulsoup并行抓取多个html页面?

python - 如何在 google ml api python 客户端中设置请求超时?

python - 根据日期范围添加列值(if-else)

python - 如何在 Pandas 中比较前一行并使用 group by 更改另一列的值?

python - Pandas 在尝试删除重复项时仅删除某些列值

python - 在 python 中生成分形