python散点图拟合曲线如何求拟合_python散点图最佳拟合直线的代码

python散点图拟合曲线如何求拟合_python散点图最佳拟合直线的代码你可以用numpy的polyfit。我使用以下(您可以安全地删除关于确定系数和误差界限的位,我只是认为它看起来不错):#!/usr/bin/python3importnumpyasnpimportmatplotlib.pyplotaspltimportcsvwithopen(“example.csv”,”r”)asf:data=[rowforrowincsv.re…

python散点图拟合曲线如何求拟合_python散点图最佳拟合直线的代码

你可以用numpy的polyfit。我使用以下(您可以安全地删除关于确定系数和误差界限的位,我只是认为它看起来不错):#!/usr/bin/python3

import numpy as np

import matplotlib.pyplot as plt

import csv

with open(“example.csv”, “r”) as f:

data = [row for row in csv.reader(f)]

xd = [float(row[0]) for row in data]

yd = [float(row[1]) for row in data]

# sort the data

reorder = sorted(range(len(xd)), key = lambda ii: xd[ii])

xd = [xd[ii] for ii in reorder]

yd = [yd[ii] for ii in reorder]

# make the scatter plot

plt.scatter(xd, yd, s=30, alpha=0.15, marker=’o’)

# determine best fit line

par = np.polyfit(xd, yd, 1, full=True)

slope=par[0][0]

intercept=par[0][1]

xl = [min(xd), max(xd)]

yl = [slope*xx + intercept for xx in xl]

# coefficient of determination, plot text

variance = np.var(yd)

residuals = np.var([(slope*xx + intercept – yy) for xx,yy in zip(xd,yd)])

Rsqr = np.round(1-residuals/variance, decimals=2)

plt.text(.9*max(xd)+.1*min(xd),.9*max(yd)+.1*min(yd),’$R^2 = %0.2f$’% Rsqr, fontsize=30)

plt.xlabel(“X Description”)

plt.ylabel(“Y Description”)

# error bounds

yerr = [abs(slope*xx + intercept – yy) for xx,yy in zip(xd,yd)]

par = np.polyfit(xd, yerr, 2, full=True)

yerrUpper = [(xx*slope+intercept)+(par[0][0]*xx**2 + par[0][1]*xx + par[0][2]) for xx,yy in zip(xd,yd)]

yerrLower = [(xx*slope+intercept)-(par[0][0]*xx**2 + par[0][1]*xx + par[0][2]) for xx,yy in zip(xd,yd)]

plt.plot(xl, yl, ‘-r’)

plt.plot(xd, yerrLower, ‘–r’)

plt.plot(xd, yerrUpper, ‘–r’)

plt.show()

今天的文章python散点图拟合曲线如何求拟合_python散点图最佳拟合直线的代码分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/32146.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注