使用点绘制线性回归线

plotting a linear regression line using point

我想使用 (x,y) 点绘制回归线。

我做了这样的事情

import numpy as np
from numpy.polynomial.polynomial import polyfit
import matplotlib.pyplot as plt
import scipy

# Sample data
x = np.array([4.2])
y = np.array([2.8])
plt.plot(x, y, 'o')
m, b = np.polyfit(x, y, 1)
print(m)
print(b)
plt.plot(x, m*x + b)
plt.show()

但是,它只绘制了点而不是line.Can,请您提前建议如何绘制line.Thanks。

你的代码工作正常,我只是添加了 (0,0) 点:

import numpy as np
from numpy.polynomial.polynomial import polyfit
import matplotlib.pyplot as plt
import scipy

# Sample data
x = np.array([0, 4.2])
y = np.array([0, 2.8])
plt.plot(x, y, 'o')
m, b = np.polyfit(x, y, 1)
print(m)
print(b)
plt.plot(x, m*x + b)

输出:

您的数据只包含一个点。通常,我们希望在整个 x 域上显示拟合曲线。 (即使这里回归是线性的,只需要 2 个点)。

# Display the regression curve
x_dom = np.linspace(0, 5, 200)
y_reg = m * x_dom + b
plt.plot(x_dom, y_reg, c="royalblue", label="Regression curve")
plt.plot(x, y, 'o', c="orange", label="Data")
plt.legend()
plt.show()

请注意,拟合一个点没有意义。无数条直线穿过该点。如果知道第二个点(比如原点),就可以解析得到通过这两个点的直线的系数。