Introduction
Dans ce tutoriel, nous allons apprendre à créer un graphique interactif avec une zone de texte à l'aide de Matplotlib. Le widget Textbox permet aux utilisateurs de fournir une entrée de texte, qui met à jour le graphique en temps réel.
Conseils sur la machine virtuelle
Une fois le démarrage de la machine virtuelle 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ésoudrons rapidement le problème pour vous.
Importation des bibliothèques requises
Tout d'abord, nous devons importer les bibliothèques nécessaires. Nous utiliserons NumPy et Matplotlib pour créer le graphique et le widget Textbox.
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.widgets import TextBox
Création du graphique initial
Ensuite, nous créons le graphique initial qui sera mis à jour en fonction de l'entrée de l'utilisateur. Dans cet exemple, nous créons un graphique d'une fonction avec t comme variable indépendante.
fig, ax = plt.subplots()
fig.subplots_adjust(bottom=0.2)
t = np.arange(-2.0, 2.0, 0.001)
l, = ax.plot(t, np.zeros_like(t), lw=2)
Définir la fonction de soumission
Nous définissons la fonction submit qui sera appelée lorsque l'utilisateur soumettra l'entrée de texte. Cette fonction met à jour la fonction tracée en fonction de l'entrée de l'utilisateur.
def submit(expression):
"""
Met à jour la fonction tracée avec la nouvelle expression mathématique *expression*.
*expression* est une chaîne de caractères utilisant "t" comme variable indépendante, par exemple
"t ** 3".
"""
ydata = eval(expression, {'np': np}, {'t': t})
l.set_ydata(ydata)
ax.relim()
ax.autoscale_view()
plt.draw()
Créer le widget de zone de texte
Nous créons le widget de zone de texte et l'ajoutons à la figure. La méthode on_submit est utilisée pour déclencher la fonction submit lorsque l'utilisateur appuie sur Entrée dans la zone de texte ou quitte la zone de texte. Nous définissons également la valeur initiale du widget de zone de texte sur t ** 2.
axbox = fig.add_axes([0.1, 0.05, 0.8, 0.075])
text_box = TextBox(axbox, "Evaluate", textalignment="center")
text_box.on_submit(submit)
text_box.set_val("t ** 2") ## Trigger `submit` with the initial string.
Afficher le graphique
Enfin, nous affichons le graphique à l'utilisateur.
plt.show()
Sommaire
Dans ce tutoriel, nous avons appris à créer un graphique interactif avec une zone de texte à l'aide de Matplotlib. Nous avons créé un graphique initial, défini une fonction submit qui met à jour le graphique, créé un widget de zone de texte et affiché le graphique à l'utilisateur. Avec ces connaissances, vous pouvez créer vos propres graphiques interactifs avec une entrée utilisateur.