【发布时间】:2019-10-07 05:57:00
【问题描述】:
我试图了解插值的工作原理以及在我的曲线中插值时会导致锯齿形的原因。我是否正确假设插值按输入顺序考虑点,或者我认为可能存在更复杂的情况?
我的散点曲线输出
from scipy import interpolate
yao = np.asarray(yo[0::10])
xao = np.asarray(xo[0::10])
#plt.plot(xao, yao)
print(len(xao))
okayo = np.where(np.abs(np.diff(xao)) + np.abs(np.diff(yao)) > 0)
xpo = np.r_[xao[okayo], xao[-1]]
print(len(xpo))
ypo = np.r_[yao[okayo], yao[-1]]
tcko, uo = interpolate.splprep([xpo, ypo], s=3, k=1, per=False)
xo, yo = interpolate.splev(np.linspace(0, 1, 100), tcko)
fig = plt.figure()
ax = plt.subplot(111)
ax.plot(xao, yao, '.', markersize=2)
ax.plot(xo, yo, alpha=0.5)
与我以已知顺序输入较少点时相反
我以为我理解的是插值,但这种曲折的曲折让我很困惑。任何有助于理解的帮助都会很棒,谢谢。
【问题讨论】:
-
按角度对数据进行排序,中心位于“质心”
标签: python scipy interpolation curve-fitting