回归线绘制Python

时间:2017-12-12 12:16:25

标签: python matplotlib

我试图根据以下情况绘制回归线。这段代码有效;然而,它将回归线绘制在散点图的右侧。

我的问题是如何让回归线正确绘制。我从这个网站借用了密码。

http://matthiaseisen.com/pp/patterns/p0170/

import numpy.linalg
import matplotlib.pyplot as plt

def regression_model():
    L_1 = numpy.array([38.83, 37.8, 34.41, 30.95, 23.00, 31.75, 36.59, 41.15])
    y_d = [1,2,3,4,5,6,7,8]
    n=len(L_1)

    B=numpy.array(y_d)
    A=numpy.array(([[L_1[j], 1] for j in range(n)]))
    X=numpy.linalg.lstsq(A,B)[0]
    a=X[0]; b=X[1]
    print ("Line is: y=",a,"x+",b)
    r_9 = a * L_1[7] + 4.92
    print ('Predicited value at period 9 is ' + str(r_9) +  ' using regression')

    fig, ax = plt.subplots()
    fit = numpy.polyfit(y_d, L_1, deg=1)
    ax.plot(L_1, fit[0] * L_1 + fit[1], color='red')
    ax.scatter(y_d, L_1)
    plt.show() 

1 个答案:

答案 0 :(得分:1)

您在Y轴L_1上绘制了该线,而您需要的是X轴y_d。我们需要一个numpy数组才能工作,但你已经有了一个:

fit = numpy.polyfit(y_d, L_1, deg=1)
ax.plot(B, fit[0] * B + fit[1], color='red')