Python实现曲线拟合操作示例【基于numpy,scipy,matplotlib库】


Posted in Python onJuly 12, 2018

本文实例讲述了Python实现曲线拟合操作。分享给大家供大家参考,具体如下:

这两天学习了用python来拟合曲线。

一、环境配置

本人比较比较懒,所以下载的全部是exe文件来安装,安装按照顺利来安装。自动会找到python的安装路径,一直点下一步就行。还有其他的两种安装方式:一种是解压,一种是pip。我没有尝试,就不乱说八道了。

没有ArcGIS 环境的,可以不看下面这段话了。

在配置环境时遇见一个小波折,就是原先电脑装过ArcGIS10.2 ,所以其会默认安装python2.7,而且python是32位的。且其目录为C:\Python27\ArcGIS10.2,所以引用环境变量时,要注意。并且在其引用的工具包中本身包含numpy,matplotlib的包。还是很方便的。但是因为之前想用PyQT来做曲线拟合的界面,安装QT时总是失败,所以最后放弃使用这个。在安装新的python时注意要把路径写到上面这个路径前面,意思就是说在安装上面的包的时候会找默认python路径。我新安装python路径为C:\Python2,要不然就会找到ArcGIS那个python包路径下了。

1. 安装包

python2.7 (32位)https://www.python.org/downloads/
numpy-1.8.1-win32-superpack-python2.7
scipy-0.15.1-win32-superpack-python2.7
matplotlib-1.3.1.win32-py2.7

安装过程中遇见的问题

提示

numpy是Python的一种开源的数值计算扩展,数学计算很方便。
scipy是一款方便、易于使用、专为科学和工程设计的Python工具包.它包括统计,优化,整合,线性代数模块,傅里叶变换,信号和图像处理,常微分方程求解器等等.这次还没用到,看介绍很强大,是numpy的升级版。

matplotlib是Python的一种开源的扩展可以绘制各种各种的图表。

二、实例

曲线拟合的例子

import matplotlib.pyplot as plt
import math
import numpy as np
import random
import csv
plt.rcParams['font.sans-serif'] = ['SimHei']#设置显示中文
fig = plt.figure()
ax = fig.add_subplot(111)#将画布分割成1行1列,图像画在从左到右从上到下的第1块
#阶数为6阶
order=6
#生成曲线上的各个点
dataMat = np.loadtxt(open("c:\\yandu.csv","rb"),delimiter=",",skiprows=0)
size=dataMat.shape
num=size[0]
trandata=np.transpose(dataMat)#矩阵转置
xa=trandata[0]#得到天数数组(横坐标)
ya=trandata[1]#实测盐度值数组
#数据筛选,去除盐度值为零的,提高拟合精度
i=0
x=[]
y=[]
for yy in ya:
  if yy>0:
    xx=xa[i]
    i+=1
    x.append(xx)
    y.append(yy)
#绘制原始数据
ax.plot(x,y,label=u'原始数据',color='m',linestyle='',marker='.')
#计算多项式
c=np.polyfit(x,y,order)#拟合多项式的系数存储在数组c中
yy=np.polyval(c,x)#根据多项式求函数值
#进行曲线绘制
x_new=np.linspace(0, 365, 2000)
f_liner=np.polyval(c,x_new)
#ax.plot(x,y,color='m',linestyle='',marker='.')
ax.plot(x_new,f_liner,label=u'拟合多项式曲线',color='g',linestyle='-',marker='')
# labels标签设置
ax.set_xlim(0, 366)
ax.set_xlabel(u'天')
ax.set_ylabel(u'盐度')
ax.set_title(u'盐度的日变化', bbox={'facecolor':'0.8', 'pad':5})
ax.legend()
plt.show()

运行结果:

Python实现曲线拟合操作示例【基于numpy,scipy,matplotlib库】

