Gráficos Interactivos con Cuadro de Texto

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 tutorial, aprenderemos cómo crear una trama interactiva con un cuadro de texto utilizando Matplotlib. El widget de Cuadro de Texto permite a los usuarios proporcionar una entrada de texto, que actualiza la trama en tiempo real.

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 se puede automatizar 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 resolveremos rápidamente el problema para usted.

Importar las bibliotecas necesarias

Primero, necesitamos importar las bibliotecas necesarias. Utilizaremos NumPy y Matplotlib para crear la trama y el widget de Cuadro de Texto.

import matplotlib.pyplot as plt
import numpy as np
from matplotlib.widgets import TextBox

Crear la trama inicial

A continuación, creamos la trama inicial que se actualizará en función de la entrada del usuario. En este ejemplo, creamos una trama de una función con t como variable independiente.

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)

Definir la función de envío

Definimos la función submit que se llamará cuando el usuario envíe la entrada de texto. Esta función actualiza la función trazada en función de la entrada del usuario.

def submit(expression):
    """
    Actualiza la función trazada a la nueva *expresión* matemática.

    *expresión* es una cadena que utiliza "t" como variable independiente, por ejemplo
    "t ** 3".
    """
    ydata = eval(expression, {'np': np}, {'t': t})
    l.set_ydata(ydata)
    ax.relim()
    ax.autoscale_view()
    plt.draw()

Crear el widget de Cuadro de Texto

Creamos el widget de Cuadro de Texto y lo agregamos a la figura. El método on_submit se utiliza para desencadenar la función submit cuando el usuario presiona la tecla Enter en el cuadro de texto o sale del cuadro de texto. También establecemos el valor inicial del widget de Cuadro de Texto en 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.

Mostrar la trama

Finalmente, mostramos la trama al usuario.

plt.show()

Resumen

En este tutorial, aprendimos cómo crear una trama interactiva con un cuadro de texto utilizando Matplotlib. Creamos una trama inicial, definimos una función submit que actualiza la trama, creamos un widget de Cuadro de Texto y mostramos la trama al usuario. Con este conocimiento, puedes crear tus propias tramasyendo interactivas con entrada del usuario.