Einführung
In diesem Tutorial lernen wir, wie man mithilfe von Matplotlib einen interaktiven Plot mit einem Textfeld erstellt. Das Textfeld-Widget ermöglicht es Benutzern, Text-Eingaben vorzunehmen, die den Plot in Echtzeit aktualisieren.
Tipps für die VM
Nachdem der VM-Start abgeschlossen ist, klicken Sie in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu nutzen.
Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund von Einschränkungen in Jupyter Notebook nicht automatisiert werden.
Wenn Sie bei der Lernphase Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback, und wir werden das Problem für Sie prompt beheben.
Importieren der erforderlichen Bibliotheken
Zunächst müssen wir die erforderlichen Bibliotheken importieren. Wir werden NumPy und Matplotlib verwenden, um den Plot und das Textfeld-Widget zu erstellen.
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.widgets import TextBox
Erstellen des Anfangsplots
Als nächstes erstellen wir den Anfangsplot, der sich basierend auf der Benutzereingabe aktualisieren wird. In diesem Beispiel erstellen wir einen Plot einer Funktion mit t als unabhängige Variable.
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)
Definieren der Submit-Funktion
Wir definieren die submit-Funktion, die aufgerufen wird, wenn der Benutzer die Text-Eingabe abgibt. Diese Funktion aktualisiert die geplottete Funktion basierend auf der Benutzereingabe.
def submit(expression):
"""
Update the plotted function to the new math *expression*.
*expression* is a string using "t" as its independent variable, e.g.
"t ** 3".
"""
ydata = eval(expression, {'np': np}, {'t': t})
l.set_ydata(ydata)
ax.relim()
ax.autoscale_view()
plt.draw()
Erstellen des Textfeld-Widgets
Wir erstellen das Textfeld-Widget und fügen es zur Figur hinzu. Die on_submit-Methode wird verwendet, um die submit-Funktion auszulösen, wenn der Benutzer in das Textfeld die Eingabetaste drückt oder das Textfeld verlässt. Wir setzen auch den Anfangswert des Textfeld-Widgets auf 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.
Zeige den Plot an
Schließlich zeigen wir den Plot an den Benutzer.
plt.show()
Zusammenfassung
In diesem Tutorial haben wir gelernt, wie man mit Matplotlib einen interaktiven Plot mit einem Textfeld erstellt. Wir haben einen Anfangsplot erstellt, eine submit-Funktion definiert, die den Plot aktualisiert, ein Textfeld-Widget erstellt und den Plot an den Benutzer angezeigt. Mit diesen Kenntnissen können Sie eigene interaktive Plots mit Benutzereingaben erstellen.