python散点图拟合曲线-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:
aa=aa+bb
else:
aa=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:
aa=aa+bb
else:
aa=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散点图拟合曲线-python散点图:如何添加拟合线并显示拟合方程与R方?相关推荐
- python散点图中如何添加拟合线并显示拟合方程与R方?
polyfit()函数可以使用最小二乘法将一些点拟合成一条曲线. numpy.polyfit(x, y, deg, rcond=None, full=False, w=None, cov=False) ...
- R语言编写自定义函数、评估回归模型预测变量的相对重要性(Relative importance)、通过在所有可能的子模型中添加一个预测变量而获得的R方的平均增加、评估预测变量的重要度、并通过点图可视化
R语言编写自定义函数.评估回归模型预测变量的相对重要性(Relative importance).通过在所有可能的子模型中添加一个预测变量而获得的R方的平均增加.来评估预测变量的重要程度.并通过点图可 ...
- python散点图拟合曲线-python散点图拟合
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 下面是我在文本文件中绘制数据散点图的代码. 我打开的文件包含两列. 左列为x坐标 ...
- python散点图拟合曲线-Python解决最小二乘法拟合并绘制散点图
问题背景 最近物理老师让用Excel弄一个最小二乘法拟合然后弄出方程来求玻尔兹曼常数.无奈发现Linux上的WPS没有绘图功能无语啊O__O"-,据说绘图功能是用delphi写的,不好做跨平 ...
- python散点图拟合曲线-python 绘制拟合曲线并加指定点标识的实现
python 绘制拟合曲线并加指定点标识 import os import numpy as np from scipy import log from scipy.optimize import c ...
- python散点图拟合曲线-python 拟合曲线并求参
需要对数据进行函数拟合,首先画一下二维散点图,目测一下大概的分布, 所谓正态分布,就是高斯分布,正态曲线是一种特殊的高斯曲线. python的scipy.optimize包里的curve_fit函数来 ...
- python散点图拟合曲线-python – 将曲线拟合到散点图的边界
我发现问题真的很有趣,所以我决定尝试一下.我不知道pythonic或natural,但我认为我已经找到了一种更准确的方法,可以在使用每个点的信息时将边缘拟合到像您这样的数据集. 首先,让我们生成一个看 ...
- python散点图拟合曲线-python曲线拟合
http://blog.sina.com.cn/s/blog_aed5bd1d0102vid7.html 1.多项式拟合范例: import matplotlib.pyplot as plt impo ...
- python散点图拟合曲线-python中的多元(多项式)最佳拟合曲线?
Tyson 对this question的公认回答 提供了 您只需将x和y点的数组以及所需的拟合度(顺序)传递到multipolyfit.这将返回系数,然后可以使用numpy的polyval绘制. 注 ...
最新文章
- 详解MySQL字符串函数CONCAT()、CONCAT_WS()、INSERT()、REPLACE()、LOWER()、UPPER()用法(二)
- mysql 64位 安装1045_MySql 安装时的1045错误
- mysql 回滚之后抛出异常_在PHP中 开始事务后,程序抛出异常 没有执行commit也没有执行rollback mysql事务会回滚吗?...
- jqGrid编辑—公共规则【附视频、ppt、源码】
- Spring Boot——开发新一代Spring应用
- tomcat中开启SSL
- Citrix HDX 3D Pro - 注意事项 - 2017H1
- 多元函数泰勒展开与黑塞矩阵
- 如何同时将多张图片进行批量无损压缩、调整尺寸及调整大小
- java 检测usb_如何从android中检测和打印USB打印机
- 2022电大国家开放大学网上形考任务-国学经典选读(山东)非免费(非答案)
- com.mysql.jdbc.Connection.isValid(I)Z错误解决办法
- [RK3288][Android7.1]调试笔记 --- 内置高版本的APK编译User版本出错解决
- 30【源码】数据可视化大屏:基于 Echarts + Python Flask 实现的32-9超宽大屏 - 中国国际疫情实时追踪
- 计算机连接未识别的网络,电脑网络连接处出现未识别的网络无Internet访问的解决办法...
- MoveIt与RobotStudio
- mk突变点检测_MK检验突变分析 matlab
- 管理跨国虚拟团队的技巧
- FSK、PSK基带信号高阶累积量理论值
- Android 在app里面打开另一个app,加<uses-permission android:name=“android.permission.QUERY_ALL_PACKAGES“