我不知道我做错了什么,但当我尝试实现polyfit来分散数据(年份,评级)时,它会一直绘制一大堆线而不是一条线。看起来像这样:
我的代码如下:
data = movies[['year', 'rtAllCriticsRating']]
data.year = data.year.astype(float).fillna(0.0)
data = data.convert_objects(convert_numeric=True)
data = data[data.rtAllCriticsRating > 0]
#print data
>>> 1995 5.4
1950 2.3
....
#############issues start HERE########################
fig = plt.figure(figsize=(15, 15), dpi=100)
fig.add_subplot(212, axisbg='lightgrey')
# fit with np.polyfit
p = np.polyfit(data.year, data.rtAllCriticsRating, 3)
print p
plt.plot(data.year, data.rtAllCriticsRating, 'bo')
plt.plot(data.year,np.polyval(p, data.year),'r-') # A red solid line
plt.xlim(1900, 2020)
plt.ylim(0, 11)
plt.grid()
plt.xlabel('X Axis is by year')
plt.ylabel('Y Axis is by AllCriticRating')
怎么回事,我怎么解决这个问题?我的主要目标是在这个散点图上覆盖一个红色的线图,显示平均电影评级(一年中所有电影的rtAllCriticsRating的平均值)是如何随时间变化的。。。。在
您的
data.year
数组似乎没有任何特定的顺序。当你把它放在一个散点图中,这并不重要。但是,当您使用该数组覆盖一条平均线时,您需要它按数字(在本例中是按时间顺序)排列的。尝试以下操作:这应该以适当的顺序连接所有的线,形成一条单独的曲线。
相关问题 更多 >
编程相关推荐