已解决
python 2组list绘制拟合曲线、计算拟合方程 R^2
来自网友在路上 195895提问 提问时间:2023-10-24 03:15:28阅读次数: 95
最佳答案 问答题库958位专家为你答疑解惑
import matplotlib.pyplot as plt
import numpy as np
# plt.rcParams['font.family'] = 'SimHei' # 指定使用中文字体,例如宋体(SimHei)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+bbelse:aa=aa+bb+'x^'+str(deg-i) #方程拼接 ——————————————————# 利用相关系数矩阵计算R方r2 = round(np.corrcoef(y, p(x))[0,1]**2,2)plt.scatter(x, y, label="Comparison", color='b', marker='o') #原始数据散点图plt.plot(x, p(x), color='r') # 画拟合曲线# plt.text(-1,0,aa,fontdict={'size':'10','color':'b'})plt.legend([f"R^2: {r2}", f"Fitting Equation: {aa}"]) #拼接好的方程和R方放到图例# 添加标签和标题plt.xlabel("Old Normalized_TMB Values")plt.ylabel("New Normalized_TMB Values")plt.title("Comparison of Normalized_TMB")plt.savefig('./tmp.jpg')plt.show()print('曲线方程为:',aa)print(' r^2为:', r2)def plot_scatter(old_list, new_list):# 示例数据:相同样本的两次运行结果# sample_names = ["Sample 1", "Sample 2", "Sample 3", "Sample 4"]run1_values = old_list # 第一次运行的数据run2_values = new_list # 第二次运行的数据# 创建散点图plt.scatter(run1_values, run2_values, label="Comparison", color='b', marker='o')# 添加标签和标题plt.xlabel("Old Normalized_TMB Values")plt.ylabel("New Normalized_TMB Values")plt.title("Comparison of Normalized_TMB")# 添加数据点的标签# for i, sample_name in enumerate(sample_names):# plt.annotate(sample_name, (run1_values[i], run2_values[i]))# 添加一条线表示一对一的关系plt.plot([min(run1_values), max(run1_values)], [min(run1_values), max(run1_values)], linestyle='--', color='r', label="1:1 Line")# 显示图例plt.legend()plt.savefig('./tmp.jpg')# 显示散点图plt.show()normalzed_tmb_compare_file = 'normalzed_tmb.txt'
old_FFPE_list, new_FFPE_list = [], []
old_CF_list, new_CF_list = [], []
with open(normalzed_tmb_compare_file) as f:next(f)for line in f:line_list = line.strip('\n').split('\t')# if float(line_list[0]) > 20:# continueold, type_, new = line_listif type_ == 'FFPE':old_FFPE_list.append(float(line_list[0]))new_FFPE_list.append(float(line_list[-1]))if type_ == 'CF':old_CF_list.append(float(line_list[0]))new_CF_list.append(float(line_list[-1])) # Curve_Fitting(old_FFPE_list, new_FFPE_list, 1)# Curve_Fitting(old_CF_list, new_CF_list, 1)Curve_Fitting(old_CF_list+old_FFPE_list, new_CF_list+new_FFPE_list, 1)# plot_scatter(old_list, new_list)
查看全文
99%的人还看了
相似问题
- 微分方程,含矩阵的指数函数
- 斯坦福机器学习 Lecture2 (假设函数、参数、样本等等术语,还有批量梯度下降法、随机梯度下降法 SGD 以及它们的相关推导,还有正态方程)
- acwing算法基础之数学知识--高斯消元法求解线性方程组
- 空间曲面@常见曲面方程
- 3.29每日一题(微分方程的几何应用题:重点考察)
- C#,数值计算——偏微分方程,谱方法的微分矩阵的计算方法与源程序
- 吴恩达《机器学习》4-6->4-7:正规方程
- 生态环境领域基于R语言piecewiseSEM结构方程模型
- matlab求解时变系统的Riccati矩阵微分方程
- 管理类联考——数学——汇总篇——知识点突破——代数——函数、方程——记忆
猜你感兴趣
版权申明
本文"python 2组list绘制拟合曲线、计算拟合方程 R^2":http://eshow365.cn/6-22928-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!