python散点图怎么添加拟合线并显示拟合方程与R方
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章主要介绍"python散点图怎么添加拟合线并显示拟合方程与R方",在日常操作中,相信很多人在python散点图怎么添加拟合线并显示拟合方程与R方问题上存在疑惑,小编查阅了各式资料,整理出简单好
千家信息网最后更新 2025年01月20日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安全错误
数据库的锁怎样保障安全
松江区质量软件开发管理方法
摩尔互联网科技诈骗
创建和管理数据库实验
您访问网站未接入网络安全审计
软件开发与移动互联
上易网络技术有限公司怎么样
最牛服务器芯片
软件开发培训上哪学
oa管理软件开发平台
网络安全工程师深圳
岳西网络安全培训班
游戏sql数据库架设
中美互联网科技公司对比图
服务器为什么会一个卡一个不卡
成都网络技术服务公司
减半比特币的网络安全吗
服务器数据丢失很久能恢复么
专业 数据库
服务器被踢出去是什么意思
局加强节日期间网络安全工作
微信上发送文件在服务器保存多久
数据库查询分页语句mysql
苹果手机农历日历服务器网址
网络安全两单两卡
江苏电商软件开发哪家专业
美国使用网络技术破坏基础设施
互联网科技发达吗
网络安全设备上的ha是什么
网络技术对大学生的弊端英语
戏亭印象网络安全宣传周