亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將兩個堆積條形圖組合成一個分組堆積條形圖

將兩個堆積條形圖組合成一個分組堆積條形圖

元芳怎么了 2023-03-22 16:39:47
于是在網上找到了如下代碼:import matplotlib.pyplot as pltimport matplotlibmatplotlib.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 上的其他地方遇到過一堆其他分組堆疊條形碼,但它們要求您迭代地定義每個條形的值,而理想情況下我只想引用數據框名稱 'plotdata ' 和 'plotdata2' 就像上面的代碼一樣。
查看完整描述

1 回答

?
慕哥9229398

TA貢獻1877條經驗 獲得超6個贊

對于兩組,您可以position相應地傳遞和調整寬度:


fig, ax = plt.subplots()


stacked_data.plot(kind="bar", stacked=True, width=0.4, 

                  ax=ax, position=0)

stacked_data2.plot(kind="bar", stacked=True, width=0.4, 

                   ax=ax, position=1, hatch='//')


ax.set_xlim(right=len(stacked_data)-0.5)

輸出:

http://img1.sycdn.imooc.com//641abf0300018a7b03740260.jpg

查看完整回答
反對 回復 2023-03-22
  • 1 回答
  • 0 關注
  • 196 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號