我正在努力了解为什么我在matplotlib中堆积的条形图的行为不正确。这与我的plt.bar()函数中的“底部”参数有关
如果我对要绘制的值进行硬编码,则一切正常:
import matplotlib.pyplot as plt
var1 = 'Bar1'
var2 = .2403
var3 = .1256
var4 = .1158
plt.bar(var1, var2, color='green')
plt.bar(var1, var3, bottom=var2, color='blue')
plt.bar(var1, var4, bottom=(var2+var3), color='red')
在我的代码中,我有一个函数,该函数生成列表中的一些值,并且我将迭代绘制这些值。经过一番数学运算后,这些值看起来像这样。每个列表中只有1个项目:
var1 = 'Bar1'
var2 = [.2403]
var3 = [.1256]
var4 = [.1158]
现在我尝试使用相同的代码绘制这些图形:
plt.bar(var1, var2, color='green')
plt.bar(var1, var3, bottom=var2, color='blue')
plt.bar(var1, var4, bottom=(var2+var3), color='red')
答案 0 :(得分:0)
由于上面的评论,我有一个解决方案:
for i in range(0, len(var1)):
plt.bar(var1, var2, color='green')
plt.bar(var1, var3, bottom=var2[i], color='blue')
plt.bar(var1, var4, bottom=(var2[i]+var3[i]), color='red')