Definir Cursor Alternativo no Matplotlib

Beginner

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

Introdução

Este laboratório irá guiá-lo sobre como definir um cursor alternativo em uma tela de figura usando Matplotlib. O cursor alternativo pode ser qualquer um dos cursores disponíveis nas ferramentas de backend do Matplotlib.

Dicas da VM

Após a inicialização da VM, clique no canto superior esquerdo para mudar para a aba Notebook e 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ê.

Importar as bibliotecas necessárias

Primeiro, precisamos importar as bibliotecas necessárias. Usaremos matplotlib.pyplot e matplotlib.backend_tools.

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

Criar uma figura e definir cursores alternativos

Em seguida, criamos uma figura e definimos os cursores alternativos para cada subplot usando um loop. Também adicionamos texto a cada subplot para indicar o cursor que está sendo usado.

fig, axs = plt.subplots(len(Cursors), figsize=(6, len(Cursors) + 0.5), gridspec_kw={'hspace': 0})
fig.suptitle('Passe o mouse sobre um Axes para ver os Cursors alternativos')

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

Definir o cursor ao passar o mouse

Precisamos definir o cursor para o cursor alternativo quando o usuário passa o mouse sobre um subplot. Conseguimos isso usando o evento motion_notify_event e a função 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)

Exibir a figura

Finalmente, exibimos a figura usando a função show().

plt.show()

Resumo

Neste laboratório, aprendemos como definir um cursor alternativo em uma tela de figura usando Matplotlib. Criamos uma figura e definimos os cursores alternativos para cada subplot e, em seguida, definimos o cursor para o cursor alternativo quando o usuário passa o mouse sobre um subplot. Em seguida, exibimos a figura.