时间:2020-12-14 15:03:31 | 栏目:Python代码 | 点击:次
本文实例为大家分享了python使用插值法画出平滑曲线的具体代码,供大家参考,具体内容如下
实现所需的库
numpy、scipy、matplotlib
实现所需的方法
插值
拟合和插值的区别
简单来说,插值就是根据原有数据进行填充,最后生成的曲线一定过原有点。
拟合是通过原有数据,调整曲线系数,使得曲线与已知点集的差别(最小二乘)最小,最后生成的曲线不一定经过原有点。
代码实现
# -*- 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>