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
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()
