python 线性拟合图、散点图

这篇具有很好参考价值的文章主要介绍了python 线性拟合图、散点图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 散点图线性拟合
from scipy import stats
import numpy as np
import matplotlib.pyplot as plt

#数据生成
x = np.linspace(30,79,20)
y = np.linspace(40,100,20) + np.random.randint(10,size=20)

#设置图片大小
plt.figure(figsize=(6,6))

#获取数据范围
cmax = max(max(x),max(y))
cmin = min(min(x),min(y))

#对散点数据进行线性拟合 获取斜率 截距 R2
slope, intercept, r_value, p_value, std_err = stats.linregress(x, y) #斜率 截距 R2

#画拟合线
X1 = np.arange (0,int(cmax),100)
Y1 = np.array([ intercept+ slope * x for x in X1])
plt.plot(X1,Y1)

#统一 x y 轴范围
plt.xlim(cmin,cmax )
plt.ylim(cmin,cmax )

#统一 x y 轴坐标
X2 = np.linspace(0,cmax*1.1,5)
Y2 = np.linspace(0,cmax*1.1,5)
plt.xticks(X2)
plt.yticks(Y2)

#画建1:1 标准线
plt.plot(range(int(cmax*1.1)),color='black')

#画散点图
plt.scatter(x,y)

#写入公式以及R2
plt.text(cmax*0.1,cmax*0.9,'R$^2$=%s'%(np.around(r_value**2,2)),fontsize=20)
plt.text(cmax*0.1,cmax*0.8,'y=%s*x+%s'%(np.around(slope,2),np.around(intercept,2)),fontsize=15)

#写入坐标轴label
plt.xlabel('坐标轴x',fontproperties='KaiTi',fontsize=20)
plt.ylabel('坐标轴y',fontproperties='KaiTi',fontsize=20)

#设置刻度大小
plt.tick_params(labelsize=15)

#保存路径 格式 将边缘空白部分去除,设置分辨率为300
plt.savefig('test.jpg',bbox_inches='tight',dpi=300) 

python绘制散点图并拟合,自用,python可视化,python学习,python,matplotlib,回归

  • 散点图无截距线性拟合 (2023/08/31)
#拟合函数定义
from scipy import optimize
from sklearn.metrics import r2_score
from scipy import stats
import numpy as np
import matplotlib.pyplot as plt
def fun1(x, a):
    return a * x

#数据生成
x = np.linspace(30,79,20)
y = np.linspace(40,100,20) + np.random.randint(10,size=20)

#设置图片大小
plt.figure(figsize=(6,6))

#获取数据范围
cmax = max(max(x),max(y))
cmin = min(min(x),min(y))

#无截距拟合
slope = optimize.curve_fit(fun1,x,y)[0][0]
r = r2_score(slope*x,y)

config = {
"font.family":'serif',
"font.size": 20,
"mathtext.fontset":'stix',
"font.serif": ['Times New Roman'],
            }
plt.rcParams.update(config)
#画拟合线
X1 = np.arange (0,int(cmax),100)
Y1 = np.array([ slope * x for x in X1])
plt.plot(X1,Y1)

#统一 x y 轴范围
plt.xlim(cmin,cmax )
plt.ylim(cmin,cmax )

#统一 x y 轴坐标
X2 = np.linspace(0,cmax*1.1,5)
Y2 = np.linspace(0,cmax*1.1,5)
plt.xticks(X2)
plt.yticks(Y2)

#画建1:1 标准线
plt.plot(range(int(cmax*1.1)),color='black')

#画散点图
plt.scatter(x,y)

#写入公式以及R2
plt.text(cmax*0.1,cmax*0.9,'R$^2$=%s'%(np.around(r**2,2)),fontsize=20)
plt.text(cmax*0.1,cmax*0.8,'y=%s*x'%(np.around(slope,2)),fontsize=20)

#写入坐标轴label
plt.xlabel('Xlabel',fontsize=20)
plt.ylabel('Ylabel',fontsize=20)

#设置刻度大小
plt.tick_params(labelsize=15)
plt.show()
#保存路径 格式 将边缘空白部分去除,设置分辨率为300
#plt.savefig('test.jpg',bbox_inches='tight',dpi=300) 

python绘制散点图并拟合,自用,python可视化,python学习,python,matplotlib,回归

字体设置文章来源地址https://www.toymoban.com/news/detail-621058.html

到了这里,关于python 线性拟合图、散点图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包