我需要一些帮助,在 python 中使用 matlibplot 制作一组堆叠条形图。我的基本代码如下,但我的问题是如何有效地为第二个以外的任何元素生成底部值。我可以让示例图正确堆叠(始终从下到上 a、b、c、d)
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()
我的最终代码可能有非常多的条,并且不断扩展的函数 bottom = [...] 不是最好的解决方案。如果您还可以解释我需要如何得出该值,那就太好了。有没有一个numpy函数。
非常感谢!!!PS我已经寻找答案,但我不明白我能找到什么。