python 绘制拟合曲线并加指定点标识的实现


Posted in Python onJuly 10, 2019

python 绘制拟合曲线并加指定点标识

python 绘制拟合曲线并加指定点标识的实现

import os
import numpy as np
from scipy import log
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt
import math
from sklearn.metrics import r2_score
# 字体
plt.rcParams['font.sans-serif']=['SimHei']

# 拟合函数
def func(x, a, b):
#  y = a * log(x) + b
  y = x/(a*x+b)
  return y

# 拟合的坐标点
x0 = [2, 4, 8, 10, 24, 28, 32, 48] 
y0 = [6.66,8.35,10.81,11.55,13.63,13.68,13.69,13.67]

# 拟合,可选择不同的method
result = curve_fit(func, x0, y0,method='trf')
a, b = result[0] 

# 绘制拟合曲线用
x1 = np.arange(2, 48, 0.1) 
#y1 = a * log(x1) + b
y1 = x1/(a*x1+b)

x0 = np.array(x0)
y0 = np.array(y0)
# 计算r2
y2 = x0/(a*x0+b)
#y2 = a * log(x0) + b
r2 = r2_score(y0, y2)  

#plt.figure(figsize=(7.5, 5)) 
# 坐标字体大小
plt.tick_params(labelsize=11) 
 # 原数据散点
plt.scatter(x0,y0,s=30,marker='o')

# 横纵坐标起止
plt.xlim((0, 50))
plt.ylim((0, round(max(y0))+2))

# 拟合曲线
plt.plot(x1, y1, "blue") 
plt.title("标题",fontsize=13) 
plt.xlabel('X(h)',fontsize=12) 
plt.ylabel('Y(%)',fontsize=12) 

# 指定点,y=9时求x
p = round(9*b/(1-9*a),2)
#p = b/(math.log(9/a))
p = round(p, 2)
# 显示坐标点
plt.scatter(p,9,s=20,marker='x')
# 显示坐标点横线、竖线
plt.vlines(p, 0, 9, colors = "c", linestyles = "dashed")
plt.hlines(9, 0, p, colors = "c", linestyles = "dashed")
# 显示坐标点坐标值
plt.text(p, 9, (float('%.2f'% p),9),ha='left', va='top', fontsize=11)
# 显示公式
m = round(max(y0)/10,1)
print(m)
plt.text(48, m, 'y= x/('+str(round(a,2))+'*x+'+str(round(b,2))+')', ha='right',fontsize=12) 
plt.text(48, m, r'$R^2=$'+str(round(r2,3)), ha='right', va='top',fontsize=12) 

# True 显示网格 
# linestyle 设置线显示的类型(一共四种) 
# color 设置网格的颜色 
# linewidth 设置网格的宽度  
plt.grid(True, linestyle = "--", color = "g", linewidth = "0.5")
plt.show()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python文件和目录操作方法大全(含实例)
Mar 12 Python
理解Python垃圾回收机制
Feb 12 Python
PyQt5 pyqt多线程操作入门
May 05 Python
基于Python List的赋值方法
Jun 23 Python
Python实现随机漫步功能
Jul 09 Python
python2与python3共存问题的解决方法
Sep 18 Python
python requests库爬取豆瓣电视剧数据并保存到本地详解
Aug 10 Python
Python Numpy中数据的常用保存与读取方法
Apr 01 Python
python读取yaml文件后修改写入本地实例
Apr 27 Python
Python代码需要缩进吗
Jul 01 Python
在pycharm中文件取消用 pytest模式打开的操作
Sep 01 Python
在前女友婚礼上,用Python破解了现场的WIFI还把名称改成了
May 28 Python
python 寻找离散序列极值点的方法
Jul 10 #Python
Python中面向对象你应该知道的一下知识
Jul 10 #Python
python实现函数极小值
Jul 10 #Python
通过PHP与Python代码对比的语法差异详解
Jul 10 #Python
python 梯度法求解函数极值的实例
Jul 10 #Python
对Python中小整数对象池和大整数对象池的使用详解
Jul 09 #Python
Python 旋转打印各种矩形的方法
Jul 09 #Python
You might like
使用PHP维护文件系统
2006/10/09 PHP
php获取mysql版本的几种方法小结
2008/03/25 PHP
PHP 数组基础知识小结
2010/08/20 PHP
PHP strncasecmp字符串比较的小技巧
2011/01/04 PHP
php实现socket推送技术的示例
2017/12/20 PHP
简单的js分页脚本
2009/05/21 Javascript
jQuery实现动画效果的简单实例
2014/01/27 Javascript
JavaScript学习笔记之数组随机排序
2016/03/23 Javascript
浅析Bootstrap组件之面板组件
2016/05/04 Javascript
AngularJS基础 ng-submit 指令简单示例
2016/08/03 Javascript
js判断文件格式及大小的简单实例(必看)
2016/10/11 Javascript
浅谈在js传递参数中含加号(+)的处理方式
2016/10/11 Javascript
JS敏感词过滤代码
2016/12/23 Javascript
聊聊Vue.js的template编译的问题
2017/10/09 Javascript
JavaScript自动生成 年月范围 选择功能完整示例【基于jQuery插件】
2019/09/03 jQuery
Vue打包部署到Nginx时,css样式不生效的解决方式
2020/08/03 Javascript
Python import用法以及与from...import的区别
2015/05/28 Python
Python中getpass模块无回显输入源码解析
2018/01/11 Python
Matplotlib中文乱码的3种解决方案
2018/11/15 Python
使用Python实现图像标记点的坐标输出功能
2019/08/14 Python
如何分离django中的媒体、静态文件和网页
2019/11/12 Python
django3.02模板中的超链接配置实例代码
2020/02/04 Python
Python AutoCAD 系统设置的实现方法
2020/04/01 Python
python 两种方法删除空文件夹
2020/09/29 Python
python matlab库简单用法讲解
2020/12/31 Python
Mamas & Papas沙特阿拉伯:英国最受欢迎的婴儿品牌
2017/11/20 全球购物
REISS美国官网:伦敦最受欢迎的时尚品牌
2019/08/16 全球购物
给领导的检讨书
2014/02/16 职场文书
劳动工资科岗位职责范本
2014/03/02 职场文书
我的求职择业计划书
2014/04/04 职场文书
村委会贫困证明范文
2014/09/21 职场文书
公务员政审材料范文
2014/12/23 职场文书
发布会邀请函
2015/01/31 职场文书
2015高考寄语集锦
2015/02/27 职场文书
浅谈Redis 中的过期删除策略和内存淘汰机制
2022/04/03 Redis
最新动漫情报:2022年7月新番定档超过30部, OVERLORD骨王第四季也在其中噢
2022/05/04 日漫