Introdução
Botões de rádio são um tipo de elemento de entrada que permite aos usuários selecionar uma opção de um grupo de opções predefinidas. Neste laboratório, usaremos a biblioteca matplotlib para criar uma visualização com botões de rádio que permitem ao usuário escolher entre diferentes ondas senoidais a serem exibidas no gráfico.
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
Começaremos importando as bibliotecas necessárias para este laboratório - numpy e matplotlib.
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.widgets import RadioButtons
Criar Dados
Em seguida, criaremos os dados que serão usados no gráfico. Criaremos três diferentes ondas senoidais com diferentes frequências usando a biblioteca numpy.
t = np.arange(0.0, 2.0, 0.01)
s0 = np.sin(2*np.pi*t)
s1 = np.sin(4*np.pi*t)
s2 = np.sin(8*np.pi*t)
Criar o Gráfico e os Botões de Rádio
Agora, criaremos o gráfico e os botões de rádio. Usaremos a função subplots() para criar o gráfico e a função RadioButtons() para criar os botões de rádio.
fig, ax = plt.subplots()
l, = ax.plot(t, s0, lw=2, color='red')
fig.subplots_adjust(left=0.3)
axcolor = 'lightgoldenrodyellow'
rax = fig.add_axes([0.05, 0.7, 0.15, 0.15], facecolor=axcolor)
radio = RadioButtons(rax, ('1 Hz', '2 Hz', '4 Hz'),
label_props={'color': 'cmy', 'fontsize': [12, 14, 16]},
radio_props={'s': [16, 32, 64]})
Adicionar Funcionalidade aos Botões de Rádio
Agora, adicionaremos funcionalidade aos botões de rádio usando a função on_clicked(). Definiremos duas funções - hzfunc() e colorfunc() - que serão chamadas quando os botões de rádio forem clicados.
def hzfunc(label):
hzdict = {'1 Hz': s0, '2 Hz': s1, '4 Hz': s2}
ydata = hzdict[label]
l.set_ydata(ydata)
fig.canvas.draw()
radio.on_clicked(hzfunc)
rax = fig.add_axes([0.05, 0.4, 0.15, 0.15], facecolor=axcolor)
radio2 = RadioButtons(
rax, ('red', 'blue', 'green'),
label_props={'color': ['red', 'blue', 'green']},
radio_props={
'facecolor': ['red', 'blue', 'green'],
'edgecolor': ['darkred', 'darkblue', 'darkgreen'],
})
def colorfunc(label):
l.set_color(label)
fig.canvas.draw()
radio2.on_clicked(colorfunc)
rax = fig.add_axes([0.05, 0.1, 0.15, 0.15], facecolor=axcolor)
radio3 = RadioButtons(rax, ('-', '--', '-.', ':'))
def stylefunc(label):
l.set_linestyle(label)
fig.canvas.draw()
radio3.on_clicked(stylefunc)
Exibir o Gráfico
Finalmente, exibiremos o gráfico usando a função show().
plt.show()
Resumo
Neste laboratório, aprendemos como criar uma visualização com botões de rádio usando a biblioteca matplotlib. Usamos botões de rádio para permitir que o usuário escolha entre diferentes ondas senoidais a serem exibidas no gráfico. Também adicionamos funcionalidade aos botões de rádio, definindo funções que foram chamadas quando os botões foram clicados. No geral, este laboratório demonstrou como os botões de rádio podem ser usados para criar visualizações interativas que permitem aos usuários explorar diferentes aspectos dos dados.