Я некоторое время искал ответ на этот вопрос и приблизился, но продолжаю сталкиваться с ошибками.Есть много подобных вопросов, которые почти отвечают на это, но я не смог решить их.Любая помощь или точка в правильном направлении приветствуется.
У меня есть график, показывающий температуру как в основном нелинейную функцию глубины, со значениями x и y, взятыми из фрейма данных pandas.
import matplotlib.pyplot as plt
x = (22.81, 22.81, 22.78, 22.71, 22.55, 22.54, 22.51, 22.37)
y = (5, 16, 23, 34, 61, 68, 77, 86)
#Plot details
plt.figure(figsize=(10,7)), plt.plot(style='.-')
plt.title("Temperature as a Function of Depth")
plt.xlabel("Temperature"), plt.ylabel("Depth")
plt.gca().invert_yaxis()
plt.plot(x,y, linestyle='--', marker='o', color='b')
Что дает мне изображение, похожее на это (обратите внимание на перевернутую ось y, поскольку я говорю о глубине):

Я хотел бы найти значение y при конкретном значении x 22,61, которое не является одним из исходных значений температуры в наборе данных.Я пробовал следующие шаги:
np.interp(22.61, x1, y1)
, который дает мне значение, которое я знаю, как неправильное, как и
s = pd.Series([5,16,23,34,np.nan,61,68,77,86], index=[22.81,22.81,22.78,22.71,22.61,22.55,22.54,22.51,22.37])
s.interpolate(method='index')
, где я пытаюсь просто установить кадри форсировать интерполяцию.Я также попытался
line = plt.plot(x,y)
xvalues = line[0].get_xdata()
yvalues = line[0].get_ydata()
idx = np.where(xvalues==xvalues[3]) ## 3 is the position
yvalues[idx]
, но это возвращает значения y для определенного, уже перечисленного значения x, а не для интерполированного значения.
Надеюсь, это достаточно ясно.Я новичок в науке о данных и в стеке потока, поэтому, если мне нужно перефразировать вопрос, пожалуйста, дайте мне знать.