Notiz
Klicken Sie hier , um den vollständigen Beispielcode herunterzuladen
Erstellen mehrerer Subplots mit plt.subplots
#
pyplot.subplots
erstellt mit einem einzigen Aufruf eine Figur und ein Raster von Subplots und bietet gleichzeitig eine angemessene Kontrolle darüber, wie die einzelnen Plots erstellt werden. Für fortgeschrittenere Anwendungsfälle können Sie GridSpec
für ein allgemeineres Subplot-Layout oder Figure.add_subplot
zum Hinzufügen von Subplots an beliebigen Stellen innerhalb der Abbildung verwenden.
Eine Figur mit nur einer Nebenhandlung #
subplots()
ohne Argumente gibt a Figure
und ein einzelnes
zurück Axes
.
Dies ist tatsächlich die einfachste und empfohlene Methode, um eine einzelne Figur und Achsen zu erstellen.
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('A single plot')
Text(0.5, 1.0, 'A single plot')
Nebenhandlungen in eine Richtung stapeln #
Die ersten beiden optionalen Argumente von pyplot.subplots
definieren die Anzahl der Zeilen und Spalten des Subplot-Rasters.
Wenn nur in eine Richtung gestapelt wird, ist das zurückgegebene axs
ein 1D-numpy-Array, das die Liste der erstellten Achsen enthält.
fig, axs = plt.subplots(2)
fig.suptitle('Vertically stacked subplots')
axs[0].plot(x, y)
axs[1].plot(x, -y)
[<matplotlib.lines.Line2D object at 0x7f2d00efd510>]
Wenn Sie nur wenige Achsen erstellen, ist es praktisch, sie sofort in dedizierte Variablen für jede Achse zu entpacken. Auf diese Weise können wir ax1
anstelle des ausführlicheren verwenden axs[0]
.
fig, (ax1, ax2) = plt.subplots(2)
fig.suptitle('Vertically stacked subplots')
ax1.plot(x, y)
ax2.plot(x, -y)
[<matplotlib.lines.Line2D object at 0x7f2d00a95b70>]
Um Nebendiagramme nebeneinander zu erhalten, übergeben Sie Parameter für eine Zeile und zwei Spalten.1, 2
fig, (ax1, ax2) = plt.subplots(1, 2)
fig.suptitle('Horizontally stacked subplots')
ax1.plot(x, y)
ax2.plot(x, -y)
[<matplotlib.lines.Line2D object at 0x7f2cfb43d330>]
Nebenhandlungen in zwei Richtungen stapeln #
Beim Stapeln in zwei Richtungen axs
wird ein 2D-NumPy-Array zurückgegeben.
Wenn Sie Parameter für jeden Teilplot einstellen müssen, ist es praktisch, mit über alle Teilplots in einem 2D-Gitter zu iterieren .for ax in axs.flat:
fig, axs = plt.subplots(2, 2)
axs[0, 0].plot(x, y)
axs[0, 0].set_title('Axis [0, 0]')
axs[0, 1].plot(x, y, 'tab:orange')
axs[0, 1].set_title('Axis [0, 1]')
axs[1, 0].plot(x, -y, 'tab:green')
axs[1, 0].set_title('Axis [1, 0]')
axs[1, 1].plot(x, -y, 'tab:red')
axs[1, 1].set_title('Axis [1, 1]')
for ax in axs.flat:
ax.set(xlabel='x-label', ylabel='y-label')
# Hide x labels and tick labels for top plots and y ticks for right plots.
for ax in axs.flat:
ax.label_outer()
Sie können Tuple-Unpacking auch in 2D verwenden, um alle Subplots dedizierten Variablen zuzuweisen:
fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2)
fig.suptitle('Sharing x per column, y per row')
ax1.plot(x, y)
ax2.plot(x, y**2, 'tab:orange')
ax3.plot(x, -y, 'tab:green')
ax4.plot(x, -y**2, 'tab:red')
for ax in fig.get_axes():
ax.label_outer()
Polarachsen #
Der Parameter subplot_kw von pyplot.subplots
steuert die Subplot-Eigenschaften (siehe auch Figure.add_subplot
). Insbesondere kann dies verwendet werden, um ein Gitter aus polaren Achsen zu erstellen.
Gesamtlaufzeit des Skripts: (0 Minuten 7,774 Sekunden)