'''
Scipy是一个用于数学、科学、工程领域的常用软件包,可以处理插值、积分、优化、图像处理、常微分方程数值解的求解、信号处理等问题。它用于有效计算Numpy矩阵,使Numpy和Scipy协同工作,高效解决问题。scipy.optimize中有curve_fit方法可以拟合自定义的曲线,如指数函数拟合,幂指函数拟合和多项式拟合,下面导入相应的包进行拟合的一个小例子:
'''from scipy.optimize import curve_fit
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd#自定义需要拟合的函数
# =============================================================================
# 指数函数拟合
# =============================================================================
def func(x, a, b ):return a*np.exp(-b * x)+1/150# =============================================================================
# 幂指数函数拟合
# =============================================================================
def func2(x, a, b ):return x**a +b# =============================================================================
# 多项式函数拟合
# =============================================================================
def func3(x, a, b, c ):return a*x**2+ b*x +c #进行拟合并画出相应曲线
if __name__=='__main__':xdata=[2012,2013,2014,2015,2016,2017,2018,2019,2020]ydata =[0.9612,1.241,2.082,2.78,3.498,4.466,5.626,7.742,7.478]#画出真实数据plt.plot(xdata,ydata,'b-')#指数函数拟合popt, pcov = curve_fit(func, xdata, ydata)#popt数组中,三个值分别是待求参数a,b,c#预测值y_pred = [func(i, popt[0],popt[1]) for i in xdata]#画图plt.plot(xdata,y_pred,'r--')print(popt)#输出R方from sklearn.metrics import r2_scorer2 = r2_score(ydata , y_pred )print('指数函数拟合R方为:',r2)#幂指数函数拟合popt, pcov = curve_fit(func2, xdata, ydata)#popt数组中,三个值分别是待求参数a,b,cy_pred2 = [func2(i, popt[0],popt[1]) for i in xdata]#画图plt.plot(xdata,y_pred2,'g--')print(popt)#输出R方from sklearn.metrics import r2_scorer2 = r2_score(ydata , y_pred2 )print('幂指数函数拟合:',r2)#多项式拟合popt, pcov = curve_fit(func3, xdata, ydata)#popt数组中,三个值分别是待求参数a,b,cy_pred3 = [func3(i, popt[0],popt[1],popt[2]) for i in xdata]#画图plt.plot(xdata,y_pred3,'y-')print(popt)#输出R方from sklearn.metrics import r2_scorer2 = r2_score(ydata , y_pred3 )print('多项式拟合R方为:',r2)#添加图例plt.legend(['原始数据','指数函数拟合','幂指数函数拟合','多项式拟合']) plt.show()

结果:

