Le site add_subplot() Methode hat 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 Aufforderungen 1 und 2 bewirken dasselbe (bis zu einer bestimmten Grenze, die weiter unten erläutert wird). Stellen Sie sich vor, dass sie zuerst das Rasterlayout mit ihren die ersten 2 Zahlen (2x2, 1x8, 3x4, usw.), z.B:
f.add_subplot(3,4,1)
# is equivalent to:
f.add_subplot(341)
Beide ergeben eine Teilflächenanordnung von (3 x 4 = 12) Teilflächen 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, ansteigend nach rechts .
Dieser Code verdeutlicht die Grenzen 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, mit Aufruf 1 auf der linken Seite können Sie ein beliebiges Achsenobjekt zurückgeben, aber mit Aufruf 2 auf der RHS können Sie nur bis zu index = 9 zurückkehren, so dass die Teilflächen j), k) und l) mit diesem Aufruf nicht zugänglich sind.
D.h. sie 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 den Index des Teilbildes angibt. d.h. fig.add_subplot(235) ist dasselbe wie fig.add_subplot(2, 3, 5). Beachten Sie, dass alle ganzen Zahlen kleiner als 10 sein müssen, damit diese Form funktioniert .
Aufruf 3
In seltenen Fällen kann add_subplot mit einem einzigen Argument aufgerufen werden, nämlich einer Instanz von Subplot-Achsen, die bereits in der aktuellen Abbildung erstellt wurde, aber nicht in der Liste der Achsen der Abbildung enthalten ist.
Aufruf 4 (seit 3.1.0):
Wenn keine Positionsargumente übergeben werden, ist der Standardwert (1, 1, 1).
d.h. die Wiedergabe des Aufrufs fig.add_subplot(111)
in der Frage. Damit wird im Wesentlichen ein 1 x 1-Gitter von Teilflächen erstellt und das erste (und einzige) Achsenobjekt im Gitter zurückgegeben.