用python平滑 一段曲线,保证宽度不变
时间: 2024-02-28 13:22:55 浏览: 180
可以使用滑动平均法对曲线进行平滑处理,该方法将每个数据点替换为其前后一定数量的数据点的平均值,从而减少噪声的影响。
以下是一个示例代码,使用滑动平均法对一组曲线数据进行平滑处理:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成测试数据
x = np.linspace(0, 10, 1000)
y = np.sin(x) + np.random.randn(1000) * 0.1
# 定义平滑窗口大小
window_size = 10
# 使用滑动平均法平滑曲线
smoothed_y = np.convolve(y, np.ones(window_size)/window_size, mode='same')
# 绘制原始曲线和平滑后的曲线
plt.plot(x, y, label='Original')
plt.plot(x, smoothed_y, label='Smoothed')
plt.legend()
plt.show()
```
在上述代码中,我们使用`np.convolve()`函数对原始曲线`y`进行平滑处理。该函数的第一个参数是待处理的曲线数据,第二个参数是平滑窗口,这里我们使用一个全1的数组,并将其除以窗口大小以求得平均值。第三个参数`mode='same'`表示输出与输入相同的大小,即保持宽度不变。最后,我们使用`plt.plot()`函数将原始曲线和平滑后的曲线绘制在同一张图中,以便比较它们的差异。
阅读全文