Interacción del mouse con un gráfico de Matplotlib

Beginner

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

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.