Visualização de Onda Senoidal com Botões de Rádio Matplotlib

Beginner

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

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.