python使用插值法画出平滑曲线


Posted in Python onDecember 15, 2018

本文实例为大家分享了python使用插值法画出平滑曲线的具体代码,供大家参考,具体内容如下

实现所需的库

numpy、scipy、matplotlib

实现所需的方法

插值

  • nearest:最邻近插值法
  • zero:阶梯插值
  • slinear:线性插值
  • quadratic、cubic:2、3阶B样条曲线插值

拟合和插值的区别

简单来说,插值就是根据原有数据进行填充,最后生成的曲线一定过原有点。

拟合是通过原有数据,调整曲线系数,使得曲线与已知点集的差别(最小二乘)最小,最后生成的曲线不一定经过原有点。

代码实现

# -*- coding: utf-8 -*-

# 调用模块
# 调用数组模块
import numpy as np
# 实现插值的模块
from scipy import interpolate
# 画图的模块
import matplotlib.pyplot as plt
# 生成随机数的模块
import random

# random.randint(0, 10) 生成0-10范围内的一个整型数
# y是一个数组里面有10个随机数,表示y轴的值
y = np.array([random.randint(0, 10) for _ in range(10)])
# x是一个数组,表示x轴的值
x = np.array([num for num in range(10)])

# 插值法之后的x轴值,表示从0到9间距为0.5的18个数
xnew = np.arange(0, 9, 0.5)

"""
kind方法:
nearest、zero、slinear、quadratic、cubic
实现函数func
"""
func = interpolate.interp1d(x, y, kind='cubic')
# 利用xnew和func函数生成ynew,xnew的数量等于ynew数量
ynew = func(xnew)

# 画图部分
# 原图
plt.plot(x, y, 'ro-')
# 拟合之后的平滑曲线图
plt.plot(xnew, ynew)
plt.show()

注意事项/p>

  • x, y为原来的数据(少量)
  • xnew为一个数组,条件:x⊆⊆xnew
  •       如:x的最小值为-2.931,最大值为10.312;则xnew的左边界要小于-2.931,右边界要大于10.312。当然也最好注意一下间距,最好小于x中的精度
  • func为函数,里面的参数x、y、kind,x,y就是原数据的x,y,kind为需要指定的方法
  • ynew需要通过xnew数组和func函数来生成
  • 理论上xnew数组内的值越多,生成的曲线越平滑

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python Grid使用和布局详解
Jun 30 Python
Python实现判断一个整数是否为回文数算法示例
Mar 02 Python
Python进阶之@property动态属性的实现
Apr 01 Python
Django框架封装外部函数示例
May 28 Python
python写一个随机点名软件的实例
Nov 28 Python
python设置环境变量的作用整理
Feb 17 Python
python高阶函数map()和reduce()实例解析
Mar 16 Python
python模拟哔哩哔哩滑块登入验证的实现
Apr 24 Python
解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题
May 20 Python
浅谈keras 模型用于预测时的注意事项
Jun 27 Python
详解Python flask的前后端交互
Mar 31 Python
如何用六步教会你使用python爬虫爬取数据
Apr 06 Python
python用fsolve、leastsq对非线性方程组求解
Dec 15 #Python
python实现一组典型数据格式转换
Dec 15 #Python
python判断计算机是否有网络连接的实例
Dec 15 #Python
Django model反向关联名称的方法
Dec 15 #Python
django orm 通过related_name反向查询的方法
Dec 15 #Python
关于Django ForeignKey 反向查询中filter和_set的效率对比详解
Dec 15 #Python
django 外键model的互相读取方法
Dec 15 #Python
You might like
PHP初学者常见问题集合 修正版(21问答)
2010/03/23 PHP
smarty中先strip_tags过滤html标签后truncate截取文章运用
2010/10/25 PHP
php简单操作mysql数据库的类
2015/04/16 PHP
PHP学习笔记(三):数据类型转换与常量介绍
2015/04/17 PHP
PHP中preg_match函数正则匹配的字符串长度问题
2015/05/27 PHP
PHP登录验证功能示例【用户名、密码、验证码、数据库、已登陆验证、自动登录和注销登录等】
2019/02/25 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
2019/04/11 PHP
详解new function(){}和function(){}() 区别分析
2008/03/22 Javascript
javascript URL锚点取值方法
2009/02/25 Javascript
JQuery1.4+ Ajax IE8 内存泄漏问题
2010/10/15 Javascript
瀑布流布局并自动加载实现代码
2013/03/12 Javascript
调用HttpHanlder的几种返回方式小结
2013/12/20 Javascript
ECMAScript 6即将带给我们新的数组操作方法前瞻
2015/01/06 Javascript
html的DOM中document对象images集合用法实例
2015/01/21 Javascript
jQuery实现可兼容IE6的遮罩功能详解
2017/09/19 jQuery
angularjs select 赋值 ng-options配置方法
2018/02/28 Javascript
JS验证输入的是否是数字及保留几位小数问题
2018/05/09 Javascript
详细解读Python中解析XML数据的方法
2015/10/15 Python
python正则中最短匹配实现代码
2018/01/16 Python
Python pyinotify日志监控系统处理日志的方法
2018/03/08 Python
django富文本编辑器的实现示例
2019/04/10 Python
python issubclass 和 isinstance函数
2019/07/25 Python
python做接口测试的必要性
2019/11/20 Python
django xadmin 管理器常用显示设置方式
2020/03/11 Python
python入门:argparse浅析 nargs='+'作用
2020/07/12 Python
浅析Python 多行匹配模式
2020/07/24 Python
Python私有属性私有方法应用实例解析
2020/09/15 Python
绝对经典成功的大学生推荐信
2013/11/08 职场文书
英文商务邀请信
2014/01/22 职场文书
学雷锋活动总结范文
2014/04/25 职场文书
护士演讲稿优秀范文
2014/04/30 职场文书
机械系毕业生求职信
2014/05/28 职场文书
退学证明范本3篇
2014/10/29 职场文书
大学军训通讯稿(2016最新版)
2015/12/21 职场文书
2019年暑期法院实习报告
2019/12/18 职场文书
Python time库的时间时钟处理
2021/05/02 Python