Python 尝试绘制堆叠条形图时获取形状不匹配错误消息

Python 尝试绘制堆叠条形图时获取形状不匹配错误消息,python,matplotlib,data-science,Python,Matplotlib,Data Science,我正试图从我的数据创建一个堆叠条形图,并不断收到一条错误消息 ValueError:形状不匹配:无法将对象广播到单个 形状 以下是我编写的相关代码: num = list(yearly_posts.index) barWidth = 0.50 plt.bar(num,yearly_status.values, color='#b5ffb9',edgecolor='white',width=barWidth) plt.bar(num,yearly_posts.values, color='#f9b

我正试图从我的数据创建一个堆叠条形图,并不断收到一条错误消息

ValueError:形状不匹配:无法将对象广播到单个 形状

以下是我编写的相关代码:

num = list(yearly_posts.index)
barWidth = 0.50
plt.bar(num,yearly_status.values, color='#b5ffb9',edgecolor='white',width=barWidth)
plt.bar(num,yearly_posts.values, color='#f9bc86',edgecolor='white',width=barWidth)
这是我的数据样本

#yearly_status table
year
2009     85
2010     86
2011    188
2012    274
2013    240
2014    171
2015    132
2016     22
2017     18
2018     13
dtype: int64

#yearly_posts table
year
2009     8
2010    19
2013    19
2014    40
2015    13
2016    20
2017    27
2018    17
dtype: int64

问题是两个数据帧的条目数不相等,这就是为什么两个数据帧的
num
不同的原因。解决方案是对
num1
num2
使用不同的索引。此外,您必须将二维数组中的值展平为一维数组,如
status.values.flant()


如果您确定两个列表对象的长度相等,并且仍然出现
形状不匹配的错误。打印前,可以将列表对象转换为numpy数组

import numpy as np
numpyObject = np.array(listObject)

yearly\u status。值
yearly\u posts。值
大小不同,但您只使用一个
num
(大小为
yearly\u posts
)。您可能应该在第一次
plt.bar
调用中将
num
更改为类似
list(yearly_status.index)
@Bart ahhh,明白了,谢谢
import numpy as np
numpyObject = np.array(listObject)