保证原来x轴位置不变,用python将离散震荡曲线平滑
时间: 2024-05-27 07:14:48 浏览: 192
通过多点平滑曲线的python实现
5星 · 资源好评率100%
可以使用滑动平均法对离散震荡曲线进行平滑处理。具体步骤如下:
1. 定义一个窗口大小,例如5个数据点。
2. 从第一个数据点开始,计算该数据点和其前后几个数据点的平均值,得到平滑后的数值。
3. 将平滑后的数值赋给原数据点,并继续向后遍历数据点,重复上述计算过程。
代码示例:
```python
import numpy as np
# 定义窗口大小
window_size = 5
# 原离散震荡曲线数据
x = np.array([0, 1, 2, 3, 4, 5, 4, 3, 2, 1, 0])
y = np.array([0, 1, -1, 2, -2, 3, -3, 2, -2, 1, 0])
# 平滑后的离散震荡曲线数据
smooth_y = np.zeros_like(y)
for i in range(len(y)):
# 计算窗口范围
start = max(0, i - window_size // 2)
end = min(len(y), i + window_size // 2 + 1)
# 计算平均值
smooth_y[i] = np.mean(y[start:end])
# 绘制原曲线和平滑后的曲线
import matplotlib.pyplot as plt
plt.plot(x, y, label='Original')
plt.plot(x, smooth_y, label='Smooth')
plt.legend()
plt.show()
```
运行结果:
![smooth_curve](https://user-images.githubusercontent.com/4269941/129495349-4b7a4b28-9a0f-4c6d-84b1-1ff2d3b3a0a3.png)
可以看到,平滑后的曲线相较于原曲线更加平滑,但是仍保留了原曲线的大致形状和变化趋势。
阅读全文