Manchmal stoße ich auf Code wie diesen:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
fig = plt.figure()
fig.add_subplot(111)
plt.scatter(x, y)
plt.show()
Welches produziert:
Ich habe die Dokumentation wie verrückt gelesen, aber ich kann keine Erklärung dafür finden 111
. manchmal sehe ich a 212
.
Was bedeutet das Argument von fig.add_subplot()
?
python
matplotlib
figure
erfreut nicht dazu
quelle
quelle
subplots()
Methode gibt.subplot()
ist hier undsubplots()
ist hier .Ich denke, dies lässt sich am besten anhand des folgenden Bildes erklären:
Um das Obige zu initialisieren, würde man Folgendes eingeben:
quelle
1.5.0
) und scheint nur Matlab zu sein. (Beachten Sie, dass es in Matplotlib andere Optionen gibt, um dieses Verhalten zu erreichen, z. B. gridspec )Die Antwort von Constantin ist genau richtig, aber für mehr Hintergrundinformationen wird dieses Verhalten von Matlab geerbt.
Das Matlab-Verhalten wird im Abschnitt Abbildung einrichten - Anzeigen mehrerer Diagramme pro Abbildung in der Matlab-Dokumentation erläutert .
quelle
Meine Lösung ist
quelle
Der erste Code erstellt die erste Unterzeichnung in einem Layout mit 3 Zeilen und 2 Spalten.
Die drei Diagramme in der ersten Spalte bezeichnen die drei Zeilen. Das zweite Diagramm befindet sich direkt unter dem ersten Diagramm in derselben Spalte und so weiter.
Die letzten beiden Diagramme enthalten Argumente dafür
(2, 2)
, dass die zweite Spalte nur zwei Zeilen enthält. Die Positionsparameter verschieben sich zeilenweise.quelle
fig.add_subplot(ROW,COLUMN,POSITION)
Beispiele
Es gibt insgesamt 2 Zeilen, 1 Spalte, daher können 2 Untergraphen gezeichnet werden. Sein Standort ist 1 .. Es gibt insgesamt 2 Zeilen, 1 Spalte, daher können 2 Untergraphen gezeichnet werden. Seine Position ist die 2 ..
quelle
Die Methode add_subplot () verfügt über mehrere Aufrufsignaturen :
add_subplot(nrows, ncols, index, **kwargs)
add_subplot(pos, **kwargs)
add_subplot(ax)
add_subplot()
<- seit 3.1.0Anrufe 1 und 2:
Die Anrufe 1 und 2 erreichen dasselbe (bis zu einem unten erläuterten Limit). Stellen Sie sich vor, Sie geben zuerst das Rasterlayout mit den ersten beiden Zahlen (2x2, 1x8, 3x4 usw.) an, z.
Beide erzeugen eine Unterplotanordnung von (3 x 4 = 12) Unterplots in 3 Zeilen und 4 Spalten. Die dritte Zahl in jedem Aufruf gibt an, welches Achsenobjekt zurückgegeben werden soll, beginnend mit 1 oben links und nach rechts erhöht .
Dieser Code veranschaulicht die Einschränkungen bei der Verwendung von Aufruf 2:
Sie können sehen, dass Sie mit Aufruf 1 auf der LHS jedes Achsenobjekt zurückgeben können. Mit Aufruf 2 auf der RHS können Sie jedoch nur bis zu Index = 9 zurückkehren, wodurch die Unterzeichnungen j), k) und l) mit diesem Aufruf nicht mehr zugänglich sind.
Dh es veranschaulicht diesen Punkt aus der Dokumentation:
Rufen Sie 3 an
Anruf 4 (seit 3.1.0):
dh den Anruf
fig.add_subplot(111)
in der Frage reproduzieren .quelle