解释散点图的np.polyfit和np.polyval

时间:2014-11-21 11:28:30

标签: numpy matplotlib ipython-notebook

我必须根据我的数据制作散点图和衬垫。 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

1 个答案:

答案 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相同的输出。