Visualización de ondas senoidales con botones de opción de Matplotlib

Beginner

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

Introducción

Las casillas de opción son un tipo de elemento de entrada que permite a los usuarios seleccionar una opción de un grupo de opciones predefinidas. En este laboratorio, usaremos la biblioteca matplotlib para crear una visualización con casillas de opción que permitan al usuario elegir entre diferentes ondas senoidales que se mostrarán en la 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 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 su retroalimentación después de la sesión y resolveremos el problema para usted de inmediato.

Importar las bibliotecas necesarias

Comenzaremos importando las bibliotecas necesarias para este laboratorio: numpy y matplotlib.

import matplotlib.pyplot as plt
import numpy as np

from matplotlib.widgets import RadioButtons

Crear datos

A continuación, crearemos los datos que se utilizarán en la gráfica. Crearemos tres diferentes ondas senoidales con diferentes frecuencias utilizando la biblioteca 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(8*np.pi*t)

Crear la gráfica y las casillas de opción

Ahora, crearemos la gráfica y las casillas de opción. Usaremos la función subplots() para crear la gráfica y la función RadioButtons() para crear las casillas de opción.

fig, ax = plt.subplots()
l, = ax.plot(t, s0, lw=2, color='red')
fig.subplots_adjust(left=0.3)

axcolor = 'lightgoldenrodyellow'
rax = fig.add_axes([0.05, 0.7, 0.15, 0.15], facecolor=axcolor)
radio = RadioButtons(rax, ('1 Hz', '2 Hz', '4 Hz'),
                     label_props={'color': 'cmy', 'fontsize': [12, 14, 16]},
                     radio_props={'s': [16, 32, 64]})

Agregar funcionalidad a las casillas de opción

Ahora, agregaremos funcionalidad a las casillas de opción usando la función on_clicked(). Definiremos dos funciones: hzfunc() y colorfunc() que se llamarán cuando se haga clic en las casillas de opción.

def hzfunc(label):
    hzdict = {'1 Hz': s0, '2 Hz': s1, '4 Hz': s2}
    ydata = hzdict[label]
    l.set_ydata(ydata)
    fig.canvas.draw()
radio.on_clicked(hzfunc)

rax = fig.add_axes([0.05, 0.4, 0.15, 0.15], facecolor=axcolor)
radio2 = RadioButtons(
    rax, ('red', 'blue', 'green'),
    label_props={'color': ['red', 'blue', 'green']},
    radio_props={
        'facecolor': ['red', 'blue', 'green'],
        'edgecolor': ['darkred', 'darkblue', 'darkgreen'],
    })


def colorfunc(label):
    l.set_color(label)
    fig.canvas.draw()
radio2.on_clicked(colorfunc)

rax = fig.add_axes([0.05, 0.1, 0.15, 0.15], facecolor=axcolor)
radio3 = RadioButtons(rax, ('-', '--', '-.', ':'))


def stylefunc(label):
    l.set_linestyle(label)
    fig.canvas.draw()
radio3.on_clicked(stylefunc)

Mostrar la gráfica

Finalmente, mostraremos la gráfica usando la función show().

plt.show()

Resumen

En este laboratorio, aprendimos cómo crear una visualización con botones de opción usando la biblioteca matplotlib. Utilizamos botones de opción para permitir que el usuario eligiera entre diferentes ondas senoidales que se mostrarían en la gráfica. También agregamos funcionalidad a los botones de opción definiendo funciones que se llamaban cuando se hacía clic en los botones. En general, este laboratorio demostró cómo los botones de opción se pueden utilizar para crear visualizaciones interactivas que permiten a los usuarios explorar diferentes aspectos de los datos.