进阶的阿牛哥之给数据添加趋势线相关推荐

  1. 将数据追加到html 表格中,将数据添加到数据表中

    将数据添加到数据表中 03/30/2017 本文内容 在创建 DataTable 并使用列和约束定义其结构之后,您可以将新的数据行添加到表中. 要添加新行,可将一个新变量声明为 DataRow 类型. ...

  2. 添加数据功能java,SpringBoot+Vue实现数据添加功能

    一.添加代码生成器 用来自动为数据库映射类建立:mapper.service.controller package com.hanmh.utils; import com.baomidou.mybat ...

  3. R语言使用geompointdensity包的geom_pointdensity函数将散点图和密度图结合起来、使用viridis包的scale_color_virdis函数为密度数据添加调色板色彩渐变

    R语言使用geompointdensity包的geom_pointdensity函数将散点图和密度图结合起来.使用viridis包的scale_color_virdis函数为密度数据添加调色板色彩渐变 ...

  4. R语言使用gt包和gtExtras包优雅地、漂亮地显示表格数据:使用gt包可视化表格数据,使其易于阅读和理解、使用gtExtras包添加一个图,显示表中某一列中的数字、并为类型数据添加图像符号标签

    R语言使用gt包和gtExtras包优雅地.漂亮地显示表格数据:使用gt包可视化表格数据,使其易于阅读和理解.使用gtExtras包添加一个图,显示表中某一列中的数字.并为类型数据添加图像符号标签 目 ...

  5. R语言将多个dataframe数据添加在列表(list)结构中并进行列表dataframe的索引:包含dataframe的列表、包含dataframe的列表的索引

    R语言将多个dataframe数据添加在列表(list)结构中并进行列表dataframe的索引:包含dataframe的列表.包含dataframe的列表的索引 目录

  6. R语言jitter函数为数据添加噪声(noise)扰动信息实战

    R语言jitter函数为数据添加噪声(noise)扰动信息实战 目录 R语言jitter函数为数据添加噪声(noise)扰动信息实战 #基本语法

  7. 图表添加特定横轴数据_Excel图表学习61: 编写一个给多个数据系列添加趋势线的加载宏...

    学习Excel技术,关注微信公众号: excelperfect 在<Excel图表学习60:给多个数据系列添加趋势线>中,我们手工给多个散点图系列添加了一条趋势线,如下图1所示. 图1 在 ...

  8. Python之Pandas:利用pandas实现行数据添加,即将字典格式的数据,按照行数据,从头开始循环添加到dataframe中

    Python之Pandas:利用pandas实现行数据添加,即将字典格式的数据,按照行数据,从头开始循环添加到dataframe中e中 目录 利用pandas实现行数据添加,即将字典格式的数据,按照行 ...

  9. js进阶 9-11 select选项框如何动态添加和删除元素

    js进阶 9-11 select选项框如何动态添加和删除元素 一.总结 一句话总结: 二.js进阶 9-11 select选项框如何动态添加和删除元素 1.案例说明 2.相关知识 Select 下拉列 ...

最新文章

  1. [转载]《博客园精华集》Winform筛选结果(共105篇)
  2. Spring Boot spring mvc 拦截器
  3. 文字转wav_这6款超良心语音转文字工具,真让人省心!
  4. socket 收不到netty客户端消息_Netty开发 —— 首个demo学习
  5. rest_framework中的url注册器,分页器,响应器
  6. vue/return-in-computed-property Enforce that a return statement is present in computed property
  7. 别再学习框架了,看看这些让你起飞的计算机基础知识
  8. 数量查看_正则表达式学习之分割字符及数量词练习
  9. gis python趋势变化代码_GIS技术发展趋势——2018年回顾与2019年展望
  10. 完善计算机 实践性教学,计算机基础实践性教学分析论文.doc
  11. java开发面试自我介绍模板_java应聘面试自我介绍范文
  12. 02【托业口语】 - PART2 Describe a picture
  13. 计算机word怎么写,电脑word怎么用?
  14. Android图片拼接9宫格
  15. 机械转行java自学经历,零基础学java,血泪总结的干货
  16. cf登录服务器未响应,大神详解win7系统玩cf未响应的图文方法
  17. 去北美读PHD前给你泼的“冷水”,有志于去北美深造的人读一读
  18. ubuntu安装水星MW150US无线网卡8188eu驱动
  19. 一阶RC滤波器的算法实现(低通和高通)
  20. 我奋斗了18年,不是为了和你一起喝咖啡(转)

热门文章

  1. 微信小程序App Page 模块化
  2. Redmibook pro 15 锐龙版 2021评测2022款各家本子推荐
  3. 最新微信知识付费小程序源码吾爱纯净版+带教程
  4. 开源地理信息系统软件
  5. 期货python入门书籍_期货基础书籍有哪些?
  6. 网站常用邮箱找回密码流程插件页面
  7. unity——Survival Shooter:环境角色
  8. 公摊面积取消闹乌龙,历史学家李学勤逝世,微软员工抗议国防大单,前摩拜CEO后花68万上学,这就是今天的大新闻。...
  9. php ajax传悚惧,科学网—对“钱学森之问”的一种解答 - 科学报官微的博文
  10. 雷建平:我亲历的中概股上市潮