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 相关文章推荐
pyramid配置session的方法教程
Nov 27 Python
python使用mysqldb连接数据库操作方法示例详解
Dec 03 Python
python实现zencart产品数据导入到magento(python导入数据)
Apr 03 Python
python完成FizzBuzzWhizz问题(拉勾网面试题)示例
May 05 Python
Python for Informatics 第11章之正则表达式(四)
Apr 21 Python
使用Python通过win32 COM实现Word文档的写入与保存方法
May 08 Python
python实现判断一个字符串是否是合法IP地址的示例
Jun 04 Python
python3将视频流保存为本地视频文件
Jun 20 Python
详解Python 字符串相似性的几种度量方法
Aug 29 Python
python 遗传算法求函数极值的实现代码
Feb 11 Python
python把一个字符串切开的实例方法
Sep 27 Python
OpenCV-Python 实现两张图片自动拼接成全景图
Jun 11 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
全国FM电台频率大全 - 26 西藏自治区
2020/03/11 无线电
PHP中几个常用的魔术常量
2012/02/23 PHP
laravel 5.1下php artisan migrate的使用注意事项总结
2017/06/07 PHP
PHP实现的获取文件mimes类型工具类示例
2018/04/08 PHP
Javascript 设计模式(二) 闭包
2010/05/26 Javascript
JQuery.ajax传递中文参数的解决方法 推荐
2011/03/28 Javascript
提示$ is not defined错误分析及解决
2013/04/09 Javascript
javascript判断移动端访问设备并解析对应CSS的方法
2015/02/05 Javascript
JS根据生日月份和日期计算星座的简单实现方法
2016/11/24 Javascript
bootstrap警告框使用方法解析
2017/01/13 Javascript
微信小程序图片自适应支持多图实例详解
2017/06/21 Javascript
JavaScript实现简单动态进度条效果
2018/04/06 Javascript
[01:32]DOTA2上海特锦赛现场采访:最想COS的英雄
2016/03/25 DOTA
[01:36]DOTA2完美大师赛趣味视频之与队友相处的十万个技巧
2017/11/19 DOTA
Python中实现的RC4算法
2015/02/14 Python
Python通过PIL获取图片主要颜色并和颜色库进行对比的方法
2015/03/19 Python
Python实现扫描局域网活动ip(扫描在线电脑)
2015/04/28 Python
python 类详解及简单实例
2017/03/24 Python
python 实现方阵的对角线遍历示例
2019/11/29 Python
Python绘制三角函数图(sin\cos\tan)并标注特定范围的例子
2019/12/04 Python
python爬虫模拟浏览器访问-User-Agent过程解析
2019/12/28 Python
Python数据结构dict常用操作代码实例
2020/03/12 Python
导致python中import错误的原因是什么
2020/07/01 Python
解决Django响应JsonResponse返回json格式数据报错问题
2020/08/09 Python
css实例教程 一款纯css3实现的超炫动画背画特效
2014/11/05 HTML / CSS
深入理解css中vertical-align属性
2017/04/18 HTML / CSS
家得宝加拿大家装网上商店:The Home Depot加拿大
2016/08/27 全球购物
Dyson加拿大官方网站:购买戴森吸尘器,风扇,冷热器及配件
2016/10/26 全球购物
锐步英国官网:Reebok英国
2019/11/29 全球购物
25岁生日感言
2014/01/13 职场文书
高三语文教学反思
2014/01/15 职场文书
标准大学生职业生涯规划书写作指南
2014/09/18 职场文书
2014幼儿园家长工作总结
2014/11/10 职场文书
接待员岗位职责
2015/02/13 职场文书
正规欠条模板
2015/07/03 职场文书
十大必看国产动漫排名,魁拔上线,第二曾在日本播出
2022/03/18 国漫