Lassen Sie die Matlotlib-Autoscaling einige der Plots ignorieren

8

Ich verwende die Axes-API von matplotib, um einige Zahlen zu zeichnen. Eine der Linien, die ich zeichne, repräsentiert die theoretisch erwartete Linie. Es hat keine Bedeutung außerhalb der ursprünglichen y- und x-Grenzen. Was ich will, ist für Matlplotlib, es beim Autoskalieren der Grenzen zu ignorieren. Was ich früher getan habe, ist zu überprüfen, was die aktuellen Grenzen sind, dann zu plotten und die Grenzen neu zu setzen. Das Problem ist, dass wenn ich ein drittes Diagramm plotte, die Grenzen zusammen mit der theoretischen Linie neu berechnet werden, und das wirklich das Diagramm erweitert.

%Vor%     
jarondl 12.09.2011, 11:03
quelle

2 Antworten

13

Der offensichtliche Weg besteht darin, die Grenzen manuell so zu setzen, wie Sie möchten. (z.B. ax.axis([xmin, xmax, ymin, ymax]) )

Wenn Sie sich nicht damit beschäftigen wollen, die Grenzen manuell zu finden, haben Sie ein paar Möglichkeiten ...

Wie mehrere Personen (Tillsten, Yann und Vorticity) bereits erwähnt haben, können Sie die automatische Skalierung deaktivieren, bevor Sie sie grafisch darstellen, oder die scaley=False kwarg an plot %Vor%

Beachten Sie, dass Sie zorder des letzten Plots so anpassen können, dass es in der Mitte gezeichnet wird, wenn Sie die Kontrolle darüber haben wollen.

Wenn Sie nicht von der Reihenfolge abhängig sein möchten und nur eine Liste von Linien angeben möchten, auf denen automatisch skaliert werden soll, können Sie Folgendes tun: (Hinweis: Dies ist eine vereinfachte Version Re Umgang mit Line2D Objekte, anstatt Matplotlib Künstler im Allgemeinen.)

%Vor%

    
Joe Kington 13.09.2011, 02:52
quelle
6

Verwenden Sie den Befehl scalex / scaley kw arg:

%Vor%     
tillsten 12.09.2011 18:26
quelle

Tags und Links