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最基本的数据类型以及对元组的介绍
Apr 14 Python
pymssql数据库操作MSSQL2005实例分析
May 25 Python
Python实现读取并保存文件的类
May 11 Python
Python元字符的用法实例解析
Jan 17 Python
python统计多维数组的行数和列数实例
Jun 23 Python
利用Python如何生成便签图片详解
Jul 09 Python
Python零基础入门学习之输入与输出
Apr 03 Python
详解pandas的外部数据导入与常用方法
May 01 Python
python如何将多个PDF进行合并
Aug 13 Python
python3 selenium自动化测试 强大的CSS定位方法
Aug 23 Python
python3 requests库实现多图片爬取教程
Dec 18 Python
python数据处理之Pandas类型转换
Apr 28 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用正则表达式匹配中文实例详解
2013/11/06 PHP
php分页示例分享
2014/04/30 PHP
Yii输入正确验证码却验证失败的解决方法
2017/06/06 PHP
php回调函数处理数组操作示例
2020/04/13 PHP
javascript对数组的常用操作代码 数组方法总汇
2011/01/27 Javascript
jquery实现的随机多彩tag标签随机颜色和字号大小效果
2014/03/27 Javascript
jQuery寻找n以内完全数的方法
2015/06/24 Javascript
jQuery实现返回顶部功能
2016/02/23 Javascript
Bootstrap开关(switch)控件学习笔记分享
2016/05/30 Javascript
jQuery 判断是否包含在数组中Array[]的方法
2016/08/03 Javascript
canvas时钟效果
2017/02/16 Javascript
Vue.2.0.5过渡效果使用技巧
2017/03/16 Javascript
H5图片压缩与上传实例
2017/04/21 Javascript
BootStrap表单控件之复选框checkbox和单选择按钮radio
2017/05/23 Javascript
AugularJS从入门到实践(必看篇)
2017/07/10 Javascript
详解Vue源码中一些util函数
2019/04/24 Javascript
js中关于Blob对象的介绍与使用
2019/11/29 Javascript
Vue 嵌套路由使用总结(推荐)
2020/01/13 Javascript
微信小程序调用后台service教程详解
2020/11/06 Javascript
Python查找相似单词的方法
2015/03/05 Python
使用Python实现下载网易云音乐的高清MV
2015/03/16 Python
深入浅出学习python装饰器
2017/09/29 Python
Python2实现的图片文本识别功能详解
2018/07/11 Python
python 多线程共享全局变量的优劣
2020/09/24 Python
微软瑞士官方网站:Microsoft瑞士
2018/04/20 全球购物
汉森批发:Hansen Wholesale
2018/05/24 全球购物
机械设计及其自动化专业推荐信
2013/10/31 职场文书
大学毕业生文采飞扬的自我鉴定
2013/12/03 职场文书
护士在校生自荐信
2014/02/01 职场文书
军训鉴定表自我鉴定
2014/02/13 职场文书
暑期社会实践感言
2014/02/25 职场文书
2014年园林绿化工作总结
2014/12/11 职场文书
初一军训感言
2015/08/01 职场文书
解决numpy数组互换两行及赋值的问题
2021/04/17 Python
《勇者辞职不干了》上卷BD发售宣传CM公开
2022/04/08 日漫
详解CSS3浏览器兼容
2022/12/24 HTML / CSS