python - 如何在条形图上仅堆叠部分 pandas DataFrame 系列
问题描述
我有以下数据框:
from matplotlib import pyplot as plt
import pandas as pd
plotdata = pd.DataFrame({
"pies_2018":[40, 12, 10, 26, 36],
"pies_2019":[19, 8, 30, 21, 38],
"pies_2020":[10, 10, 42, 17, 37],
"pies_produced": [100, 80, 75, 10, 60]
},
index=["Dad", "Mam", "Bro", "Sis", "Me"]
)
plotdata.plot(kind="bar")
plt.title("Mince Pie Consumption Study Results")
plt.xlabel("Family Member")
plt.ylabel("Pies Consumed")
现在我正在寻找一种绘制堆叠条形图的方法,但我只想堆叠一些系列(pies_20 *),并且pies_produced应该显示在堆叠系列旁边,以显示消耗的馅饼与生产的馅饼相比如何。所以最后我应该为每个家庭成员买两个酒吧。我不想总结馅饼_ *,因为我还是想区分消费时间。请参阅Bro的绘制示例。
是否可以在堆积条旁边显示具有每年价值的图例?
谢谢你。
解决方案
尝试使用选项stacked
和绘制两次position
:
fig, ax = plt.subplots(figsize=(10,6))
# plot first 3 columns, stacked and shifted left
plotdata.iloc[:,:-1].plot.bar(stacked=True, position=1, width=.4, ax=ax)
# plot last column, shifted right
plotdata.iloc[:,-1:].plot.bar(position=0,color='C4', width=.4, ax=ax)
ax.set_xlim(-0.5, len(plotdata)-0.5)
输出:
推荐阅读
- oracle - 对象无效 PLSQL 过程
- visual-studio-code - Visual Studio Code 2019 终端未打开
- javascript - 如何更新数组中的对象
- html - 在 Hackerrank 中运行 HTML5 音频创建程序时发生断言错误
- python - RuntimeWarning:当我尝试实现 cnn 时,在日志中遇到除以零
- arrays - C - 函数内的指针指向显示无效字符的数组
- linux - 如何使用系统调用正确显示堆栈中的值
- postgresql - postgres 容器退出无法重新启动,因为'chmod:更改'/var/lib/postgresql/data'的权限:权限被拒绝'
- php - 如何在 gcloud 上托管 React 和 PHP 应用程序?
- document - 蓝色堆栈 WhatsApp 下载