Alternative Cursor in Matplotlib setzen

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 Ihnen gezeigt, wie Sie in Matplotlib einen alternativen Cursor auf einer Figurcanvas festlegen. Der alternative Cursor kann ein beliebiger der verfügbaren Cursor in den Matplotlib-Backend-Tools sein.

VM-Tipps

Nachdem die VM gestartet 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 der 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 matplotlib.pyplot und matplotlib.backend_tools verwenden.

import matplotlib.pyplot as plt
from matplotlib.backend_tools import Cursors

Erstellen einer Figur und Festlegen alternativer Cursor

Als nächstes erstellen wir eine Figur und legen für jedes Subplot mit einer Schleife die alternativen Cursor fest. Wir fügen auch Text zu jedem Subplot hinzu, um den verwendeten Cursor anzuzeigen.

fig, axs = plt.subplots(len(Cursors), figsize=(6, len(Cursors) + 0.5), gridspec_kw={'hspace': 0})
fig.suptitle('Hover over an Axes to see alternate Cursors')

for cursor, ax in zip(Cursors, axs):
    ax.cursor_to_use = cursor
    ax.text(0.5, 0.5, cursor.name,
            horizontalalignment='center', verticalalignment='center')
    ax.set(xticks=[], yticks=[])

Setzen des Cursors beim Hovern

Wir müssen den Cursor auf den alternativen Cursor setzen, wenn der Benutzer über einem Subplot hoviert. Dies erreichen wir mit dem Ereignis motion_notify_event und der Funktion set_cursor().

def hover(event):
    if fig.canvas.widgetlock.locked():
        ## Don't do anything if the zoom/pan tools have been enabled.
        return

    fig.canvas.set_cursor(
        event.inaxes.cursor_to_use if event.inaxes else Cursors.POINTER)

fig.canvas.mpl_connect('motion_notify_event', hover)

Anzeigen der Figur

Schließlich zeigen wir die Figur mit der Funktion show() an.

plt.show()

Zusammenfassung

In diesem Lab haben wir gelernt, wie man mit Matplotlib einen alternativen Cursor auf einer Figurcanvas setzt. Wir haben eine Figur erstellt und die alternativen Cursor für jedes Subplot festgelegt, und dann den Cursor auf den alternativen Cursor gesetzt, wenn der Benutzer über einem Subplot hoviert. Anschließend haben wir die Figur angezeigt.