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.