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中实现三目运算的方法
Jun 21 Python
使用C++扩展Python的功能详解
Jan 12 Python
python 读取txt,json和hdf5文件的实例
Jun 05 Python
python range()函数取反序遍历sequence的方法
Jun 25 Python
python读取excel指定列数据并写入到新的excel方法
Jul 10 Python
django之跨表查询及添加记录的示例代码
Oct 16 Python
python中update的基本使用方法详解
Jul 17 Python
linux环境下安装python虚拟环境及注意事项
Jan 07 Python
Python 通过监听端口实现唯一脚本运行方式
May 05 Python
django序列化时使用外键的真实值操作
Jul 15 Python
Python读取多列数据以及用matplotlib制作图表方法实例
Sep 23 Python
通过python-pptx模块操作ppt文件的方法
Dec 26 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
《Re:从零开始的异世界生活 冰结之绊》
2020/04/09 日漫
PHP分页显示制作详细讲解
2006/10/09 PHP
构建简单的Webmail系统
2006/10/09 PHP
php使用curl和正则表达式抓取网页数据示例
2014/04/13 PHP
php代码审计比较有意思的例子
2014/05/07 PHP
PHP定时更新程序设计思路分享
2014/06/10 PHP
php使用pack处理二进制文件的方法
2014/07/03 PHP
php最简单的删除目录与文件实现方法
2014/11/28 PHP
PHP implode()函数用法讲解
2019/03/08 PHP
js查找父节点的简单方法
2008/06/28 Javascript
img标签中onerror用法
2009/08/13 Javascript
script标签的 charset 属性使用说明
2010/12/04 Javascript
JavaScript中清空数组的三种方法分享
2011/04/07 Javascript
5秒后跳转效果(setInterval/SetTimeOut)
2013/05/03 Javascript
javascript 实现字符串反转的三种方法
2013/11/23 Javascript
juery框架写的弹窗效果适合新手
2013/11/27 Javascript
Node.js node-schedule定时任务隔多少分钟执行一次的方法
2015/02/10 Javascript
JavaScript获取伪元素(Pseudo-Element)属性的方法技巧
2015/03/13 Javascript
javascript实现的上下无缝滚动效果
2016/09/19 Javascript
nodejs multer实现文件上传与下载
2017/05/10 NodeJs
详解vue中async-await的使用误区
2018/12/05 Javascript
微信小程序收货地址API兼容低版本解决方法
2019/05/18 Javascript
JavaScript实现左右滚动电影画布
2020/02/06 Javascript
Python的Flask框架中web表单的教程
2015/04/20 Python
python调用摄像头显示图像的实例
2018/08/03 Python
Python小进度条显示代码
2019/03/05 Python
python里 super类的工作原理详解
2019/06/19 Python
Python搭建代理IP池实现存储IP的方法
2019/10/27 Python
运行tensorflow python程序,限制对GPU和CPU的占用操作
2020/02/06 Python
python如何写出表白程序
2020/06/01 Python
.net工程师笔试题
2012/06/09 面试题
学校个人对照检查材料
2014/08/26 职场文书
文秘班元旦晚会活动策划方案
2014/08/28 职场文书
2015年党风廉政建设责任书
2015/01/29 职场文书
《堡垒之夜》联动《刺客信条》 4月7日正式上线
2022/04/06 其他游戏
SQLServer常见数学函数梳理总结
2022/08/05 MySQL