#python-3.x #matplotlib #coordinates #axes
#python-3.x #matplotlib #координаты #оси
Вопрос:
я впервые задаю этот вопрос на этом портале, поэтому прошу прощения, если я сделал что-то не так.
У меня есть три списка, которые представляют координаты x, y, z следующим образом:
X_grid = [[], [], …, []]
Y_grid = [[], [], …, []]
Z_grid = [[], [], …, []]
У меня определено значение NODATA_value, которое находится внутри списка Z_grid, для точек, где у меня нет значения измерения.
Проблема в том, что я не могу изменить оси x, y графика так, чтобы вместо указания значения положения элемента в матрице они указывали координаты x, y.
Важно, чтобы каждая точка была нарисована в виде квадрата, а не прямоугольника, поскольку они представляют пиксели.
Я прилагаю код, который у меня есть прямо сейчас. Я был бы очень признателен, если бы кто-нибудь помог мне в этом.
[текущий результат]https://ibb.co/kyzCtBK
def visualizar_grid(X_grid, Y_grid, Z_grid, NODATA_value, name_DTM):
import numpy as np
import matplotlib.pyplot as plt
grid = Z_grid
for i in range(len(Z_grid)):
for j in range(len(Z_grid[0])):
if Z_grid[i][j] == NODATA_value:
grid[i][j] = grid[i][j]*np.nan
plt.matshow(grid[::-1], cmap = 'jet')
plt.gca().invert_yaxis()
plt.colorbar()
plt.grid()
plt.title(name_DTM)
image = plt.show()
return image
Комментарии:
1. Возможно, вы ищете аргумент ключевого слова
imshow
extent
.2. Привет, спасибо за ответ, но я думаю, что этот путь неправильный или, по крайней мере, самый короткий.
3. Ммм, не уверен, что заставляет тебя так думать. Но если у вас есть какие-либо указания на то,
extent
что это не лучший / корректный способ манипулирования диапазоном данных изображения, не стесняйтесь предоставлять дополнительные подробности.