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开发的单词频率统计工具wordsworth使用方法
Jun 25 Python
Python正则表达式使用经典实例
Jun 21 Python
快速排序的算法思想及Python版快速排序的实现示例
Jul 02 Python
Django中的Signal代码详解
Feb 05 Python
Python面向对象程序设计多继承和多态用法示例
Apr 08 Python
django-rest-framework解析请求参数过程详解
Jul 18 Python
Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析
Aug 15 Python
Python3安装pip工具的详细步骤
Oct 14 Python
pygame实现俄罗斯方块游戏(对战篇1)
Oct 29 Python
pytorch 图像预处理之减去均值,除以方差的实例
Jan 02 Python
python中68个内置函数的总结与介绍
Feb 24 Python
高考要来啦!用Python爬取历年高考数据并分析
Jun 03 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实现自动对图片进行滚动显示的方法
2015/03/12 PHP
php中get_magic_quotes_gpc()函数说明
2017/02/06 PHP
laravel 之 Eloquent 模型修改器和序列化示例
2019/10/17 PHP
PHP设计模式入门之状态模式原理与实现方法分析
2020/04/26 PHP
JavaScript 事件记录使用说明
2009/10/20 Javascript
JSON+HTML实现国家省市联动选择效果
2014/05/18 Javascript
javascript操作表格排序实例分析
2015/05/06 Javascript
JS数组操作(数组增加、删除、翻转、转字符串、取索引、截取(切片)slice、剪接splice、数组合并)
2016/05/20 Javascript
AngularJS基础 ng-options 指令详解
2016/08/02 Javascript
Mac下安装vue
2018/04/11 Javascript
原生JS实现$.param() 函数的方法
2018/08/10 Javascript
js限制输入框只能输入数字(onkeyup触发)
2018/09/28 Javascript
详解实现一个通用的“划词高亮”在线笔记功能
2019/04/23 Javascript
vue v-on:click传递动态参数的步骤
2020/09/11 Javascript
Python字符串拼接、截取及替换方法总结分析
2016/04/13 Python
python爬取w3shcool的JQuery课程并且保存到本地
2017/04/06 Python
python利用dir函数查看类中所有成员函数示例代码
2017/09/08 Python
使用python画个小猪佩奇的示例代码
2018/06/06 Python
python for循环输入一个矩阵的实例
2018/11/14 Python
Python3.6中Twisted模块安装的问题与解决
2019/04/15 Python
eclipse创建python项目步骤详解
2019/05/10 Python
Pandas0.25来了千万别错过这10大好用的新功能
2019/08/07 Python
将python文件打包exe独立运行程序方法详解
2020/02/12 Python
python实现提取COCO,VOC数据集中特定的类
2020/03/10 Python
python中使用np.delete()的实例方法
2021/02/01 Python
浅析border-radius如何兼容IE
2016/04/19 HTML / CSS
巴西电子产品购物网站:Saldão da Informática
2018/01/09 全球购物
荷兰在线啤酒店:Beerwulf
2019/08/26 全球购物
中国制造网:Made-in-China.com
2019/10/25 全球购物
Michael Kors英国官网:美国奢侈品品牌
2019/11/13 全球购物
酒店总经理助理岗位职责
2014/02/01 职场文书
2014旅游局领导班子四风问题对照检查材料思想汇报
2014/09/19 职场文书
2014副镇长民主生活会个人对照检查材料思想汇报
2014/09/30 职场文书
解决python3安装pandas出错的问题
2021/05/20 Python
Python使用Kubernetes API访问集群
2021/05/30 Python
Python中的变量与常量
2021/11/11 Python