Ваша область, на которую вы смотрите, просто намного больше, чем ваши точки ввода.Это не имеет значения для «ближайшего», так как это всегда ставит ближайшее значение к определенной координате.Но 'linear' и 'cubic' не экстраполируют, а заполняют значения, которые по умолчанию находятся за пределами области ввода, с помощью nan.
См. Также документы griddata
:
fill_value : float, optional
Value used to fill in for requested points outside of the convex hull of the input points. If not provided, then the default is nan. This option has no effect for the ‘nearest’ method.
Лучше всего понять при построении по imshow
:
участок, созданный с помощью:
import numpy as np
from scipy.interpolate import griddata
x = np.array([0.03,0.05,0.033])
y = np.array([0.004,0.01,0.02])
z = np.array([1,2,3])
xy = np.zeros((2,np.size(x)))
xy[0] = x
xy[1] = y
xy = xy.T
grid_x, grid_y = np.mgrid[0.0:0.09:250*1j, 0.0:0.03:250*1j] #generating the grid
fig, axs = plt.subplots(3)
for i, i_type in enumerate(['cubic', 'nearest', 'linear']): #, cubic
grid_z = griddata(xy, z, (grid_x, grid_y), method=i_type)
#check if there is a nan in the z grid:
axs[i].imshow(grid_z)
axs[i].set_title(i_type)
plt.tight_layout()