У меня есть этот текстовый файл XYZ (3 столбца), и я пытаюсь запустить интерполяцию, чтобы я мог создать хорошую цветовую модель. Проблема в том, что возвращаемый результат не правильно отображает топографию моего распределения данных ... Я имею в виду, поверхность не такая гладкая, как мне бы хотелось. Нижние цвета (красный) соответствуют данным (черные точки), а верхние цвета (синий) - нет. Любая помощь?
Что я получу: Мой код:
import matplotlib.pyplot as plt
import scipy.interpolate
x,y,z = np.loadtxt("vel_model.txt",usecols=(0,1,2),unpack=True)
x_grid = np.linspace(x.min(),x.max(),100)
y_grid = np.linspace(y.min(),y.max(),100)
xi,yi = np.meshgrid(x_grid,y_grid)
zi = scipy.interpolate.griddata((x, y), z, (xi, yi), method = 'cubic')
fig = plt.figure()
ax = fig.add_subplot(111)
cm = ax.contourf(xi, yi, zi, cmap='jet')
ax.scatter(x,y,color='black',s = 6, label = 'Data points')
ax.set_aspect('equal')
ax.set_xlabel('Distance (m)')
ax.set_ylabel('Elevation (m)')
plt.legend(loc = 'best')
plt.grid(color='grey', linestyle='--', linewidth=0.3)
plt.show()```