Establecer cursor alternativo en Matplotlib

PythonPythonBeginner
Practicar Ahora

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

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Esta práctica te guiará sobre cómo establecer un cursor alternativo en un lienzo de figura utilizando Matplotlib. El cursor alternativo puede ser cualquiera de los cursores disponibles en las herramientas del backend de Matplotlib.

Consejos sobre la VM

Una vez finalizada la inicialización de la VM, haz clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

En ocasiones, es posible que tengas que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tienes problemas durante el aprendizaje, no dudes en preguntar a Labby. Proporciona retroalimentación después de la sesión y resolveremos rápidamente el problema para ti.

Importar las bibliotecas necesarias

En primer lugar, necesitamos importar las bibliotecas requeridas. Utilizaremos matplotlib.pyplot y matplotlib.backend_tools.

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

Crear una figura y establecer cursores alternativos

A continuación, creamos una figura y establecemos los cursores alternativos para cada subtrama utilizando un bucle. También agregamos texto a cada subtrama para indicar el cursor que se está utilizando.

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=[])

Establecer el cursor al pasar el cursor

Debemos establecer el cursor al cursor alternativo cuando el usuario pasa el cursor sobre una subtrama. Lo conseguimos utilizando el evento motion_notify_event y la función 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)

Mostrar la figura

Finalmente, mostramos la figura utilizando la función show().

plt.show()

Resumen

En este laboratorio, hemos aprendido cómo establecer un cursor alternativo en un lienzo de figura utilizando Matplotlib. Creamos una figura y establecimos los cursores alternativos para cada subtrama, y luego establecimos el cursor al cursor alternativo cuando el usuario pasa el cursor sobre una subtrama. Luego mostramos la figura.