Deslizadores de ajuste 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

En este laboratorio, aprenderá a usar Matplotlib para crear deslizadores con valores discretos. Aprenderá a restringir los valores de un deslizador a un conjunto de valores permitidos y a ajustar los valores del deslizador a esos valores permitidos.

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 puede automatizarse 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 lo resolveremos rápidamente para usted.

Importar las bibliotecas necesarias

En este paso, importará las bibliotecas necesarias para este laboratorio. Usará Matplotlib para crear los deslizadores y NumPy para generar los datos que se graficarán.

import matplotlib.pyplot as plt
import numpy as np

from matplotlib.widgets import Button, Slider

Generar datos

En este paso, generará los datos que se graficarán. Creará una onda sinusoidal con una frecuencia de 3 Hz y una amplitud de 5.

t = np.arange(0.0, 1.0, 0.001)
a0 = 5
f0 = 3
s = a0 * np.sin(2 * np.pi * f0 * t)

Crear la figura y los ejes

En este paso, creará la figura y los ejes para la gráfica. También ajustará la posición de los ejes para dejar espacio para los deslizadores.

fig, ax = plt.subplots()
fig.subplots_adjust(bottom=0.25)
l, = ax.plot(t, s, lw=2)

ax_freq = fig.add_axes([0.25, 0.1, 0.65, 0.03])
ax_amp = fig.add_axes([0.25, 0.15, 0.65, 0.03])

Definir los valores permitidos para el deslizador de amplitud

En este paso, definirá los valores permitidos para el deslizador de amplitud. El deslizador de amplitud usará estos valores para ajustarse al valor permitido más cercano.

## define the values to use for snapping
allowed_amplitudes = np.concatenate([np.linspace(.1, 5, 100), [6, 7, 8, 9]])

Crear los deslizadores

En este paso, creará los deslizadores. Creará un deslizador para la amplitud y un deslizador para la frecuencia.

samp = Slider(
    ax_amp, "Amp", 0.1, 9.0,
    valinit=a0, valstep=allowed_amplitudes,
    color="green"
)

sfreq = Slider(
    ax_freq, "Freq", 0, 10*np.pi,
    valinit=2*np.pi, valstep=np.pi,
    initcolor='none'  ## Remove the line marking the valinit position.
)

Crear la función de actualización

En este paso, creará la función de actualización para los deslizadores. Esta función actualizará la gráfica cuando se cambien los valores de los deslizadores.

def update(val):
    amp = samp.val
    freq = sfreq.val
    l.set_ydata(amp*np.sin(2*np.pi*freq*t))
    fig.canvas.draw_idle()

Conectar los deslizadores a la función de actualización

En este paso, conectará los deslizadores a la función de actualización. Esto garantizará que la gráfica se actualice cada vez que se cambien los valores de los deslizadores.

sfreq.on_changed(update)
samp.on_changed(update)

Crear el botón de restablecimiento

En este paso, creará un botón de restablecimiento para los deslizadores. Cuando se haga clic en él, el botón de restablecimiento restablecerá los valores de los deslizadores a sus valores iniciales.

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

def reset(event):
    sfreq.reset()
    samp.reset()
button.on_clicked(reset)

Mostrar la gráfica

En este paso, mostrará la gráfica.

plt.show()

Resumen

En este laboratorio, aprendiste cómo usar Matplotlib para crear deslizadores con valores discretos. Aprendiste cómo restringir los valores de un deslizador a un conjunto de valores permitidos y hacer que los valores del deslizador se ajusten a esos valores permitidos. También aprendiste cómo crear un botón de restablecimiento para los deslizadores.