Introducción
En este laboratorio, aprenderemos cómo habilitar la selección en la leyenda para activar y desactivar la línea original utilizando Python 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 resolveremos el problema inmediatamente para usted.
Importar las bibliotecas necesarias
En primer lugar, necesitamos importar las bibliotecas necesarias, que son NumPy y Matplotlib.
import matplotlib.pyplot as plt
import numpy as np
Preparar los datos
Generaremos dos ondas sinusoidales con diferentes frecuencias utilizando NumPy.
t = np.linspace(0, 1)
y1 = 2 * np.sin(2*np.pi*t)
y2 = 4 * np.sin(2*np.pi*2*t)
Crear figura y ejes
Crearemos una figura y ejes utilizando Matplotlib y estableceremos el título de la gráfica.
fig, ax = plt.subplots()
ax.set_title('Click on legend line to toggle line on/off')
Crear líneas y leyenda
Crearemos dos líneas y una leyenda utilizando Matplotlib.
line1, = ax.plot(t, y1, lw=2, label='1 Hz')
line2, = ax.plot(t, y2, lw=2, label='2 Hz')
leg = ax.legend(fancybox=True, shadow=True)
Asignar las líneas de la leyenda a las líneas originales
Asignaremos las líneas de la leyenda a las líneas originales utilizando un diccionario.
lines = [line1, line2]
lined = {} ## Asignará las líneas de la leyenda a las líneas originales.
for legline, origline in zip(leg.get_lines(), lines):
legline.set_picker(True) ## Habilita la selección en la línea de la leyenda.
lined[legline] = origline
Definir la función del evento de selección
Definiremos la función del evento de selección que cambiará la visibilidad de la línea original correspondiente a la línea proxy de la leyenda.
def on_pick(event):
## En el evento de selección, encontrar la línea original correspondiente a la
## línea proxy de la leyenda y cambiar su visibilidad.
legline = event.artist
origline = lined[legline]
visible = not origline.get_visible()
origline.set_visible(visible)
## Cambiar la transparencia de la línea en la leyenda, para que podamos ver
## qué líneas se han alternado.
legline.set_alpha(1.0 si visible else 0.2)
fig.canvas.draw()
Conectar la función del evento de selección a la superficie de dibujo
Conectaremos la función del evento de selección a la superficie de dibujo.
fig.canvas.mpl_connect('pick_event', on_pick)
Mostrar la gráfica
Mostraremos la gráfica utilizando Matplotlib.
plt.show()
Resumen
En este laboratorio, aprendimos cómo habilitar la selección en la leyenda para alternar la línea original encendida y apagada utilizando Python y Matplotlib. Creamos una figura y ejes, preparamos los datos, creamos las líneas y la leyenda, asignamos las líneas de la leyenda a las líneas originales, definimos la función del evento de selección, conectamos la función del evento de selección a la superficie de dibujo y mostramos la gráfica.