Matplotlib -Koordination. sys origin nach oben links
-
20-09-2019 - |
Frage
Wie kann ich den Ursprung eines Matplotlib-Diagramms umdrehen, um in der oberen linken Ecke zu sein-im Gegensatz zum Standard unter niedrigerer links? Ich verwende matplotlib.pylab.plot, um das Diagramm zu erzeugen (wenn es jedoch eine andere Plot -Routine gibt, die flexibler ist, lassen Sie es mich bitte wissen).
Ich suche das Äquivalent des MATLAB -Befehls: Achse IJ;
Außerdem habe ich ein paar Stunden damit verbracht, Matplotlib -Hilfe und Google zu surfen, aber keine Antwort erhalten. Einige Informationen darüber, wo ich die Antwort hätte nachschlagen können, wären auch hilfreich.
Lösung
Für ein Bild- oder Konturdiagramm können Sie das Schlüsselwort verwenden origin = None | 'lower' | 'upper'
Und für ein Zeilendiagramm können Sie die Ylimits hoch auf niedrig setzen.
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()
Andere Tipps
Der einfachste Weg ist zu verwenden:
plt.gca().invert_yaxis()
Nachdem Sie das Bild aufgetragen haben. Origin
funktioniert nur für imshow
.
axis ij
Lassen Sie die y-Achse nur nach unten steigen, anstatt nach oben, oder? Wenn ja, dann matplotlib.axes.invert_yaxis()
Könnte alles sein, was Sie brauchen - aber ich kann das momentan nicht testen.
Wenn das nicht funktioniert, habe ich festgestellt ein Postbeitrag vorschlagen, dass
setp(gca(), 'ylim', reversed(getp(gca(), 'ylim')))
könnte tun, was Sie ähneln möchten axis ij
.
Das Folgende ist eine grundlegende Möglichkeit, dies zu erreichen
ax=pylab.gca()
ax.set_ylim(ax.get_ylim()[::-1])
Dies
plt.ylim(max(plt.ylim()), min(plt.ylim()))
hat einen Vorteil darüber
plt.gca().invert_yaxis()
Und wenn Sie sich im interaktiven Modus befinden und wiederholt das gleiche Diagramm zeichnen (möglicherweise mit aktualisierten Daten und nach dem Diagramm einen Haltepunkt), wird die Y -Achse nicht jedes Mal invertiert.