python散点图:如何添加拟合线并显示拟合方程与R方?

注意:免费节点订阅链接已更新至 2026-01-24点击查看详情

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) 

科学上网利器:深度解析如何选择最适合你的V2Ray客户端

在这个信息爆炸的时代,互联网已成为我们获取知识、交流思想的重要渠道。然而,由于各种原因,许多优质的网络资源被无形的"墙"所阻隔。作为突破网络限制的利器,V2Ray凭借其强大的功能和出色的隐蔽性,已成为众多网民科学上网的首选工具。但面对琳琅满目的V2Ray客户端,许多用户常常陷入选择困难。本文将为你全面剖析V2Ray客户端的核心要素,助你找到最适合自己的科学上网伴侣。

为什么V2Ray客户端的选择如此重要?

选择一款合适的V2Ray客户端绝非小事,它直接关系到你的上网体验、数据安全和隐私保护。一个优秀的客户端不仅能提供稳定的连接,还能在复杂网络环境下保持出色的性能表现。相反,选择不当可能导致频繁断连、速度缓慢,甚至存在安全隐患。

V2Ray客户端的差异主要体现在以下几个方面:用户界面的友好程度、连接协议的多样性、系统资源的占用率、更新维护的及时性以及额外功能的丰富性。这些因素共同决定了最终的使用体验,因此需要根据个人需求和技术水平做出明智选择。

主流V2Ray客户端横向对比

Windows平台首选:V2RayN

对于Windows用户而言,V2RayN无疑是大多数情况下的最佳选择。这款客户端拥有直观的中文界面,即使是技术小白也能轻松上手。它支持多种协议自动识别,内置了优质的配置方案,大大降低了使用门槛。

在实际使用中,V2RayN表现出色:连接稳定、速度流畅,特别适合国内复杂的网络环境。其后台运行机制优化得当,系统资源占用低,不会拖慢电脑运行速度。更值得一提的是,V2RayN社区活跃,遇到问题时总能快速找到解决方案。

macOS用户的优雅之选:V2RayX

苹果电脑用户通常会青睐V2RayX,这款客户端完美继承了macOS的设计美学,界面简洁优雅,操作逻辑符合Mac用户的使用习惯。安装配置过程极为简单,通常几分钟内就能完成科学上网的全部设置。

V2RayX在性能表现上同样不俗,连接速度快且稳定。它能够智能适应不同的网络环境,自动选择最优节点,确保上网体验始终如一。虽然功能上没有Windows平台的客户端丰富,但对于追求简洁高效的Mac用户来说已经足够。

Linux技术派的选择:shadowsocks-libev/V2Ray

Linux用户往往更倾向于使用命令行工具,shadowsocks-libev/V2Ray组合就是这类用户的理想选择。虽然需要一定的技术基础,但一旦掌握,其灵活性和可控性是无与伦比的。

通过命令行界面,高级用户可以精确控制每一个连接参数,实现高度定制化的科学上网体验。在速度和稳定性方面,这套方案表现极为出色,特别适合服务器环境或需要长期稳定运行的情况。许多技术大牛都推崇这种"纯手工"配置方式。

移动端王者:V2RayNG

在Android平台上,V2RayNG凭借其简洁直观的界面和强大的功能成为了不二之选。这款应用设计充分考虑移动端的使用场景,配置过程简单快捷,支持直接导入配置文件,大大降低了使用门槛。

实际体验中,V2RayNG的网络适应能力出色,能够智能切换不同网络环境,保持连接稳定。其耗电控制得当,不会明显影响手机续航,是移动办公、出国旅行的好帮手。安全方面也做足了功夫,有效保护用户的隐私数据。

选择V2Ray客户端的黄金法则

面对众多选择,如何找到最适合自己的V2Ray客户端?以下几个关键因素值得重点考虑:

1. 平台兼容性:首先要确保客户端支持你的操作系统。不同平台的客户端体验差异很大,跨平台使用时要特别注意配置的同步问题。

2. 使用难度:评估自己的技术水平。如果你是技术小白,那么拥有友好图形界面的客户端更为合适;若具备一定技术基础,命令行工具可能提供更多灵活性。

3. 特殊需求:是否需要分流规则、多协议支持等高级功能?不同的客户端在功能丰富程度上差异明显,根据自己的实际需求选择。

4. 维护状态:优先选择更新频繁、社区活跃的客户端。网络环境不断变化,长期不更新的客户端可能无法适应新的封锁手段。

5. 隐私安全:科学上网工具本身就会接触你的所有网络流量,因此客户端的可信度至关重要。尽量选择开源、有良好口碑的客户端,避免使用来历不明的修改版。

专家点评:V2Ray客户端的现状与未来

纵观当前的V2Ray客户端生态,我们可以看到一个明显的趋势:各平台的专业化程度越来越高。Windows端的V2RayN在易用性和功能性上找到了完美平衡;macOS的V2RayX则延续了苹果产品一贯的优雅简洁;Linux方案虽然门槛较高,但为技术爱好者提供了无限可能;移动端的V2RayNG则充分考虑了移动场景的特殊需求。

这种专业化分工对用户而言无疑是件好事,它意味着每个平台都能获得最佳的使用体验。但同时也要警惕过度碎片化带来的问题——配置方式不统一、功能实现有差异,这增加了用户的学习成本。

未来,我们期待看到更多跨平台统一体验的尝试,以及更加智能化的连接管理。人工智能技术的引入可能会彻底改变科学上网工具的使用方式,实现真正的"无感"科学上网。但无论如何发展,安全性、稳定性和易用性这三项核心指标永远不会过时。

结语:适合自己的才是最好的

选择V2Ray客户端就像挑选一双合脚的鞋子,没有绝对的好坏之分,关键在于是否适合自己。Windows普通用户可能会对V2RayN爱不释手,技术极客则可能更享受命令行带来的掌控感。重要的是明确自己的需求,然后根据平台、技术水平和使用场景做出理性选择。

记住,科学上网只是手段,而非目的。无论选择哪款客户端,我们的终极目标都是更自由地获取信息、更安全地保护隐私、更高效地进行网络活动。希望本文能帮助你在纷繁复杂的V2Ray客户端中找到那个最懂你的"知己",开启畅快淋漓的网络冲浪之旅。

版权声明:

作者: freeclashnode

链接: https://www.freeclashnode.com/news/article-3036.htm

来源: FreeClashNode

文章版权归作者所有,未经允许请勿转载。

免费节点实时更新

热门文章

最新文章

归档