我很难理解为什么我在matplotlib中的堆叠条形图不能正常工作,这与我的plt.bar()函数中的“bottom”参数有关
如果我硬编码我想要绘制的值,一切都正常工作:
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')
但是结果看起来不对。我不确定这里发生了什么:
2条答案
按热度按时间inkz8wg91#
感谢上面的评论,我有一个解决方案:
rqmkfv5c2#
加法运算符不会将两个列表中的值相加,而是将它们合并到一个列表中。要将两个列表中的值相加,除了+之外,还必须使用sum函数。