我在 python3 中工作,我想获得一个堆积条形图,在 5 个不同的列上显示三个不同的变量。如果我不在 plt.bar 中添加“底部参数”,我的代码可以正常工作(但我需要这样做,以便堆栈以正确的顺序出现):
import numpy as np
import matplotlib as plt
columns=['a','b','c','d','e']
pos = np.arange(5)
var_one=[40348,53544,144895,34778,14322,53546,33623,76290,53546]
var_two=[15790,20409,87224,22085,6940,27099,17575,41862,27099]
var_three=[692,3254,6645,1237,469,872,569,3172,872]
plt.bar(pos,var_one,color='green',edgecolor='green')
plt.bar(pos,var_two,color='purple',edgecolor='purple')
plt.bar(pos,var_three,color='yellow',edgecolor='yellow')
plt.xticks(pos, columns)
plt.show()
但是,一旦我在 bar.plot 中添加了底部参数(如下所示):
import numpy as np
import matplotlib as plt
columns=['a','b','c','d','e']
pos = np.arange(5)
var_one=[40348,53544,144895,34778,14322,53546,33623,76290,53546]
var_two=[15790,20409,87224,22085,6940,27099,17575,41862,27099]
var_three=[692,3254,6645,1237,469,872,569,3172,872]
plt.bar(pos,var_one,color='green',edgecolor='green')
plt.bar(pos,var_two,color='purple',edgecolor='purple',bottom=var_one)
plt.bar(pos,var_three,color='yellow',edgecolor='yellow',bottom=var_one+var_two)
plt.xticks(pos, columns)
plt.show()
代码触发错误
ValueError: shape mismatch: objects cannot be broadcast to a single shape
我该如何解决?
