python散点图:如何添加拟合线并显示拟合方程与R方
polyfit()函数可以使用最小二乘法将一些点拟合成一条曲线
numpy.polyfit(x,y,deg,rcond=None,full=False,w=None,cov=False)
x : 要拟合点的恒左边
y : 要拟合点的纵坐标
deg : 自由度,例如自由度为2,那么拟合出来的曲线就是二次曲线
import numpy as np
import matplotlib.pyplot as plt
#解决坐标轴刻度负号乱码
plt.rcParams['axes.unicode_minus'] = False
#解决中文乱码问题
plt.rcParams['font.sans-serif'] = ['Simhei']
x = np.arange(-1,1,0.02)
y = 2 * np.sin(x*3) + np.random.rand(len(x))
plt.scatter(x,y)
plt.show()
# 开始用np.polyfit 函数来拟合成一条3次曲线
para = np.polyfit(x,y,3)
#输出结果为3次方程的参数
y2 = para[0] * x **3 + para[1] * x ** 2 + para[2] * x + para[3]
#将拟合后的结果打印
plt.scatter(x,y)
plt.plot(x,y2,'r')
plt.show()
#p = np.poly1d(para)
#p = np.poly1d(para,variable='x')