2D-тепловая карта с использованием python и matplotlib

Мне нужно построить 2D «тепловую карту», ​​используя python, используя данные из моего файла. В моем файле 3 столбца x, y, значение. x идет от 1 до 199, а y от 1 до 49. Мне удалось использовать код отсюда: Создайте 2D-пиксельный график с помощью matplotlib, но моя область прямоугольная, и мне нужно, чтобы она была "лежачим" прямоугольником, но приведенный выше код делает его "стоящим" прямоугольником.

В любом случае, как повернуть его на 90 градусов против часовой стрелки или перенести данные? Я очень новичок в python, и все решения, которые я нашел, не работают...

Вот мой код, который создает «стоячий» прямоугольник:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm

x,y,temp = np.loadtxt('snorm000990987662298').T 
nrows, ncols = 199, 49
grid = temp.reshape((nrows, ncols))

plt.imshow(grid,  cmap=cm.gist_gray)
plt.show()

person Martin    schedule 04.03.2016    source источник


Ответы (1)


Попробуйте использовать numpy.transpose:

grid = np.transpose(grid)
plt.imshow(grid, cmap=cm.gist_gray)
plt.show()
person Jeff    schedule 04.03.2016
comment
Хорошо, это работает, спасибо, его лежащий прямоугольник, теперь мне нужно перевернуть сетку по оси Y, потому что она перевернута... - person Martin; 04.03.2016
comment
Ах. Тогда вам, вероятно, нужно numpy.rot90: grid = np.rot90(grid). См. также numpy.flipud и numpy.fliplr. - person Jeff; 04.03.2016
comment
Я перевернул ось Y :). Но спасибо, ваше решение тоже работает. - person Martin; 05.03.2016