Интерполяция файла данных - PullRequest
0 голосов
/ 28 октября 2019

Привет! Я хочу интерполировать данные из файла .asc, но получаю ошибку: ValueError: значение в x_new находится ниже диапазона интерполяции. Ниже этой строки находится минимальный код, а здесь файл данных - это файл данных, который я хочу интерполировать.

Вот код:

from scipy.interpolate import interp1d
import numpy as np
import matplotlib.pyplot as plt


dataxx = np.loadtxt('100mK-Rxx.asc')
B1 = dataxx[0:158, 0] 
Rxx1 = dataxx[0:158,3] 
f = interp1d(B1, Rxx1)
f2 = interp1d(B1, Rxx1, kind='cubic')

xnew = np.linspace(0.05, 7.9, num=1000, endpoint=True)
plt.plot(B1, Rxx1, 'o', xnew, f(xnew), '-', xnew, f2(xnew), '--')
plt.legend(['data', 'linear', 'cubic'], loc='best')
plt.show()

1 Ответ

0 голосов
/ 28 октября 2019

Ошибка довольно очевидна;одно из ваших новых значений x_new выходит за пределы исходного диапазона значений x. Если вы хотите использовать экстраполяцию, установите fill_value на extrapolate.

f = interp1d(B1, Rxx1, fill_value='extrapolate')

См. документацию для получения дополнительной информации (хотя в экстраполяции не так много ...)

...