Matplotlib Scroll Event

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 führen wir Sie Schritt für Schritt durch den Prozess, wie man das Scrollereignis in Matplotlib verwendet. Das Scrollereignis kann verwendet werden, um durch 2D-Schnitte von 3D-Daten zu navigieren.

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 öffnen.

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 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.

Importieren der erforderlichen Bibliotheken

Zunächst müssen wir die erforderlichen Bibliotheken importieren, die Matplotlib und NumPy umfassen.

import matplotlib.pyplot as plt
import numpy as np

Daten erstellen

Wir werden 3D-Daten mit der ogrid-Funktion von NumPy erstellen.

x, y, z = np.ogrid[-10:10:100j, -10:10:100j, 1:10:20j]
X = np.sin(x * y * z) / (x * y * z)

Erstellen der IndexTracker-Klasse

Die IndexTracker-Klasse wird den aktuellen Schnittindex verfolgen und das Diagramm entsprechend aktualisieren.

class IndexTracker:
    def __init__(self, ax, X):
        self.index = 0
        self.X = X
        self.ax = ax
        self.im = ax.imshow(self.X[:, :, self.index])
        self.update()

    def on_scroll(self, event):
        increment = 1 if event.button == 'up' else -1
        max_index = self.X.shape[-1] - 1
        self.index = np.clip(self.index + increment, 0, max_index)
        self.update()

    def update(self):
        self.im.set_data(self.X[:, :, self.index])
        self.ax.set_title(
            f'Use scroll wheel to navigate\nindex {self.index}')
        self.im.axes.figure.canvas.draw()

Erstellen des Diagramms und Verbinden des Scrollereignisses

Wir werden das Diagramm mit der subplots-Funktion von Matplotlib erstellen und das erstellte IndexTracker-Objekt an sie übergeben. Anschließend verbinden wir das Scrollereignis mit der Figurcanvas mit mpl_connect.

fig, ax = plt.subplots()
tracker = IndexTracker(ax, X)

fig.canvas.mpl_connect('scroll_event', tracker.on_scroll)
plt.show()

Zusammenfassung

In diesem Lab haben wir gelernt, wie man das Scrollereignis in Matplotlib verwendet, um durch 2D-Schnitte von 3D-Daten zu navigieren. Wir haben eine IndexTracker-Klasse erstellt, um den aktuellen Schnittindex zu verfolgen und das Diagramm entsprechend zu aktualisieren. Schließlich haben wir das Diagramm erstellt und das Scrollereignis mit der Figurcanvas verbunden.