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.