So setzen Sie xlim und ylim für einen Subplot in matplotlib [duplicate]
Lesezeit: 3 Minuten
Cupitor
Ich möchte die X- und Y-Achse in Matplotlib für eine bestimmte Unterhandlung einschränken. Die Subplot-Figur selbst hat keine Achseneigenschaft. Ich möchte zum Beispiel nur die Grenzen für den zweiten Plot ändern:
Ihre Frage war nicht klar, ich kann mir 4 oder 5 Möglichkeiten vorstellen, etwas so Einfaches mit Nebenhandlungen einzurichten.
– tacaswell
7. April 2013 um 2:34 Uhr
Wenn Sie sich vorstellen können, auf 4 oder 5 Arten einzurichten, zeigt dies, dass Sie die Frage bereits von Anfang an verstanden haben.
– Cupitor
7. April 2013 um 2:36 Uhr
Weil ich vermutete, dass Sie einige Lücken in Ihrem Verständnis der Klassenhierarchie von mpl haben (was Ihre Variablennamen bestätigen). Daher profitieren Sie am meisten, wenn ich Ihnen zeigen kann, wie Sie Ihren bereits vorhandenen Code anpassen können.
– tacaswell
7. April 2013 um 2:50 Uhr
Tacaswell
Sie sollten die OO-Schnittstelle zu matplotlib verwenden und nicht die State-Machine-Schnittstelle. Fast alle plt.* Funktion sind dünne Hüllen, die im Grunde funktionieren gca().*.
plt.subplot gibt ein zurück axes Objekt. Sobald Sie einen Verweis auf das Achsenobjekt haben, können Sie direkt darauf plotten, seine Grenzen ändern usw.
Das Problem beim Beibehalten der Achseninstanz besteht darin, dass sie nicht alle Eigenschaften hat, die plt hat, zum Beispiel kann man axis.ylim() nicht verwenden, um den Ylim des Diagramms auf einer Achse zu erhalten.
– schneidig
21. Januar 2014 um 19:09 Uhr
@dashesy Sie verwenden set_xlim und set_ylim. plt hat viele weniger Optionen, als direkt mit dem Achsenobjekt zu arbeiten. Tatsächlich ist fast jede Funktion in plt ist eine sehr dünne Hülle, die zuerst ruft ax = plt.gca() und ruft dann irgendeine Funktion für dieses Objekt auf. Sie sollten nicht verwenden plt für alles andere als interaktives Arbeiten.
– tacaswell
21. Januar 2014 um 19:12 Uhr
Ja, ich stimme zu, es ist vorzuziehen, sich nicht auf die interaktive Version zu verlassen, aber es gibt keine Möglichkeit dazu erhalten das Ylim eines Plots mit nur einer Achse. Nachdem ein Diagramm fertig ist, wird es eine haben automatisch ylim zugewiesen, aber die Achse hat diese Information nicht. Wenn also letztere Zeichnungen vom Ylim abhängen, muss man, wie Sie sagten, set_ylim setzen, um den aktuellen Bereich zu überschreiben.
– schneidig
21. Januar 2014 um 21:45 Uhr
Entschuldigung, ich habe das bisschen Magie vergessen plt.ylim. Da ist auch ein get_ylim() Funktion auf der axes die die Grenzen zurückgeben und ax.get_yaxis() Funktion, die Ihnen die zurückgibt axis (Beachten Sie den Unterschied zwischen axes und axis). Es gibt auch die symmetrischen Versionen für die x-Achse.
– tacaswell
21. Januar 2014 um 21:55 Uhr
@aderchox, weil sie sich in verschiedenen Namespaces befinden. plt.xlim und plt.ylim sind in matplotlib.pyplot und ax.set_xlim und ax.set_ylim sind Methoden auf der Axes Objekt. In fast allen Fällen sollten Sie lieber die Axes-Methoden als Pyplot verwenden.
– tacaswell
1. April 2020 um 16:51 Uhr
10541200cookie-checkSo setzen Sie xlim und ylim für einen Subplot in matplotlib [duplicate]yes
Ihre Frage war nicht klar, ich kann mir 4 oder 5 Möglichkeiten vorstellen, etwas so Einfaches mit Nebenhandlungen einzurichten.
– tacaswell
7. April 2013 um 2:34 Uhr
Wenn Sie sich vorstellen können, auf 4 oder 5 Arten einzurichten, zeigt dies, dass Sie die Frage bereits von Anfang an verstanden haben.
– Cupitor
7. April 2013 um 2:36 Uhr
Weil ich vermutete, dass Sie einige Lücken in Ihrem Verständnis der Klassenhierarchie von mpl haben (was Ihre Variablennamen bestätigen). Daher profitieren Sie am meisten, wenn ich Ihnen zeigen kann, wie Sie Ihren bereits vorhandenen Code anpassen können.
– tacaswell
7. April 2013 um 2:50 Uhr