红线(原始数据)的x值为:
array([ 0.03591733, 0.16728212, 0.49537727, 0.96912459,
1. , 1. , 1.11894521, 1.93042113,
2.94284656, 10.98699942])
,y值为
array([ 0.0016241 , 0.00151784, 0.00155586, 0.00174498, 0.00194872,
0.00189413, 0.00208325, 0.00218074, 0.0021281 , 0.00243127])
我最适合的代码是:
LineFit = np.polyfit(x, y, 1)
p = np.poly1d(LineFit)
plt.plot(x,y,'r-')
plt.plot(x,p(y),'--')
plt.show()
但是,我的LineFit会给我回复
array([ 7.03475069e-05, 1.76565292e-03])
根据polyfit的定义(从低到高阶系数)应该是截取和渐变 https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.polynomial.polynomial.polyfit.html 但看起来它与情节相反(渐变和拦截)。 有人可以向我解释一下吗?
答案 0 :(得分:0)
您正在查看其他文档。见https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.polyfit.html#numpy.polyfit:
...拟合多项式p(x)= p [0] * x ** deg + ... + p [度]度度为点(x,y)。
所以在你的例子中,它是p(x)= p [0] * x + p [1],这正是梯度和拦截......