Introduction
Dans ce tutoriel, nous allons apprendre à créer des curseurs et à les utiliser pour contrôler la fréquence et l'amplitude d'une onde sinusoïdale. Nous utiliserons la bibliothèque Matplotlib pour créer un graphique de l'onde sinusoïdale et des curseurs. Les curseurs nous permettront de régler la fréquence et l'amplitude de l'onde sinusoïdale.
Conseils sur la VM
Une fois le démarrage de la VM terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Notebook pour accéder à Jupyter Notebook pour la pratique.
Parfois, vous devrez peut-être attendre quelques secondes pour que Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations de Jupyter Notebook.
Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez votre feedback après la session, et nous réglerons rapidement le problème pour vous.
Importation des bibliothèques
La première étape consiste à importer les bibliothèques nécessaires. Nous allons utiliser Matplotlib et NumPy.
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.widgets import Button, Slider
Définir la fonction d'onde sinusoïdale
Ensuite, nous allons définir la fonction qui générera notre onde sinusoïdale. La fonction prendra deux paramètres, amplitude et fréquence, et renverra l'onde sinusoïdale à un moment donné.
def f(t, amplitude, frequency):
return amplitude * np.sin(2 * np.pi * frequency * t)
Créer le graphique initial
Maintenant, nous allons créer le graphique initial de l'onde sinusoïdale. Nous allons définir les paramètres initiaux pour l'amplitude et la fréquence et tracer l'onde sinusoïdale en utilisant ces paramètres.
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]')
Créer les curseurs
Nous allons maintenant créer les curseurs qui nous permettront de régler la fréquence et l'amplitude de l'onde sinusoïdale. Nous créerons un curseur horizontal pour contrôler la fréquence et un curseur vertical pour contrôler l'amplitude.
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"
)
Créer la fonction de mise à jour
Nous allons maintenant créer la fonction qui mettra à jour l'onde sinusoïdale chaque fois que nous ajustons les curseurs. La fonction prendra les valeurs des curseurs d'amplitude et de fréquence et mettra à jour l'onde sinusoïdale en conséquence.
def update(val):
line.set_ydata(f(t, amp_slider.val, freq_slider.val))
fig.canvas.draw_idle()
Enregistrer la fonction de mise à jour avec les curseurs
Ensuite, nous enregistrerons la fonction de mise à jour avec chaque curseur de sorte que la fonction soit appelée chaque fois que nous ajustons les curseurs.
freq_slider.on_changed(update)
amp_slider.on_changed(update)
Créer le bouton de réinitialisation
Nous allons maintenant créer un bouton de réinitialisation qui remettra les curseurs à leurs valeurs initiales.
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)
Afficher le graphique
Enfin, nous allons afficher le graphique avec les curseurs et le bouton de réinitialisation.
plt.show()
Sommaire
Dans ce tutoriel, nous avons appris à créer des curseurs et à les utiliser pour contrôler la fréquence et l'amplitude d'une onde sinusoïdale. Nous avons utilisé la bibliothèque Matplotlib pour créer un graphique de l'onde sinusoïdale et des curseurs. Nous avons créé un curseur horizontal pour contrôler la fréquence et un curseur vertical pour contrôler l'amplitude. Nous avons également créé un bouton de réinitialisation qui remet les curseurs à leurs valeurs initiales.