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错误处理详解
Sep 28 Python
python实现简单ftp客户端的方法
Jun 28 Python
Python中struct模块对字节流/二进制流的操作教程
Jan 21 Python
基于Python3 逗号代码 和 字符图网格(详谈)
Jun 22 Python
pyqt5简介及安装方法介绍
Jan 31 Python
Python多线程扫描端口代码示例
Feb 09 Python
Python利用公共键如何对字典列表进行排序详解
May 19 Python
Python使用tkinter库实现文本显示用户输入功能示例
May 30 Python
Python自动发送邮件的方法实例总结
Dec 08 Python
python实现一组典型数据格式转换
Dec 15 Python
使用Rasterio读取栅格数据的实例讲解
Nov 26 Python
Python使用openpyxl复制整张sheet
Mar 24 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数组函数序列之array_unshift() 在数组开头插入一个或多个元素
2011/11/07 PHP
CI框架安全类Security.php源码分析
2014/11/04 PHP
PHP输出一个等腰三角形的方法
2015/05/12 PHP
Laravel使用memcached缓存对文章增删改查进行优化的方法
2016/10/08 PHP
laravel 修改.htaccess文件 重定向public的解决方法
2019/10/12 PHP
JS来动态的修改url实现对url的增删查改
2014/09/05 Javascript
jquery获取当前元素索引值用法实例
2015/06/10 Javascript
提升jQuery的性能需要做好七件事
2016/01/11 Javascript
关于jQuery库冲突的完美解决办法
2017/05/20 jQuery
详解JS函数stack size计算方法
2018/06/18 Javascript
js中的数组对象排序分析
2018/12/11 Javascript
浅谈Vuex注入Vue生命周期的过程
2019/05/20 Javascript
使用vue自定义指令开发表单验证插件validate.js
2019/05/23 Javascript
解决Vue调用springboot接口403跨域问题
2019/09/02 Javascript
vue input标签通用指令校验的实现
2019/11/05 Javascript
JavaScript计算正方形面积
2019/11/26 Javascript
JS页面动态绘图工具SVG,Canvas,VML介简介
2020/10/16 Javascript
[15:15]教你分分钟做大人:狙击手
2014/10/30 DOTA
[44:41]Fnatic vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[51:15]完美世界DOTA2联赛PWL S2 PXG vs Magma 第一场 11.21
2020/11/24 DOTA
在Python的Django框架中生成CSV文件的方法
2015/07/22 Python
Python实现数据库并行读取和写入实例
2017/06/09 Python
Python3实现发送QQ邮件功能(文本)
2017/12/15 Python
django的csrf实现过程详解
2019/07/26 Python
Tensorflow实现在训练好的模型上进行测试
2020/01/20 Python
使用Python开发个京东上抢口罩的小实例(仅作技术研究学习使用)
2020/03/10 Python
Python利用for循环打印星号三角形的案例
2020/04/12 Python
一文解决django 2.2与mysql兼容性问题
2020/07/15 Python
基于python实现复制文件并重命名
2020/09/16 Python
HTML5移动开发图片压缩上传功能
2016/11/09 HTML / CSS
教师绩效考核方案
2014/01/21 职场文书
学校领导班子群众路线整改措施
2014/09/16 职场文书
营销与策划实训报告
2014/11/05 职场文书
房地产项目合作意向书
2015/05/08 职场文书
2015年扫黄打非工作总结
2015/05/13 职场文书
CocosCreator ScrollView优化系列之分帧加载
2021/04/14 Python