2013-08-14 10 views
8

Я использую pyplot с matplotlib, и я хотел бы отобразить некоторые данные в качестве изображения. Когда я использую imshow(), данные перевернуты с пути, который я хочу просмотреть. Как бы переключить оси x и y, либо с imshow(), либо в массив numpy, прежде чем отправить его на адрес imshow()?Флип x и y оси для Matplotlib imshow()

(то есть я хочу горизонтальной оси, чтобы быть вертикальной)

Я попытался с помощью origin='upper' и origin='lower' в команде imshow(), но это просто переворачивает одну ось вместо переключения их вокруг

Я также пытались использовать reshape на данных, но порядок получает все перепутались

+2

Транспонируйте Numpy массив. 'arr = arr.T' – Daniel

+0

ничего себе, это было очень просто, спасибо! – Brent

ответ

12

, чтобы закрыть Вопрос-

Вам нужно транспонировать NumPy массив будет передний передавая его matplotlib:

>>> a 
array([[0, 1], 
     [2, 3]]) 
>>> a=a.T 
>>> a 
array([[0, 2], 
     [1, 3]]) 

Таким образом, используя plt это должно быть просто:

plt.imshow(a.T) 
+1

Я думаю, стоит упомянуть в вашем ответе, что вы можете просто передать ключевое слово origin для imshow. – pelson