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.0
Anrufe 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.
f.add_subplot(3,4,1)
# is equivalent to:
f.add_subplot(341)
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:
#!/usr/bin/env python3
import matplotlib.pyplot as plt
def plot_and_text(axis, text):
'''Simple function to add a straight line
and text to an axis object'''
axis.plot([0,1],[0,1])
axis.text(0.02, 0.9, text)
f = plt.figure()
f2 = plt.figure()
_max = 12
for i in range(_max):
axis = f.add_subplot(3,4,i+1, fc=(0,0,0,i/(_max*2)), xticks=[], yticks=[])
plot_and_text(axis,chr(i+97) + ') ' + '3,4,' +str(i+1))
# If this check isn't in place, a
# ValueError: num must be 1 <= num <= 15, not 0 is raised
if i < 9:
axis = f2.add_subplot(341+i, fc=(0,0,0,i/(_max*2)), xticks=[], yticks=[])
plot_and_text(axis,chr(i+97) + ') ' + str(341+i))
f.tight_layout()
f2.tight_layout()
plt.show()
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:
pos ist eine dreistellige Ganzzahl, wobei die erste Ziffer die Anzahl der Zeilen, die zweite die Anzahl der Spalten und die dritte der Index des Unterplots ist. dh fig.add_subplot (235) ist dasselbe wie fig.add_subplot (2, 3, 5). Beachten Sie, dass alle Ganzzahlen kleiner als 10 sein müssen, damit dieses Formular funktioniert .
Rufen Sie 3 an
In seltenen Fällen kann add_subplot mit einem einzigen Argument aufgerufen werden, einer Instanz von Unterplotachsen, die bereits in der vorliegenden Abbildung erstellt wurde, jedoch nicht in der Achsenliste der Abbildung.
Anruf 4 (seit 3.1.0):
Wenn keine Positionsargumente übergeben werden, wird standardmäßig (1, 1, 1) verwendet.
dh den Anruf fig.add_subplot(111)
in der Frage reproduzieren .