Python 相关文章推荐
python条件和循环的使用方法
Nov 01 Python
Python如何判断数独是否合法
Sep 08 Python
解决django 新增加用户信息出现错误的问题
Jul 28 Python
python多任务之协程的使用详解
Aug 26 Python
解决Python3下map函数的显示问题
Dec 04 Python
python计算二维矩形IOU实例
Jan 18 Python
浅谈python元素如何去重,去重后如何保持原来元素的顺序不变
Feb 28 Python
python虚拟环境模块venv使用及示例
Mar 04 Python
解决echarts中饼图标签重叠的问题
May 16 Python
互斥锁解决 Python 中多线程共享全局变量的问题(推荐)
Sep 28 Python
python subprocess pipe 实时输出日志的操作
Dec 05 Python
python编写扎金花小程序的实例代码
Feb 23 Python
python跳过第一行快速读取文件内容的实例
Jul 12 #Python
python 读取文本文件的行数据,文件.splitlines()的方法
Jul 12 #Python
Python实现的简单读写csv文件操作示例
Jul 12 #Python
用Python分析3天破10亿的《我不是药神》到底神在哪?
Jul 12 #Python
python之文件读取一行一行的方法
Jul 12 #Python
python 读取文件并替换字段的实例
Jul 12 #Python
python logging重复记录日志问题的解决方法
Jul 12 #Python
You might like
PHP数据库开发知多少
2006/10/09 PHP
PHP实现定时生成HTML网站首页实例代码
2008/11/20 PHP
ThinkPHP表单自动验证实例
2014/10/13 PHP
phplot生成图片类用法详解
2015/01/06 PHP
[原创]解决wincache不支持64位PHP5.5/5.6的问题(提供64位wincache下载)
2016/06/22 PHP
Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法
2019/09/30 PHP
jquery创建div 实现代码
2009/04/27 Javascript
自定义右键属性覆盖浏览器默认右键行为实现代码
2013/02/02 Javascript
使用jquery写个更改表格行顺序的小功能
2014/04/29 Javascript
Node.js插件的正确编写方式
2014/08/03 Javascript
Jquery中$.post和$.ajax的用法小结
2015/04/28 Javascript
node.js中格式化数字增加千位符的几种方法
2015/07/03 Javascript
jQuery实现图片局部放大镜效果
2016/03/17 Javascript
原生js仿jquery实现对Ajax的封装
2016/10/04 Javascript
vue时间格式化实例代码
2017/06/13 Javascript
js实现会跳动的日历效果(完整实例)
2017/10/18 Javascript
Vue.js 2.0和Cordova开发webApp环境搭建方法
2018/02/26 Javascript
JavaScript常见鼠标事件与用法分析
2019/01/03 Javascript
微信小程序全局变量功能与用法详解
2019/01/22 Javascript
详解JavaScript 的执行机制
2020/09/18 Javascript
[52:52]完美世界DOTA2联赛PWL S3 LBZS vs access 第一场 12.10
2020/12/13 DOTA
Python中的if、else、elif语句用法简明讲解
2016/03/11 Python
python中字符串类型json操作的注意事项
2017/05/02 Python
Python将一个CSV文件里的数据追加到另一个CSV文件的方法
2018/07/04 Python
对python实现二维函数高次拟合的示例详解
2018/12/29 Python
python 列表推导式使用详解
2019/08/29 Python
Python使用QQ邮箱发送邮件报错smtplib.SMTPAuthenticationError
2019/12/20 Python
python剪切视频与合并视频的实现
2020/03/03 Python
Python实现简单的2048小游戏
2021/03/01 Python
意大利灯具购物网站:Lampade.it
2018/10/18 全球购物
工程造价自荐信
2013/10/09 职场文书
小学家长学校培训材料
2014/08/24 职场文书
委托收款证明
2015/06/23 职场文书
2019银行员工个人工作自我鉴定
2019/06/27 职场文书
SQL Server——索引+基于单表的数据插入与简单查询【1】
2021/04/05 SQL Server
vue+elementUI实现表格列的显示与隐藏
2022/04/13 Vue.js