【问题标题】:Explain np.polyfit and np.polyval for a scatter plot解释散点图的 np.polyfit 和 np.polyval
【发布时间】:2014-11-21 11:28:29
【问题描述】:

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

【问题讨论】:

    标签: numpy matplotlib ipython-notebook


    【解决方案1】:

    np.polyval 正在应用您使用polyfit 获得的多项式函数。如果你得到 y = mx+ c 的关系。 np.polyval 函数会将您的 x 值乘以 fit[0] 并添加 fit[1] 根据 Docs 的 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]
    

    如果不想使用 polyval 函数:

    y = a*(x**2) + b*(x) + c
    

    这将创建与 polyval 相同的输出。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-18
      • 1970-01-01
      • 2016-06-21
      • 1970-01-01
      相关资源
      最近更新 更多