Я пытаюсь интерполировать ряды ax / y, используя matplotlib
.Проблема, с которой я сталкиваюсь, заключается в том, что spline
и interp1d
терпят неудачу, потому что у меня есть повторяющиеся значения в массивах x и y.
Я пытался использовать функции spline и interp1d
из scipy
,но оба не удаются из-за повторяющихся значений
x1 = [0.82 0.82 0.82 0.82 0.82 0.82 0.83 0.83 0.83 0.83 0.83 0.83 0.83]
y1 = [0.93 0.93 0.93 0.93 0.94 0.94 0.94 0.94 0.94 0.94 0.94 0.94 0.94]
f = interp1d(x1, y1, kind='cubic') #this gives an error: Expect x to be a 1-D sorted array_like.
#another thing I tried
xnew = np.linspace(x1.min(),x1.max(),300)
splined = spline(x1,y1,xnew) #this gives an error: Matrix is singular
Я ожидаю, что интерполированное значение y будет постепенно увеличиваться с увеличением x.Так, например, соответствующее значение y для x = 0,82 будет 0,931, 0,932 и т. Д. В конце концов моя цель - получить плавную кривую.