Domanda

Come posso capovolgere l'origine di un complotto matplotlib di essere nell'angolo in alto a sinistra - in contrasto con il valore predefinito in basso a sinistra? Sto usando matplotlib.pylab.plot per produrre la trama (anche se c'è un altro di routine tracciato che è più flessibile, per favore fatemelo sapere).

Sto cercando l'equivalente del comando MATLAB: ij asse;

Inoltre, ho passato un paio d'ore a navigare aiuto matplotlib e Google, ma non sono venuti su con una risposta. Alcune informazioni su dove avrei potuto guardato la risposta sarebbe utile pure.

È stato utile?

Soluzione

Per una trama di immagine o di contorno, è possibile utilizzare la parola chiave origin = None | 'lower' | 'upper' e per una trama di linea, è possibile impostare le ylimits alto al più basso.

from pylab import *
A = arange(25)/25.
A = A.reshape((5,5))

figure()
imshow(A, interpolation='nearest', origin='lower')

figure()
imshow(A, interpolation='nearest')

d = arange(5)
figure()
plot(d)
ylim(5, 0)

show()

Altri suggerimenti

Il modo più semplice è quello di utilizzare:

plt.gca().invert_yaxis()

Dopo aver complottato l'immagine. Origin funziona solo per imshow.

axis ij fa solo nell'asse y aumentano verso il basso invece che verso l'alto, giusto? Se è così, matplotlib.axes.invert_yaxis() potrebbe essere tutto ciò che serve - -. ma non posso provare che in questo momento

Se questo non funziona, ho trovato un mailing postale suggerendo che

setp(gca(), 'ylim', reversed(getp(gca(), 'ylim')))

potrebbe fare ciò che si vuole assomigliare axis ij.

Il seguente è un modo semplice per raggiungere questo obiettivo

ax=pylab.gca()

ax.set_ylim(ax.get_ylim()[::-1])

Questo

plt.ylim(max(plt.ylim()), min(plt.ylim()))

ha un vantaggio su questo

plt.gca().invert_yaxis()

Ed è che se si è in modalità interattiva e ripetutamente tracciare lo stesso plot (magari con dati aggiornati e avere un punto di interruzione dopo la trama) l'asse Y non mancherà di tenere invertendo ogni volta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top