我必须根据我的数据制作散点图和衬垫。 prediction_08.Dem_Adv和prediction_08.Dem_Win是两列数据。我知道np.polyfit会返回系数。但是np.polyval在这里做什么?我看到了文档,但解释令人困惑。有人能清楚地向我解释
plt.plot(prediction_08.Dem_Adv, prediction_08.Dem_Win, 'o')
plt.xlabel("2008 Gallup Democrat Advantage")
plt.ylabel("2008 Election Democrat Win")
fit = np.polyfit(prediction_08.Dem_Adv, prediction_08.Dem_Win, 1)
x = np.linspace(-40, 80, 10)
y = np.polyval(fit, x)
plt.plot(x, y)
print fit
答案 0 :(得分:2)
np.polyval
正在应用使用polyfit
得到的多项式函数。如果你得到y = mx + c的关系。 np.polyval
函数会将您的x值乘以fit[0]
并添加fit[1]
Polyval根据文件:
N = len(p)
y = p[0]*x**(N-1) + p[1]*x**(N-2) + ... + p[N-2]*x + p[N-1]
如果关系为y = ax**2 + bx + c
,
fit = np.polyfit(x,y,2)
a = fit[0]
b = fit[1]
c = fit[2]
如果您不想使用多边形函数:
y = a*(x**2) + b*(x) + c
这将创建与polyval相同的输出。