Matplotlib für Profis

Komplexe Layouts mit subplot_mosaic

Figuren mit unterschiedlich großen Diagrammen mit plt.subplot_mosaic und Breiten- und Höhenverhältnissen bauen.

Einführung

plt.subplots erzeugt ein regelmäßiges Raster, doch echte Figuren brauchen oft ein großes Hauptdiagramm mit kleineren drumherum. Mit plt.subplot_mosaic zeichnest du das Layout als Liste von Zeilen und gibst jedem Diagramm einen Namen.

Jede innere Liste ist eine Zeile und jeder Name ein Diagramm; ein über mehrere Zellen wiederholter Name ergibt ein größeres Diagramm, und "." lässt eine Zelle leer. axes ist ein Dictionary, also ist axes["main"] das Streudiagramm. gridspec_kw setzt die relativen Größen: Die Hauptspalte ist viermal so breit wie die rechte. Die Histogramme an den Rändern zeigen die Verteilung von x und y.

Interaktive Visualisierung

Wähle ein Layout und schalte die Größenverhältnisse ein und aus. Jeder Name im Mosaik wird zu einem Diagramm.

Ausführbares Matplotlib-Beispiel

Matplotlib
Code ausführen →
main.py
import matplotlib.pyplot as plt
import numpy as np

rng = np.random.default_rng(4)
x = rng.normal(size=300)
y = 0.6 * x + rng.normal(scale=0.8, size=300)

fig, axes = plt.subplot_mosaic([["top", "."], ["main", "right"]], figsize=(6, 6),
                               gridspec_kw={"width_ratios": [4, 1], "height_ratios": [1, 4]})
axes["main"].scatter(x, y, s=10, alpha=0.6)
axes["top"].hist(x, bins=30)
axes["right"].hist(y, bins=30, orientation="horizontal")
axes["top"].axis("off")
axes["right"].axis("off")
fig.suptitle("Scatter plot with marginal histograms")
plt.show()
Run-Button für dieses Beispiel erstellen Das Diagramm, das dieser Code zeichnet
Komplexe Layouts mit subplot_mosaic