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的getattr(),setattr(),delattr(),hasattr()
Jun 14 Python
Python实现在tkinter中使用matplotlib绘制图形的方法示例
Jan 18 Python
Django添加favicon.ico图标的示例代码
Aug 07 Python
python被修饰的函数消失问题解决(基于wraps函数)
Nov 04 Python
django 实现celery动态设置周期任务执行时间
Nov 19 Python
python爬虫之遍历单个域名
Nov 20 Python
Python代码生成视频的缩略图的实例讲解
Dec 22 Python
Django重设Admin密码过程解析
Feb 10 Python
python函数调用,循环,列表复制实例
May 03 Python
Python自带的IDE在哪里
Jul 01 Python
Django+RestFramework API接口及接口文档并返回json数据操作
Jul 12 Python
Python Request类源码实现方法及原理解析
Aug 17 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实现无限级分类 | 树型显示分类关系
2006/11/19 PHP
Apache实现Web Server负载均衡详解(不考虑Session版)
2013/07/05 PHP
日期函数扩展类Ver0.1.1
2006/09/07 Javascript
phpwind放自动注册方法
2006/12/02 Javascript
javascript中用星号表示预录入内容的实现代码
2011/01/08 Javascript
jquery固定底网站底部菜单效果
2013/08/13 Javascript
JavaScript获取flash对象与网上的有所不同
2014/04/21 Javascript
jQuery实现简单的文件上传进度条效果
2020/03/26 Javascript
JS中JSON对象和String之间的互转及处理技巧
2016/04/06 Javascript
深入理解JQuery中的事件与动画
2016/05/18 Javascript
javascript cookie用法基础教程(概念,设置,读取及删除)
2016/09/20 Javascript
JS实现滑动门效果的方法详解
2016/12/19 Javascript
jQuery实现花式轮播之圣诞节礼物传送效果
2016/12/25 Javascript
Vue.js实现模拟微信朋友圈开发demo
2017/04/20 Javascript
JS中Promise函数then的奥秘探究
2018/07/30 Javascript
小试小程序云开发(小结)
2019/06/06 Javascript
6种JavaScript继承方式及优缺点(小结)
2020/02/06 Javascript
利用node.js开发cli的完整步骤
2020/12/29 Javascript
[32:26]EG vs IG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python彩色化Linux的命令行终端界面的代码实例分享
2016/07/02 Python
Python pip 安装与使用(安装、更新、删除)
2019/10/06 Python
Django admin禁用编辑链接和添加删除操作详解
2019/11/15 Python
解决TensorFlow训练内存不断增长,进程被杀死问题
2020/02/05 Python
python将logging模块封装成单独模块并实现动态切换Level方式
2020/05/12 Python
uniapp+Html5端实现PC端适配
2020/07/15 HTML / CSS
戴尔美国官网:Dell
2016/08/31 全球购物
美国精油公司:Plant Therapy
2019/05/17 全球购物
工作失职检讨书范文
2014/01/16 职场文书
情人节寄语大全
2014/04/11 职场文书
2014年社区教育工作总结
2014/12/02 职场文书
2015大学生党员自我评价范文
2015/03/03 职场文书
小兵张嘎观后感
2015/06/03 职场文书
庆七一活动简报
2015/07/20 职场文书
2016校本研修培训心得体会
2016/01/08 职场文书
css让页脚保持在底部位置的四种方案
2022/07/23 HTML / CSS