python散点图怎么添加拟合线并显示拟合方程与R方
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍"python散点图怎么添加拟合线并显示拟合方程与R方",在日常操作中,相信很多人在python散点图怎么添加拟合线并显示拟合方程与R方问题上存在疑惑,小编查阅了各式资料,整理出简单好
千家信息网最后更新 2026年10月31日python散点图怎么添加拟合线并显示拟合方程与R方
这篇文章主要介绍"python散点图怎么添加拟合线并显示拟合方程与R方",在日常操作中,相信很多人在python散点图怎么添加拟合线并显示拟合方程与R方问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"python散点图怎么添加拟合线并显示拟合方程与R方"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
polyfit()函数可以使用最小二乘法将一些点拟合成一条曲线。
numpy.polyfit(x, y, deg, rcond=None, full=False, w=None, cov=False) # x:要拟合点的横坐标 # y:要拟合点的纵坐标 # deg:自由度.例如:自由度为2,那么拟合出来的曲线就是二次函数,自由度是3,拟合出来的曲线就是3次函数
首先我们先来构造一下需要被拟合的散点
# 解决坐标轴刻度负号乱码 plt.rcParams['axes.unicode_minus'] = False # 解决中文乱码问题 plt.rcParams['font.sans-serif'] = ['Simhei'] import numpy as np import matplotlib.pyplot as plt x = np.arange(-1, 1, 0.02) y = 2 * np.sin(x * 2.3) + np.random.rand(len(x))
然后打印一下看看
plt.scatter(x, y) plt.show()

然后用polyfit函数来把这些点拟合成一条3次曲线
parameter = np.polyfit(x, y, 3)
输出的结果为3次方程的参数,我们可以像下面这样把方程拼接出来
y2 = parameter[0] * x ** 3 + parameter[1] * x ** 2 + parameter[2] * x + parameter[3]
将拟合后的结果打印一下
plt.scatter(x, y) plt.plot(x, y2, color='g') plt.show()

还可以使用poly1d()函数帮我们拼接方程,结果是一样的
p = np.poly1d(parameter) plt.scatter(x, y) plt.plot(x, p(x), color='g') plt.show()
评估指标R方
二维散点进行任意函数的最小二乘拟合
最小二乘中相关系数与R方的关系推导
其中,
利用相关系数矩阵计算R方
correlation = np.corrcoef(y, y2)[0,1] #相关系数 correlation**2 #R方
先来看下poly1d函数自带的输出结果
p = np.poly1d(parameter,variable='x') print(p)
这里是把结果输出到两行里了,但是输出到两行是非常不方便的
尝试下自己编写函数,使输出到一行里
parameter=[-2.44919641, -0.01856314, 4.12010434, 0.47296566] #系数 aa='' deg=3 for i in range(deg+1): bb=round(parameter[i],2) #bb是i次项系数 if bb>=0: if i==0: bb=str(bb) else: bb=' +'+str(bb) else: bb=' '+str(bb) if deg==i: aaaa=aa+bb else: aaaa=aa+bb+'x^'+str(deg-i) print(aa)
封装成函数
def Curve_Fitting(x,y,deg): parameter = np.polyfit(x, y, deg) #拟合deg次多项式 p = np.poly1d(parameter) #拟合deg次多项式 aa='' #方程拼接 —————————————————— for i in range(deg+1): bb=round(parameter[i],2) if bb>0: if i==0: bb=str(bb) else: bb='+'+str(bb) else: bb=str(bb) if deg==i: aaaa=aa+bb else: aaaa=aa+bb+'x^'+str(deg-i) #方程拼接 —————————————————— plt.scatter(x, y) #原始数据散点图 plt.plot(x, p(x), color='g') # 画拟合曲线 # plt.text(-1,0,aa,fontdict={'size':'10','color':'b'}) plt.legend([aa,round(np.corrcoef(y, p(x))[0,1]**2,2)]) #拼接好的方程和R方放到图例 plt.show() # print('曲线方程为:',aa) # print(' r^2为:',round(np.corrcoef(y, p(x))[0,1]**2,2))利用封装的函数重新画图
Curve_Fitting(x,y,3)
到此,关于"python散点图怎么添加拟合线并显示拟合方程与R方"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
方程
函数
曲线
系数
结果
输出
学习
最小
自由
自由度
乱码
多项式
就是
更多
问题
先来
封装
帮助
原始
实用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
精品咖啡豆
高科技与互联网
宜安科技 互联网金融
智慧科技互联网
融贸通互联网科技
佰商互联网科技有限公司
互联网科技股午盘股票涨跌
互联网科技创新企业排名
太原新华互联网科技学校怎么样
隆华科技工业互联网
语蝶互联网科技有限公司
青岛科技大学互联网大赛研究生
互联网科技商业
杭州壁岐互联网科技有限公司
科技类公司包括互联网吗
国大互联网教育科技有限公司薪资
高科技互联网套路
互联网科技接地气
互联网科技平台产品运营
万物互联网智能科技
耶加雪菲
互联网 新科技
互联网养老 桔豆科技
重庆科技学院互联网
互联网科技的全部知识
黑科技 体验场景 互联网大会
宇信科技在杭州互联网排第几
中国新注册互联网科技
互联网科技职业技能培训学校
银川新华互联网科技学校招聘