我在网上找到了以下代码:
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)
这是输出:
我想知道什么是最好的方式来合并他们,使爸爸,妈妈,兄弟等。每个都有两个堆叠的酒吧?我在Stack Overflow上在线和其他地方遇到了一堆其他分组堆叠条形码,但它们需要您迭代定义每个条形图的值,而理想情况下,我只需要引用 Dataframe 名称'plotdata'和'plotdata2',就像上面的代码一样。
1条答案
按热度按时间qyswt5oh1#
对于两个组,可以传递
position
并相应地调整宽度:输出: