gpt4 book ai didi

python - 如何平滑Python中的数据?

转载 作者:行者123 更新时间:2023-11-28 20:42:32 26 4
gpt4 key购买 nike

我正在尝试使用 SciPy 的一维曲线 B 样条表示来平滑如下所示的散点图。有资料here .

enter image description here

我使用的代码是:

import matplotlib.pyplot as plt
import numpy as np
from scipy import interpolate

data = np.genfromtxt("spline_data.dat", delimiter = '\t')
x = 1000 / data[:, 0]
y = data[:, 1]
x_int = np.linspace(x[0], x[-1], 100)
tck = interpolate.splrep(x, y, k = 3, s = 1)
y_int = interpolate.splev(x_int, tck, der = 0)

fig = plt.figure(figsize = (5.15,5.15))
plt.subplot(111)
plt.plot(x, y, marker = 'o', linestyle='')
plt.plot(x_int, y_int, linestyle = '-', linewidth = 0.75, color='k')
plt.xlabel("X")
plt.ylabel("Y")
plt.show()

我尝试更改样条的顺序和平滑条件,但我没有得到平滑的图。

B 样条插值应该可以平滑数据,但有什么问题吗?有没有其他方法可以平滑此数据?

最佳答案

使用较大的平滑参数。例如,s=1000:

tck = interpolate.splrep(x, y, k=3, s=1000)

这会产生:

interpolation

关于python - 如何平滑Python中的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30443883/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com