Matplotlib-堆积的条形图,底部

时间:2019-07-29 14:50:11

标签: python matplotlib

我正在努力了解为什么我在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')

这是正确的输出以及它应该是什么样的:enter image description here

在我的代码中,我有一个函数,该函数生成列表中的一些值,并且我将迭代绘制这些值。经过一番数学运算后,这些值看起来像这样。每个列表中只有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')

但是结果看起来不正确。我不确定这里发生了什么: enter image description here

1 个答案:

答案 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')