Subplots und Layouts
Mehrere Diagramme kombinieren
Subplots und Layouts ist eine kostenlose Python Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Python Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.
Warum mehrere Diagramme
Oft reicht ein Diagramm nicht aus. Vielleicht möchten Sie mehrere Ansichten nebeneinander vergleichen oder einen überladenen Plot in kleinere Panels aufteilen. Matplotlib bezeichnet dies als das Anordnen mehrerer Axes innerhalb einer Figure.
Das wichtigste Werkzeug ist plt.subplots(rows, cols).
Ein Raster aus Axes
fig, axes = plt.subplots(2, 3) erstellt eine Figure mit einem 2-mal-3-Raster und liefert Ihnen sechs Axes. Das Ergebnis axes ist ein zweidimensionales Array, das Sie wie axes[0][1] indizieren.
Die Gesamtzahl der Panels ergibt sich einfach aus Zeilen mal Spalten.
rows, cols = 2, 3
total = rows * cols
print('Grid', rows, 'x', cols, '=', total, 'axes')
for r in range(rows):
for c in range(cols):
print('panel at', (r, c))Das Axes-Array indizieren
Bei einer einzigen Zeile ist axes eindimensional: Verwenden Sie axes[0] und axes[1]. Bei einem vollständigen Raster ist es zweidimensional: axes[row][col].
Bei einem einzigen Subplot ist überhaupt keine Indizierung nötig.
Über Panels iterieren
Ein übersichtliches Muster besteht darin, das Raster abzuflachen und in einer Schleife jedes Axes-Objekt mit seinen Daten zu verknüpfen. So vermeiden Sie nahezu identischen Code für jedes Panel.
datasets = ['A', 'B', 'C', 'D']
# imagine axes flattened to a list of 4
for i, name in enumerate(datasets):
print('Plot dataset', name, 'on flat axes index', i)Gemeinsame Achsen
Wenn Panels dieselbe Skala verwenden, übergeben Sie sharex=True oder sharey=True. Die Subplots verwenden dann einen gemeinsamen Bereich, was faire Vergleiche ermöglicht und redundante Tick-Beschriftungen entfernt.
Das ist ideal für gestapelte Zeitreihen.
Figure-Größe für Raster
Ein Raster benötigt mehr Platz als ein einzelner Plot. Setzen Sie beim Aufruf von subplots mit figsize=(width, height) die Größe in Inch fest. Als Faustregel gilt, die Größe an die Anzahl der Spalten und Zeilen anzupassen.
cols, rows = 3, 2
per_panel_w, per_panel_h = 3, 2.5
print('Suggested figsize:', (cols * per_panel_w, rows * per_panel_h))Abstände zwischen Panels
Panels können zu dicht beieinanderliegen. fig.tight_layout() behebt die meisten Fälle automatisch. Für eine genauere Kontrolle verwenden Sie fig.subplots_adjust(wspace=0.4, hspace=0.4), um horizontale und vertikale Abstände festzulegen.
Größere Werte bedeuten mehr Abstand zwischen den Subplots.
Ungleichmäßige Layouts mit GridSpec
Nicht jedes Layout ist ein gleichmäßiges Raster. Mit GridSpec können Sie ein Axes-Objekt mehrere Zeilen oder Spalten überspannen lassen, etwa ein breites Diagramm oben und zwei kleine darunter.
Sie definieren das Raster und schneiden es dann wie ein Array auf, um jedes Axes-Objekt zu platzieren.
Spannweiten planen
Denken Sie bei GridSpec-Slices an Bereiche. Ein oberes Diagramm, das sich über alle Spalten erstreckt, ist gs[0, :]; ein Diagramm unten links ist gs[1, 0]. Wenn Sie die Slices zuerst auf Papier planen, vermeiden Sie Verwirrung.
layout = {
'header': '[0, :] (full width)',
'left': '[1, 0] (bottom left)',
'right': '[1, 1] (bottom right)',
}
for name, slot in layout.items():
print(name.ljust(7), slot)Eine Figure, eine Geschichte
Eine Figure mit mehreren Panels sollte trotzdem eine einzige zusammenhängende Geschichte erzählen. Verwenden Sie ein gemeinsames fig.suptitle(), konsistente Farben und gemeinsame Skalen, damit die Panels als Einheit und nicht wie eine zufällige Collage gelesen werden.
Anpassung pro Panel
Da jede Zelle ihr eigenes Axes-Objekt ist, können Sie sie unabhängig anpassen. axes[0][0].set_title('Sales') versieht nur das Panel oben links mit einem Titel, während axes[1][1].set_ylabel('Cost') nur das Panel unten rechts beschriftet.
Diese Unabhängigkeit ist genau der Grund, warum der objektorientierte Stil bei Rastern seine Stärken ausspielt.
Kurzer Test
Testen Sie Ihr Verständnis von Layouts mit mehreren Panels.
Zusammenfassung
Sie können nun Diagramme kombinieren:
plt.subplots(rows, cols)erstellt ein Raster aus Axes- Indizieren Sie mit
axes[row][col]oder flachen Sie das Raster ab und iterieren Sie darüber sharex/shareyrichten Skalen aus;figsizelegt die Größe des Rasters festtight_layoutundsubplots_adjustverwalten die AbständeGridSpecermöglicht Panels, die sich über mehrere Zellen erstrecken
Häufig gestellte Fragen
Ist die Lektion „Subplots und Layouts“ kostenlos?
Ja — der vollständige Text von „Subplots und Layouts“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Python Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Subplots und Layouts“?
Mehrere Diagramme kombinieren Du übst Python Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Python Academy zu starten?
Keine Vorkenntnisse erforderlich. Python Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Subplots und Layouts“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Python Academy-Lektion Code schreiben und ausführen?
Ja. Jede Python Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Figures und Axes
- Linien-, Balken- und Streudiagramme
- Diagramme anpassen
- Subplots und Layouts