Introdução
Neste tutorial, aprenderemos como criar sliders (controles deslizantes) e usá-los para controlar a frequência e a amplitude de uma onda senoidal. Usaremos a biblioteca Matplotlib para criar um gráfico da onda senoidal e dos sliders. Os sliders nos permitirão ajustar a frequência e a amplitude da onda senoidal.
Dicas para a VM (Máquina Virtual)
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 Bibliotecas
O primeiro passo é importar as bibliotecas necessárias. Usaremos Matplotlib e NumPy.
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.widgets import Button, Slider
Definir a Função da Onda Senoidal
Em seguida, definiremos a função que gerará nossa onda senoidal. A função receberá dois parâmetros, amplitude e frequência, e retornará a onda senoidal em um determinado tempo.
def f(t, amplitude, frequency):
return amplitude * np.sin(2 * np.pi * frequency * t)
Criar o Gráfico Inicial
Agora, criaremos o gráfico inicial da onda senoidal. Definiremos os parâmetros iniciais para a amplitude e frequência e plotaremos a onda senoidal usando esses parâmetros.
t = np.linspace(0, 1, 1000)
init_amplitude = 5
init_frequency = 3
fig, ax = plt.subplots()
line, = ax.plot(t, f(t, init_amplitude, init_frequency), lw=2)
ax.set_xlabel('Time [s]')
Criar os Sliders (Barras Deslizantes)
Agora criaremos os sliders (barras deslizantes) que nos permitirão ajustar a frequência e a amplitude da onda senoidal. Criaremos um slider horizontal para controlar a frequência e um slider vertical para controlar a amplitude.
fig.subplots_adjust(left=0.25, bottom=0.25)
axfreq = fig.add_axes([0.25, 0.1, 0.65, 0.03])
freq_slider = Slider(
ax=axfreq,
label='Frequency [Hz]',
valmin=0.1,
valmax=30,
valinit=init_frequency,
)
axamp = fig.add_axes([0.1, 0.25, 0.0225, 0.63])
amp_slider = Slider(
ax=axamp,
label="Amplitude",
valmin=0,
valmax=10,
valinit=init_amplitude,
orientation="vertical"
)
Criar a Função de Atualização
Agora criaremos a função que atualizará a onda senoidal toda vez que ajustarmos os sliders. A função receberá os valores dos sliders de amplitude e frequência e atualizará a onda senoidal de acordo.
def update(val):
line.set_ydata(f(t, amp_slider.val, freq_slider.val))
fig.canvas.draw_idle()
Registrar a Função de Atualização com os Sliders
Em seguida, registraremos a função de atualização com cada slider para que a função seja chamada toda vez que ajustarmos os sliders.
freq_slider.on_changed(update)
amp_slider.on_changed(update)
Criar o Botão de Reset
Agora criaremos um botão de reset que irá redefinir os sliders para seus valores iniciais.
resetax = fig.add_axes([0.8, 0.025, 0.1, 0.04])
button = Button(resetax, 'Reset', hovercolor='0.975')
def reset(event):
freq_slider.reset()
amp_slider.reset()
button.on_clicked(reset)
Mostrar o Gráfico
Finalmente, mostraremos o gráfico com os sliders e o botão de reset.
plt.show()
Resumo
Neste tutorial, aprendemos como criar sliders e usá-los para controlar a frequência e a amplitude de uma onda senoidal. Usamos a biblioteca Matplotlib para criar um gráfico da onda senoidal e os sliders. Criamos um slider horizontal para controlar a frequência e um slider vertical para controlar a amplitude. Também criamos um botão de reset que redefine os sliders para seus valores iniciais.