我使用此代码生成堆叠的条形图,但最终添加的堆叠由所有堆叠的总和加上Y的值(应堆叠并正确计算的值)组成。
for jindex in range(0,len(add),chunk):
start = Y
Y = [sum(x) for x in zip(start,add[jindex:jindex+chunk])]
plt.bar([x for x in range(index, index+chunk)],Y, bottom = start, color = [colourchart[col][colorindex] for col in colores])
colorindex -= 1
start的值也正确;每个循环的起始和Y值:
[0, 0, 0, 0] [10.0, 2000, 2000, 500]
[10.0, 2000, 2000, 500] [190.0, 5500, 5500, 1500]
[190.0, 5500, 5500, 1500] [550.0, 11500, 11500, 3000]
[550.0, 11500, 11500, 3000] [1270.0, 21500, 21500, 5000]
[1270.0, 21500, 21500, 5000] [2530.0, 39500, 39500, 7500]
但是最后一个堆栈总是有错误或由所有堆栈的总和组成。 (我使用for循环是因为堆栈的数量可以不同,显示实体的条形数量也可以不同。)
我解决了通过重叠条形(通过处理数据)而不是将其堆叠以获得正确的条形图显示来生成正确的条形图的问题,但是我仍然不明白为什么在for循环中使用条形图也会导致最后堆栈中显示的总值之和。
也不明白为什么这个帖子被评为-1 btw;至少可以在否定的判断中附上应改进之处的评论。