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中list循环语句用法实例
Nov 10 Python
Python实现设置windows桌面壁纸代码分享
Mar 28 Python
python简单贪吃蛇开发
Jan 28 Python
python调试神器PySnooper的使用
Jul 03 Python
Python+OpenCV+图片旋转并用原底色填充新四角的例子
Dec 12 Python
python 比较2张图片的相似度的方法示例
Dec 18 Python
使用TensorFlow对图像进行随机旋转的实现示例
Jan 20 Python
解决json中ensure_ascii=False的问题
Apr 03 Python
keras的load_model实现加载含有参数的自定义模型
Jun 22 Python
python一些性能分析的技巧
Aug 30 Python
pytorch 实现变分自动编码器的操作
May 24 Python
python创建字典及相关管理操作
Apr 13 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
收音机指标测试方法及仪器
2021/03/01 无线电
PHP SPL标准库之数据结构栈(SplStack)介绍
2015/05/12 PHP
简介PHP的Yii框架中缓存的一些高级用法
2016/03/29 PHP
Yii2 rbac权限控制操作步骤实例教程
2016/04/29 PHP
PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
2016/11/14 PHP
JQuery中getJSON的使用方法
2010/12/13 Javascript
弹出层之1:JQuery.Boxy (一) 使用介绍
2011/10/06 Javascript
jQuery mobile 移动web(6)
2015/12/20 Javascript
Flow之一个新的Javascript静态类型检查器
2015/12/21 Javascript
jQuery实现放大镜效果实例代码
2016/03/17 Javascript
pc加载更多功能和移动端下拉刷新加载数据
2016/11/07 Javascript
JS实用的带停顿的逐行文本循环滚动效果实例
2016/11/23 Javascript
BootStrap整体框架之基础布局组件
2016/12/15 Javascript
ECMAScript6--解构
2017/03/30 Javascript
值得收藏的vuejs安装教程
2017/11/21 Javascript
JavaScript实现多叉树的递归遍历和非递归遍历算法操作示例
2018/02/08 Javascript
JavaScript实现的拼图算法分析
2019/02/13 Javascript
详解vue-cli+element-ui树形表格(多级表格折腾小计)
2019/04/17 Javascript
微信小程序防止多次点击跳转(函数节流)
2019/09/19 Javascript
vue props 单项数据流实例分享
2020/02/16 Javascript
vue实现购物车的监听
2020/04/20 Javascript
详解Vue的七种传值方式
2021/02/08 Vue.js
MySQL适配器PyMySQL详解
2017/09/20 Python
python实现电脑自动关机
2018/06/20 Python
Python日志模块logging基本用法分析
2018/08/23 Python
Python实现Restful API的例子
2019/08/31 Python
win10下opencv-python特定版本手动安装与pip自动安装教程
2020/03/05 Python
详解Css3新特性应用之过渡与动画
2017/01/10 HTML / CSS
介绍一下SQL Server里面的索引视图
2016/07/31 面试题
软件测试题目
2013/02/27 面试题
高一家长会邀请函
2014/01/12 职场文书
正风肃纪剖析材料
2014/09/30 职场文书
委托函范文
2015/01/29 职场文书
2015驻村干部工作总结
2015/04/07 职场文书
python实现股票历史数据可视化分析案例
2021/06/10 Python
python神经网络 使用Keras构建RNN训练
2022/05/04 Python