Mises en page complexes avec subplot_mosaic
Composez des figures avec des graphiques de tailles différentes grâce à plt.subplot_mosaic et aux proportions.
Introduction
plt.subplots crée une grille régulière, mais les vraies figures ont souvent besoin d'un grand graphique principal entouré de plus petits. plt.subplot_mosaic permet de dessiner la mise en page comme une liste de lignes, en nommant chaque graphique.
Chaque liste intérieure est une ligne et chaque nom un graphique ; un nom répété sur plusieurs cases forme un graphique plus grand et "." laisse une case vide. axes est un dictionnaire, donc axes["main"] est le nuage de points. gridspec_kw fixe les tailles relatives : la colonne principale est quatre fois plus large que celle de droite. Les histogrammes en bordure montrent la distribution de x et de y.
Visualiseur interactif
Choisissez une mise en page et activez ou désactivez les proportions. Chaque nom de la mosaïque devient un graphique.
Exemple Matplotlib exécutable
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()
