Crear deslizadores de onda sinusoidal con Matplotlib

MatplotlibMatplotlibBeginner
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

En este tutorial, aprenderemos cómo crear deslizadores y utilizarlos para controlar la frecuencia y la amplitud de una onda sinusoidal. Utilizaremos la biblioteca Matplotlib para crear un gráfico de la onda sinusoidal y los deslizadores. Los deslizadores nos permitirán ajustar la frecuencia y la amplitud de la onda sinusoidal.

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 bibliotecas

El primer paso es importar las bibliotecas necesarias. Vamos a utilizar Matplotlib y NumPy.

import matplotlib.pyplot as plt
import numpy as np
from matplotlib.widgets import Button, Slider

Definir la función de la onda sinusoidal

A continuación, definiremos la función que generará nuestra onda sinusoidal. La función tomará dos parámetros, amplitud y frecuencia, y devolverá la onda sinusoidal en un momento dado.

def f(t, amplitude, frequency):
    return amplitude * np.sin(2 * np.pi * frequency * t)

Crear la gráfica inicial

Ahora, crearemos la gráfica inicial de la onda sinusoidal. Definiremos los parámetros iniciales para la amplitud y la frecuencia y graficaremos la onda sinusoidal utilizando esos parámetros.

t = np.linspace(0, 1, 1000)
init_amplitude = 5
init_frequency = 3

fig, ax = plt.subplots()
line, = ax.plot(t, f(t, init_amplitude, init_frequency), lw=2)
ax.set_xlabel('Time [s]')

Crear los deslizadores

Ahora crearemos los deslizadores que nos permitirán ajustar la frecuencia y la amplitud de la onda sinusoidal. Crearemos un deslizador horizontal para controlar la frecuencia y un deslizador vertical para controlar la amplitud.

fig.subplots_adjust(left=0.25, bottom=0.25)
axfreq = fig.add_axes([0.25, 0.1, 0.65, 0.03])
freq_slider = Slider(
    ax=axfreq,
    label='Frequency [Hz]',
    valmin=0.1,
    valmax=30,
    valinit=init_frequency,
)

axamp = fig.add_axes([0.1, 0.25, 0.0225, 0.63])
amp_slider = Slider(
    ax=axamp,
    label="Amplitude",
    valmin=0,
    valmax=10,
    valinit=init_amplitude,
    orientation="vertical"
)

Crear la función de actualización

Ahora crearemos la función que actualizará la onda sinusoidal cada vez que ajustemos los deslizadores. La función tomará los valores de los deslizadores de amplitud y frecuencia y actualizará la onda sinusoidal en consecuencia.

def update(val):
    line.set_ydata(f(t, amp_slider.val, freq_slider.val))
    fig.canvas.draw_idle()

Registrar la función de actualización con los deslizadores

A continuación, registraremos la función de actualización con cada deslizador para que la función se llame cada vez que ajustemos los deslizadores.

freq_slider.on_changed(update)
amp_slider.on_changed(update)

Crear el botón de restablecimiento

Ahora crearemos un botón de restablecimiento que restablecerá los deslizadores a sus valores iniciales.

resetax = fig.add_axes([0.8, 0.025, 0.1, 0.04])
button = Button(resetax, 'Reset', hovercolor='0.975')

def reset(event):
    freq_slider.reset()
    amp_slider.reset()
button.on_clicked(reset)

Mostrar el gráfico

Finalmente, mostraremos el gráfico con los deslizadores y el botón de restablecimiento.

plt.show()

Resumen

En este tutorial, aprendimos cómo crear deslizadores y utilizarlos para controlar la frecuencia y la amplitud de una onda sinusoidal. Utilizamos la biblioteca Matplotlib para crear un gráfico de la onda sinusoidal y los deslizadores. Creamos un deslizador horizontal para controlar la frecuencia y un deslizador vertical para controlar la amplitud. También creamos un botón de restablecimiento que restablece los deslizadores a sus valores iniciales.