Interacción del mouse con un gráfico de 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 demuestra un ejemplo de cómo interactuar con el lienzo de trazado mediante la conexión a los eventos de movimiento y clic utilizando la librería Matplotlib en Python. Matplotlib es una librería de visualización de datos que permite a los usuarios crear visualizaciones estáticas, animadas e interactivas en Python.

Consejos sobre la VM

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

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

Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje su retroalimentación después de la sesión y resolveremos rápidamente el problema para usted.

Creando un gráfico de onda senoidal

En primer lugar, necesitamos crear un gráfico de onda senoidal utilizando las librerías numpy y matplotlib.

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)

Evento de movimiento del mouse

Podemos conectarnos a los eventos de movimiento del mouse utilizando el método motion_notify_event. En este ejemplo, estamos imprimiendo las coordenadas de datos x e y y las coordenadas de píxeles x e y cuando el mouse se mueve sobre el gráfico.

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)

Evento de clic del mouse

Podemos conectarnos a los eventos de clic del mouse utilizando el método button_press_event. En este ejemplo, estamos desconectando la devolución de llamada del evento de movimiento del mouse cuando se hace clic con el botón izquierdo del mouse.

from matplotlib.backend_bases import MouseButton

def on_click(event):
    if event.button is MouseButton.LEFT:
        print('desconectando devolución de llamada')
        plt.disconnect(binding_id)

plt.connect('button_press_event', on_click)

Mostrando el gráfico

Finalmente, necesitamos mostrar el gráfico utilizando el método show.

plt.show()

Resumen

Esta práctica demostró cómo interactuar con un gráfico de Matplotlib utilizando eventos de movimiento y clic del mouse. Al conectarse a estos eventos, podemos realizar diversas acciones como imprimir las coordenadas del puntero del mouse, desconectar devoluciones de llamada, etc. Esta técnica puede ser útil para crear visualizaciones interactivas en Python.