Mausinteraktion mit Matplotlib-Plot

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 Lab wird ein Beispiel gezeigt, wie man mit der Zeichenfläche interagiert, indem man mit Hilfe der Matplotlib-Bibliothek in Python auf Bewegungs- und Klickereignisse reagiert. Matplotlib ist eine Datenvisualisierungsbibliothek, die es Benutzern ermöglicht, statische, animierte und interaktive Visualisierungen in Python zu erstellen.

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 den Jupyter Notebook-Access für die Übung zu erhalten.

Manchmal müssen Sie einige Sekunden warten, bis das Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund von Einschränkungen im Jupyter Notebook nicht automatisiert werden.

Wenn Sie während des Lernens Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback, und wir werden das Problem für Sie prompt beheben.

Erstellen eines Sinuswellenplots

Zunächst müssen wir einen Sinuswellenplot mit den Bibliotheken numpy und matplotlib erstellen.

import matplotlib.pyplot as plt
import numpy as np

t = np.arange(0.0, 1.0, 0.01)
s = np.sin(2 * np.pi * t)
fig, ax = plt.subplots()
ax.plot(t, s)

Mausbewegungsevent

Wir können uns an Mausbewegungsevents über die Methode motion_notify_event anmelden. In diesem Beispiel werden die x- und y-Koordinaten der Daten sowie die x- und y-Koordinaten der Pixel ausgegeben, wenn die Maus über dem Plot bewegt wird.

def on_move(event):
    if event.inaxes:
        print(f'data coords {event.xdata} {event.ydata},',
              f'pixel coords {event.x} {event.y}')

binding_id = plt.connect('motion_notify_event', on_move)

Mausklickerevent

Wir können uns an Mausklickerevents über die Methode button_press_event anmelden. In diesem Beispiel trennen wir den Callback für das Mausbewegungsevent, wenn die linke Maustaste gedrückt wird.

from matplotlib.backend_bases import MouseButton

def on_click(event):
    if event.button is MouseButton.LEFT:
        print('disconnecting callback')
        plt.disconnect(binding_id)

plt.connect('button_press_event', on_click)

Anzeigen des Plots

Schließlich müssen wir den Plot mit der show-Methode anzeigen.

plt.show()

Zusammenfassung

In diesem Lab wurde gezeigt, wie man mit einem Matplotlib-Plot mithilfe von Mausbewegung- und Mausklickerevents interagieren kann. Indem wir uns an diese Events anmelden, können wir verschiedene Aktionen ausführen, wie das Ausgeben der Koordinaten der Mauszeiger, das Trennen von Callbacks usw. Diese Technik kann hilfreich sein, um interaktive Visualisierungen in Python zu erstellen.