Tracé interactif avec zone de texte

Beginner

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

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.