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.