我正在尝试使用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")
我有点困惑为什么最合适的线条如此厚实而不是简单的线条。 你在代码中做错了吗?
答案 0 :(得分:7)
问题是您的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
没有排序,则该线在整个地方呈锯齿状,使其看起来很厚。