numpy - 2 次多项式回归的最佳拟合线

标签 numpy matplotlib

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

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")

我有点困惑为什么最佳拟合线这么粗而不是简单的线。 你认为我在代码中做错了什么吗?

fit with fat line

最佳答案

问题是您的 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 未排序,则该行到处都是锯齿形,使其看起来很粗。

关于numpy - 2 次多项式回归的最佳拟合线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22915341/

相关文章:

python-2.7 - 使用 numpy 计算文本文档之间的 Kullback-Leibler (KL) 距离

python - 在 Python、NumPy 和 R 中创建相同的随机数序列

python - 偏移的颜色

python - matplotlib 的自定义箭头样式,pyplot.annotate

Python:具有不同总大小的子图

python-3.x - 如何在 PySide QFrame 中自动调整 Matplotlib 图?

python - Matplotlib 自定义样式默认标题位置

python - 更简洁的 Elif 语句

python - numpy 向数组添加可变数量的维度

python - 慢 Pandas DataFrame MultiIndex 重新索引