Interaktives Plotten mit Textfeld

PythonPythonBeginner
Jetzt üben

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

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

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.