Interação do Mouse com Gráficos Matplotlib

Beginner

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

Introdução

Este laboratório demonstra um exemplo de como interagir com a tela de plotagem conectando-se a eventos de movimento e clique usando a biblioteca Matplotlib em Python. Matplotlib é uma biblioteca de visualização de dados que permite aos usuários criar visualizações estáticas, animadas e interativas em Python.

Dicas da VM

Após a inicialização da VM, clique no canto superior esquerdo para mudar para a aba Notebook para acessar o Jupyter Notebook para praticar.

Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão, e resolveremos o problema prontamente para você.

Criando um Gráfico de Onda Senoidal

Primeiramente, precisamos criar um gráfico de onda senoidal usando as bibliotecas numpy e 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 Movimento do Mouse

Podemos nos conectar aos eventos de movimento do mouse usando o método motion_notify_event. Neste exemplo, estamos imprimindo as coordenadas de dados x e y e as coordenadas de pixel x e y quando o mouse se move sobre o 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 Clique do Mouse

Podemos nos conectar aos eventos de clique do mouse usando o método button_press_event. Neste exemplo, estamos desconectando o callback do evento de movimento do mouse quando o botão esquerdo do mouse é clicado.

from matplotlib.backend_bases import MouseButton

def on_click(event):
    if event.button is MouseButton.LEFT:
        print('disconnecting callback')
        plt.disconnect(binding_id)

plt.connect('button_press_event', on_click)

Exibindo o Gráfico

Finalmente, precisamos exibir o gráfico usando o método show.

plt.show()

Resumo

Este laboratório demonstrou como interagir com um gráfico Matplotlib usando eventos de movimento e clique do mouse. Ao conectar-se a esses eventos, podemos realizar várias ações, como imprimir as coordenadas do ponteiro do mouse, desconectar callbacks, etc. Essa técnica pode ser útil para criar visualizações interativas em Python.