Python. Matplotlib. Как преобразовать оси матрицы в координаты - PullRequest
0 голосов
/ 26 марта 2019

это первый раз, когда я спрашиваю на этом портале, поэтому я прошу прощения, если я сделал что-то не так.

У меня есть три списка, которые представляют координаты 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

...