2013-08-14 14 views
8

Sto usando pyplot con matplotlib e desidero visualizzare alcuni dati come immagine. Quando uso imshow() i dati sono capovolti dal modo in cui voglio vederlo. Come faccio a cambiare gli assi x e y, con imshow() o con l'array numpy prima di inviarlo a imshow()?Rifletti assi xey per Matplotlib imshow()

(cioè voglio l'asse orizzontale sia verticale)

Ho provato con origin='upper' e origin='lower' nel comando imshow(), ma che solo un asse inverte invece di commutazione intorno

ho anche provato ad utilizzare reshape sui dati, ma l'ordine ottiene tutto incasinato

+2

trasporre la matrice NumPy. 'arr = arr.T' – Daniel

+0

wow, è stato semplicissimo, grazie! – Brent

risposta

12

per chiudere il Question-

È necessario trasporre la matrice numpy essere ribalta passarla a matplotlib:

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

in modo da utilizzare plt dovrebbe essere semplicemente:

plt.imshow(a.T) 
+1

Penso che nella tua risposta valga la pena di passare la parola chiave origine a imshow. – pelson

Problemi correlati