Etiquetado de subgráficos con Matplotlib

PythonPythonBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Matplotlib es una biblioteca de visualización de datos ampliamente utilizada en Python. Proporciona una variedad de herramientas para crear diferentes tipos de gráficos, incluyendo subgráficos. Cuando se crean subgráficos, a menudo es útil etiquetar cada gráfico para facilitar la comprensión de la información presentada por el lector. En este laboratorio, aprenderemos cómo etiquetar subgráficos utilizando diferentes métodos proporcionados por Matplotlib.

Consejos sobre la VM

Una vez finalizada la inicialización de la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje sus comentarios después de la sesión y lo resolveremos rápidamente para usted.

Importar bibliotecas

El primer paso es importar las bibliotecas necesarias. Utilizaremos matplotlib.pyplot y matplotlib.transforms para crear y transformar los subgráficos.

import matplotlib.pyplot as plt
import matplotlib.transforms as mtransforms

Crear subgráficos

A continuación, creamos los subgráficos utilizando plt.subplot_mosaic. Crearemos una cuadrícula de subgráficos de 3x2 y los etiquetaremos de la siguiente manera:

  • El subgráfico de la esquina superior izquierda se etiquetará como "a)"
  • El subgráfico de la esquina inferior izquierda se etiquetará como "b)"
  • Los subgráficos de la esquina superior derecha e inferior derecha se etiquetarán como "c)" y "d)" respectivamente.
fig, axs = plt.subplot_mosaic([['a)', 'c)'], ['b)', 'c)'], ['d)', 'd)']], layout='constrained')

Etiquetar dentro de los ejes

El método más simple para etiquetar subgráficos es poner la etiqueta dentro de los ejes. Esto se puede lograr utilizando el método ax.text. Recorreremos cada subgráfico y agregaremos la etiqueta dentro de los ejes utilizando ax.transAxes.

for label, ax in axs.items():
    ## label physical distance in and down:
    trans = mtransforms.ScaledTranslation(10/72, -5/72, fig.dpi_scale_trans)
    ax.text(0.0, 1.0, label, transform=ax.transAxes + trans,
            fontsize='medium', verticalalignment='top', fontfamily='serif',
            bbox=dict(facecolor='0.7', edgecolor='none', pad=3.0))

Etiquetar fuera de los ejes

Podríamos preferir las etiquetas fuera de los ejes pero aún alineadas entre sí. En este caso, usamos una transformación ligeramente diferente.

for label, ax in axs.items():
    ## label physical distance to the left and up:
    trans = mtransforms.ScaledTranslation(-20/72, 7/72, fig.dpi_scale_trans)
    ax.text(0.0, 1.0, label, transform=ax.transAxes + trans,
            fontsize='medium', va='bottom', fontfamily='serif')

Etiquetar con título

Si queremos que la etiqueta quede alineada con el título, podemos incorporarla al título o usar el argumento de palabras clave loc.

for label, ax in axs.items():
    ax.set_title('Normal Title', fontstyle='italic')
    ax.set_title(label, fontfamily='serif', loc='left', fontsize='medium')

Mostrar los subgráficos

Finalmente, mostramos los subgráficos utilizando plt.show().

plt.show()

Resumen

En este laboratorio, aprendimos cómo etiquetar subgráficos en Matplotlib utilizando diferentes métodos. Utilizamos ax.text para etiquetar dentro de los ejes, ax.set_title para etiquetar con el título y plt.subplot_mosaic para crear los subgráficos. También utilizamos matplotlib.transforms para transformar los ejes y alinear las etiquetas. Al etiquetar los subgráficos, podemos hacer que nuestras gráficas sean más informativas y fáciles de entender.