Matplotlib avancé

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

Matplotlib
Exécuter le code →
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()
Obtenir un bouton Run pour cet exemple Le graphique tracé par ce code
Mises en page complexes avec subplot_mosaic