Introdução
Neste laboratório, aprenderemos como habilitar a seleção na legenda para alternar a linha original ligada e desligada usando Python Matplotlib.
Dicas para a 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
Primeiramente, precisamos importar as bibliotecas necessárias, que são NumPy e Matplotlib.
import matplotlib.pyplot as plt
import numpy as np
Preparar os Dados
Geraremos duas ondas senoidais com diferentes frequências usando NumPy.
t = np.linspace(0, 1)
y1 = 2 * np.sin(2*np.pi*t)
y2 = 4 * np.sin(2*np.pi*2*t)
Criar Figura e Eixos
Criaremos uma figura e eixos usando Matplotlib e definiremos o título do gráfico.
fig, ax = plt.subplots()
ax.set_title('Click on legend line to toggle line on/off')
Criar Linhas e Legenda
Criaremos duas linhas e uma legenda usando Matplotlib.
line1, = ax.plot(t, y1, lw=2, label='1 Hz')
line2, = ax.plot(t, y2, lw=2, label='2 Hz')
leg = ax.legend(fancybox=True, shadow=True)
Mapear Linhas da Legenda para as Linhas Originais
Mapearemos as linhas da legenda para as linhas originais usando um dicionário.
lines = [line1, line2]
lined = {} ## Will map legend lines to original lines.
for legline, origline in zip(leg.get_lines(), lines):
legline.set_picker(True) ## Enable picking on the legend line.
lined[legline] = origline
Definir a Função de Evento 'On Pick'
Definiremos a função de evento 'on pick' que alternará a visibilidade da linha original correspondente à linha proxy da legenda.
def on_pick(event):
## On the pick event, find the original line corresponding to the legend
## proxy line, and toggle its visibility.
legline = event.artist
origline = lined[legline]
visible = not origline.get_visible()
origline.set_visible(visible)
## Change the alpha on the line in the legend, so we can see what lines
## have been toggled.
legline.set_alpha(1.0 if visible else 0.2)
fig.canvas.draw()
Conectar a Função de Evento 'On Pick' ao Canvas
Conectaremos a função de evento 'on pick' ao canvas.
fig.canvas.mpl_connect('pick_event', on_pick)
Mostrar o Gráfico
Mostraremos o gráfico usando Matplotlib.
plt.show()
Resumo
Neste laboratório, aprendemos como habilitar a seleção (picking) na legenda para alternar a linha original ligada e desligada usando Python Matplotlib. Criamos uma figura e eixos, preparamos dados, criamos linhas e legenda, mapeamos as linhas da legenda para as linhas originais, definimos a função de evento 'on pick', conectamos a função de evento 'on pick' ao canvas e mostramos o gráfico.