Matplotlib avanzado

Diseños complejos con subplot_mosaic

Crea figuras con gráficos de distintos tamaños usando plt.subplot_mosaic y proporciones de ancho y alto.

Introducción

plt.subplots crea una cuadrícula regular, pero las figuras reales suelen necesitar un gráfico principal grande con otros más pequeños alrededor. plt.subplot_mosaic te deja dibujar el diseño como una lista de filas, dando un nombre a cada gráfico.

Cada lista interior es una fila y cada nombre un gráfico; un nombre repetido en varias celdas forma un gráfico más grande y "." deja una celda vacía. axes es un diccionario, así que axes["main"] es el gráfico de dispersión. gridspec_kw fija los tamaños relativos: la columna principal es cuatro veces más ancha que la derecha. Los histogramas de los bordes muestran cómo se distribuyen x e y.

Visualizador interactivo

Elige un diseño y activa o desactiva las proporciones. Cada nombre del mosaico se convierte en un gráfico.

Ejemplo de Matplotlib ejecutable

Matplotlib
Ejecutar código →
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()
Obtén un botón Run para este ejemplo El gráfico que dibuja este código
Diseños complejos con subplot_mosaic