我有一个数据集,我被要求拟合一次多项式。
我正在使用numpy
函数polyfit
,但我得到了一些非常奇怪的结果
我使用以下代码来查找多项式并绘制它
import numpy as np
data = np.loadtxt('men-olympics-100.txt')
year = data[:,0]
time = data[:,1]
plt.scatter(year, time)
xplot=np.linspace(1896,2008,100)
poly =np.polyfit(year,time,1)
print(poly)
yplot = poly[0]+poly[1]*(xplot)
plt.plot(xplot,yplot)
这是结果图
显然我在这里做错了,但我无法确切地知道在哪里。我使用polyfit
错了,还是我错了?
答案 0 :(得分:3)
这一行
yplot = poly[0]+poly[1]*(xplot)
需要像这样
yplot = poly[1]+poly[0]*(xplot)
或者更普遍(感谢@Victor Chubukov)
np.polyval(poly,xplot)