Layout complessi con subplot_mosaic
Crea figure con grafici di dimensioni diverse usando plt.subplot_mosaic e proporzioni di larghezza e altezza.
Introduzione
plt.subplots crea una griglia regolare, ma le figure reali spesso richiedono un grande grafico principale con altri più piccoli intorno. plt.subplot_mosaic ti fa disegnare il layout come una lista di righe, dando un nome a ogni grafico.
Ogni lista interna è una riga e ogni nome un grafico; un nome ripetuto su più celle forma un grafico più grande e "." lascia una cella vuota. axes è un dizionario, quindi axes["main"] è il grafico a dispersione. gridspec_kw imposta le dimensioni relative: la colonna principale è quattro volte più larga di quella a destra. Gli istogrammi ai bordi mostrano come sono distribuiti x e y.
Visualizzatore interattivo
Scegli un layout e attiva o disattiva le proporzioni. Ogni nome del mosaico diventa un grafico.
Esempio Matplotlib eseguibile
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()
