Visualisation des ondes sinusoïdales avec des boutons radio dans Matplotlib

PythonPythonBeginner
Pratiquer maintenant

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

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Les boutons radio sont un type d'élément d'entrée qui permet aux utilisateurs de sélectionner une option parmi un groupe d'options prédéfinies. Dans ce laboratoire, nous utiliserons la bibliothèque matplotlib pour créer une visualisation avec des boutons radio qui permettent à l'utilisateur de choisir entre différents ondes sinusoïdales à afficher dans le graphique.

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 Carnet de notes pour accéder au carnet Jupyter pour la pratique.

Parfois, vous devrez peut-être attendre quelques secondes pour que le carnet Jupyter ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limites du carnet Jupyter.

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ésoudrons rapidement le problème pour vous.

Importation des bibliothèques requises

Nous commencerons par importer les bibliothèques requises pour ce laboratoire - numpy et matplotlib.

import matplotlib.pyplot as plt
import numpy as np

from matplotlib.widgets import RadioButtons

Création des données

Ensuite, nous allons créer les données qui seront utilisées dans le graphique. Nous allons créer trois ondes sinusoïdales différentes avec des fréquences différentes en utilisant la bibliothèque 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)

Création du graphique et des boutons radio

Maintenant, nous allons créer le graphique et les boutons radio. Nous utiliserons la fonction subplots() pour créer le graphique et la fonction RadioButtons() pour créer les boutons radio.

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]})

Ajout de fonctionnalité aux boutons radio

Nous allons maintenant ajouter une fonctionnalité aux boutons radio en utilisant la fonction on_clicked(). Nous allons définir deux fonctions - hzfunc() et colorfunc() - qui seront appelées lorsque les boutons radio sont cliqués.

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)

Affichage du graphique

Enfin, nous allons afficher le graphique en utilisant la fonction show().

plt.show()

Résumé

Dans ce laboratoire, nous avons appris à créer une visualisation avec des boutons radio à l'aide de la bibliothèque matplotlib. Nous avons utilisé des boutons radio pour permettre à l'utilisateur de choisir entre différentes ondes sinusoïdales à afficher dans le graphique. Nous avons également ajouté une fonctionnalité aux boutons radio en définissant des fonctions qui étaient appelées lorsque les boutons étaient cliqués. Dans l'ensemble, ce laboratoire a démontré comment les boutons radio peuvent être utilisés pour créer des visualisations interactives qui permettent aux utilisateurs d'explorer différents aspects des données.