Usar botones de verificación en 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

Esta práctica demostrará cómo utilizar botones de verificación en Python Matplotlib. Los botones de verificación permiten a los usuarios activar y desactivar elementos visuales con botones de verificación, similar a las casillas de verificación. Utilizaremos la función CheckButtons para crear un gráfico con tres diferentes ondas senoidales y la capacidad de elegir qué ondas se muestran con los botones de verificación.

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 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

Comenzaremos importando las bibliotecas necesarias. Necesitamos numpy para generar los datos y matplotlib para crear el gráfico.

import matplotlib.pyplot as plt
import numpy as np
from matplotlib.widgets import CheckButtons

Generar datos

A continuación, generaremos los datos para nuestro gráfico. Crearemos tres ondas senoidales con diferentes frecuencias utilizando numpy.

t = np.arange(0.0, 2.0, 0.01)
s0 = np.sin(2*np.pi*t)
s1 = np.sin(4*np.pi*t)
s2 = np.sin(6*np.pi*t)

Crear el gráfico

Ahora, crearemos el gráfico utilizando matplotlib. Trazaremos las tres ondas senoidales en el mismo gráfico y estableceremos la visibilidad de la primera onda en False ya que queremos comenzar con ella oculta.

fig, ax = plt.subplots()
l0, = ax.plot(t, s0, visible=False, lw=2, color='black', label='1 Hz')
l1, = ax.plot(t, s1, lw=2, color='red', label='2 Hz')
l2, = ax.plot(t, s2, lw=2, color='green', label='3 Hz')
fig.subplots_adjust(left=0.2)

Agregar botones de verificación

Ahora agregaremos los botones de verificación a nuestro gráfico utilizando la función CheckButtons. Pasaremos las líneas trazadas como etiquetas y estableceremos la visibilidad inicial de cada línea. También ajustaremos las propiedades de los botones de verificación para que coincidan con los colores de las líneas trazadas.

lines_by_label = {l.get_label(): l for l in [l0, l1, l2]}
line_colors = [l.get_color() for l in lines_by_label.values()]

rax = fig.add_axes([0.05, 0.4, 0.1, 0.15])
check = CheckButtons(
    ax=rax,
    labels=lines_by_label.keys(),
    actives=[l.get_visible() for l in lines_by_label.values()],
    label_props={'color': line_colors},
    frame_props={'edgecolor': line_colors},
    check_props={'facecolor': line_colors},
)

Definir función de devolución de llamada

Necesitamos definir una función de devolución de llamada para los botones de verificación. Esta función se llamará cada vez que se haga clic en un botón de verificación. Utilizaremos esta función para alternar la visibilidad de la línea correspondiente en el gráfico.

def callback(label):
    ln = lines_by_label[label]
    ln.set_visible(not ln.get_visible())
    ln.figure.canvas.draw_idle()

check.on_clicked(callback)

Mostrar el gráfico

Finalmente, mostraremos el gráfico utilizando la función show().

plt.show()

Resumen

En este laboratorio, aprendimos cómo utilizar botones de verificación en Matplotlib de Python. Creamos un gráfico con tres diferentes ondas senoidales y la capacidad de elegir qué ondas se muestran con los botones de verificación. Utilizamos la función CheckButtons para crear los botones y definimos una función de devolución de llamada para alternar la visibilidad de la línea correspondiente en el gráfico.