小编use*_*356的帖子

将两个堆积条形图合并为分组堆积条形图

于是我在网上找到了如下代码:

import matplotlib.pyplot as plt
import matplotlib

matplotlib.style.use('ggplot')

plotdata = pd.DataFrame({
    "2018_m":[40, 12, 10, 26, 36],
    "2019_m":[19, 8, 30, 21, 38],
    "2020_m":[10, 10, 42, 17, 37]
    }, index=["Dad", "Mam", "Bro", "Sis", "Me"]
)

plotdata2 = pd.DataFrame({
    "2018_y":[20, 22, 10, 34, 12],
    "2019_y":[12, 19, 27, 35, 14],
    "2020_y":[21, 31, 52, 20, 34]
    }, index=["Dad", "Mam", "Bro", "Sis", "Me"]
)

stacked_data = plotdata.apply(lambda x: x*100/sum(x), axis=1)
stacked_data2 = plotdata2.apply(lambda x: x*100/sum(x), axis=1)
stacked_data.plot(kind="bar", stacked=True)
stacked_data2.plot(kind="bar", stacked=True)
Run Code Online (Sandbox Code Playgroud)

这是输出:

在此输入图像描述

我想知道将它们组合起来的最佳方式是什么,以便爸爸、妈妈、兄弟等每个人都有两个堆叠的条形?我在 Stack Overflow 上在线和其他地方遇到了一堆其他分组的堆叠条形码,但它们要求您迭代地定义每个条形的值,而理想情况下我只想引用数据框名称“plotdata” ' …

python matplotlib pandas stacked-bar-chart grouped-bar-chart

4
推荐指数
1
解决办法
2603
查看次数