Numpy 二次多项式回归的最佳拟合线

Numpy 二次多项式回归的最佳拟合线,numpy,matplotlib,Numpy,Matplotlib,我正在尝试使用阶数为2的numpy中的polyfit函数在2个点x和y之间创建最佳拟合线 fit = polyfit(x, y, 2) fit_fn = poly1d(fit) plot(x, y, 'k.', x, fit_fn(x), '--r', linewidth=1) plt.xlabel("x") plt.ylabel("y") 我有点困惑,为什么最合适的线条这么粗,而不是简单的线条。 你觉得我在代码里做错了什么吗 问题是您的x没有排序。试一试 plot(x, y, 'k.',

我正在尝试使用阶数为2的numpy中的polyfit函数在2个点x和y之间创建最佳拟合线

fit = polyfit(x, y, 2)
fit_fn = poly1d(fit)

plot(x, y, 'k.', x, fit_fn(x), '--r', linewidth=1)
plt.xlabel("x")
plt.ylabel("y")
我有点困惑,为什么最合适的线条这么粗,而不是简单的线条。 你觉得我在代码里做错了什么吗


问题是您的
x
没有排序。试一试

plot(x, y, 'k.', sort(x), fit_fn(sort(x)), '--r', linewidth=1)

(x_0,fit_fn(x_0))
(x_1,fit_fn(x_1))的绘图“连接点”
。如果你的
x
没有被排序,那么这条线就会到处呈之字形,使它看起来很粗。

如果
x
很大,你就浪费时间对它排序两次,我会说
xs=np。排序(x)
然后
绘图(x,y,'k',xs fit\fn(xs),…)