Objetos Anclados en Matplotlib

Beginner

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

Introducción

En este laboratorio, aprenderá a usar Objetos Anclados en Matplotlib. Los Objetos Anclados se utilizan para agregar objetos auxiliares a una gráfica. Estos objetos se pueden utilizar para agregar anotaciones, barras de escala y leyendas a una gráfica.

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. En este laboratorio usaremos Matplotlib.

from matplotlib import pyplot as plt
from matplotlib.lines import Line2D
from matplotlib.offsetbox import (AnchoredOffsetbox, AuxTransformBox,
                                  DrawingArea, TextArea, VPacker)
from matplotlib.patches import Circle, Ellipse

Crear una figura

El siguiente paso es crear una figura. Crearemos una figura simple con un solo subgráfico.

fig, ax = plt.subplots()
ax.set_aspect(1)

Agregar texto anclado

En este paso, agregaremos un cuadro de texto anclado a la esquina superior izquierda de la figura.

def draw_text(ax):
    """Dibuja un cuadro de texto anclado a la esquina superior izquierda de la figura."""
    box = AnchoredOffsetbox(child=TextArea("Figure 1a"),
                            loc="upper left", frameon=True)
    box.patch.set_boxstyle("round,pad=0.,rounding_size=0.2")
    ax.add_artist(box)

draw_text(ax)

Agregar círculos anclados

En este paso, agregaremos dos círculos a la gráfica usando Objetos Anclados.

def draw_circles(ax):
    """Dibuja círculos en coordenadas de ejes."""
    area = DrawingArea(width=40, height=20)
    area.add_artist(Circle((10, 10), 10, fc="tab:blue"))
    area.add_artist(Circle((30, 10), 5, fc="tab:red"))
    box = AnchoredOffsetbox(
        child=area, loc="upper right", pad=0, frameon=False)
    ax.add_artist(box)

draw_circles(ax)

Agregar elipse anclada

En este paso, agregaremos una elipse a la gráfica usando Objetos Anclados.

def draw_ellipse(ax):
    """Dibuja una elipse de ancho = 0,1, alto = 0,15 en coordenadas de datos."""
    aux_tr_box = AuxTransformBox(ax.transData)
    aux_tr_box.add_artist(Ellipse((0, 0), width=0.1, height=0.15))
    box = AnchoredOffsetbox(child=aux_tr_box, loc="lower left", frameon=True)
    ax.add_artist(box)

draw_ellipse(ax)

Agregar barra de escala

En este paso, agregaremos una barra de escala a la gráfica usando Objetos Anclados.

def draw_sizebar(ax):
    """
    Dibuja una barra horizontal con una longitud de 0,1 en coordenadas de datos,
    con una etiqueta fija alineada al centro debajo.
    """
    size = 0.1
    text = r"1$^{\prime}$"
    sizebar = AuxTransformBox(ax.transData)
    sizebar.add_artist(Line2D([0, size], [0, 0], color="black"))
    text = TextArea(text)
    packer = VPacker(
        children=[sizebar, text], align="center", sep=5)  ## separación en puntos.
    ax.add_artist(AnchoredOffsetbox(
        child=packer, loc="lower center", frameon=False,
        pad=0.1, borderpad=0.5))  ## rellenos relativos al tamaño de fuente de la leyenda.

draw_sizebar(ax)

Mostrar la gráfica

El último paso es mostrar la gráfica.

plt.show()

Resumen

En este laboratorio, aprendiste cómo usar Objetos Anclados en Matplotlib. Aprendiste cómo agregar texto, círculos, elipses y barras de escala a una gráfica usando Objetos Anclados. Los Objetos Anclados son una herramienta poderosa que se puede usar para agregar anotaciones y leyendas a una gráfica.