Scipy 生成全为零的数组的样条曲线

Scipy Spline producing an array full of zeros

我正在尝试使用 Scipy 模块中的样条曲线平滑曲线。我在 64 位 Windows 10 机器上使用 Python 2.7。我很确定我的代码编写正确,但我的 y 轴得到一个充满零的 numpy 数组。这是代码:

 #Smooth Chart Curves
def interp(self, x, y):          
    xx = np.array(x)
    yy = np.array(y)     
    xnew = np.linspace(xx.min(), xx.max(), 300)
    ynew = spline(xx, yy, xnew)
    xnew = np.array(xnew).tolist()
    ynew = np.array(ynew).tolist()  
    return xnew, ynew 

我首先将一个包含六个数字的列表传递给 x 和 y 变量。 xnew 变量工作正常,但 ynew = spline(xx, yy, xnew) 创建了一个 numpy 数组,其中填充了 300 个零。

我将以下内容作为 x 和 y 传递:

x = [2800.0, 2002.0, 1234.0, 800.0, 450.0, 0]
y = [5.0, 9.1, 15.3, 20.9, 25.4, 27.2]

您的 x 轴需要单调递增才能使插值工作。也许这是一个打字错误,但 y 在我看来更像 x 轴。

如果真的不是:

xx = np.array(x)
sx = np.argsort(xx)
xx = xx[sx]
yy = np.array(y)
yy = yy[sx]

将对 xy 进行排序,以便 x 按升序排序。