python等高线图平滑_用Matplotlib平滑等高线图中的数据

本文介绍了如何使用Python的Matplotlib和Scipy库平滑二维等高线图中的数据。通过移动平均算法,特别是卷积方法,我们可以选择不同大小的窗口进行加权平均,以减少数据的噪声。示例代码生成有噪声的数据,然后应用不同尺寸的窗口进行平滑处理,并展示了平滑效果。
摘要由CSDN通过智能技术生成

平滑数据的一个简单方法是使用moving average算法。移动平均的一种简单形式是计算某一位置相邻测量值的平均值。例如,在一维测量序列a[1:N]中,a[N]处的移动平均值可以计算为a[N]=(a[N-1]+a[N]+a[N+1])/3。如果你检查了所有的测量,你就完成了。在这个简单的例子中,我们的平均窗口的大小是3。也可以使用不同大小的窗口,具体取决于所需的平滑程度。

为了在更广泛的应用程序中使计算更简单、更快,还可以使用基于convolution的算法。使用卷积的优点是,只需更改窗口,就可以选择不同类型的平均值,如加权平均值。

让我们做一些代码来说明。以下摘录需要安装Numpy、Matplotlib和Scipy。Click here用于完整运行的示例代码from __future__ import division

import numpy

import pylab

from scipy.signal import convolve2d

def moving_average_2d(data, window):

"""Moving average on two-dimensional data.

"""

# Makes sure that the window function is normalized.

window /= window.sum()

# Makes sure data array is a numpy array or masked array.

if type(data).__name__ not in ['ndarray', 'MaskedArray']:

data = numpy.asa

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值