我需要一些幫助,使用matlibplot在python中製作一組堆積條形圖。我的基本代碼如下,但我的問題是如何生成底部的值超過第二個高效。我能得到的示例圖表,以確保正確堆疊(總是A,B,C,從底部d頂部)更高效matplotlib堆積條形圖 - 如何計算底部值
import numpy as np
import matplotlib.pyplot as plt
ind = np.arange(3)
a = [3,6,9]
b = [2,7,1]
c = [0,3,1]
d = [4,0,3]
p1 = plt.bar(ind, a, 1, color='#ff3333')
p2 = plt.bar(ind, b, 1, color='#33ff33', bottom=a)
p3 = plt.bar(ind, c, 1, color='#3333ff', bottom=[a[j] +b[j] for j in range(len(a))])
p4 = plt.bar(ind, d, 1, color='#33ffff', bottom=[a[j] +b[j] +c[j] for j in range(len(a))])
plt.show()
我的最終代碼可能有非常多的酒吧和不斷擴大的功能底部= [.. 。]不能是最好的解決方案。如果你能解釋我需要如何推導價值,那將是非常好的。是否有一個numpy功能。
非常感謝! PS我已經搜索了一個答案,但我不明白我能找到什麼。
謝謝 - 我怎麼能得到酒吧之間的空間? – Matt
我更新了代碼以允許差距。這實際上很簡單,如果你從條的寬度中扣除一個固定的數量,那麼它就會有效地縮小它們。之後,這只是玩xlims的問題。主函數調用現在有兩個新的參數,gap和endGaps,底部的兩個圖片顯示了這些使用中的示例。 – minillinim
愛@minillinim的包。這感覺太簡單了。要添加圖例,如果您使用'stacked_colors = ['#2166ac','#fee090','#fdbb84']'和'cols = stacked_colors'等數組設置顏色,則很容易將圖例添加到從一個數據幀大熊貓作出的曲線圖: '圖例= [] I = 0 用於df.columns柱: legends.append(mpatches.Patch(顏色= stacked_colors [I],標記=列)) I + = 1 plt.legend(句柄=圖例) ' –