如何克服中的y数组长度错误scipy.interpolate.interp1d()?

2024-09-30 10:34:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我根据this的例子,编写了一个函数来平滑matplotlib行,但是当我试图插值y数据时,我得到了一个错误“ValueError:x和y数组在插值轴上的长度必须相等。”我假设它希望我有一个空值数组,它的长度numpy.linspacex数据和y数据的分布没错,但我不知道怎么做。我甚至不知道这是否正确。在

def spline_it(key):
        y = [i[1] for i in datapoints[key]]
        x_smooth = np.linspace(0,len(y),len(y)*10)
        y_smooth = interp1d(x_smooth, y, kind='cubic')
        return x_smooth, y_smooth(x_smooth)

Tags: 数据key函数numpylenmatplotlib错误数组
1条回答
网友
1楼 · 发布于 2024-09-30 10:34:18

interp1d的第一个参数的大小必须与第二个参数匹配。它们一起定义原始数据,即对应的y点的x坐标。在

尝试:

def spline_it(key):
    y = [i[1] for i in datapoints[key]]
    x = np.arange(len(y))
    interpolator = interp1d(x, y, kind='cubic')
    x_smooth = np.linspace(0,len(y),len(y)*10)
    y_smooth = interpolator(x_smooth)
    return x_smooth, y_smooth

我重新命名了一些变量以澄清什么是什么。在

相关问题 更多 >

    热门问题