Python系列最适合的返回值

时间:2017-10-02 15:58:48

标签: python

我正在尝试在我的图表中插入一条线性线: enter image description here

红线(原始数据)的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 但看起来它与情节相反(渐变和拦截)。 有人可以向我解释一下吗?

1 个答案:

答案 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],这正是梯度和拦截......