Python 尝试绘制堆叠条形图时获取形状不匹配错误消息
我正试图从我的数据创建一个堆叠条形图,并不断收到一条错误消息 ValueError:形状不匹配:无法将对象广播到单个 形状 以下是我编写的相关代码: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
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)