Introdução
Neste tutorial, aprenderemos como criar um gráfico interativo com uma caixa de texto usando Matplotlib. O widget Textbox permite que os usuários forneçam entrada de texto, que atualiza o gráfico em tempo real.
Dicas para a VM
Após a inicialização da VM, clique no canto superior esquerdo para mudar para a aba Notebook para 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. Usaremos NumPy e Matplotlib para criar o gráfico e o widget Textbox.
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.widgets import TextBox
Criar o Gráfico Inicial
Em seguida, criamos o gráfico inicial que será atualizado com base na entrada do usuário. Neste exemplo, criamos um gráfico de uma função com t como a variável independente.
fig, ax = plt.subplots()
fig.subplots_adjust(bottom=0.2)
t = np.arange(-2.0, 2.0, 0.001)
l, = ax.plot(t, np.zeros_like(t), lw=2)
Definir a Função Submit
Definimos a função submit que será chamada quando o usuário enviar a entrada de texto. Esta função atualiza a função plotada com base na entrada do usuário.
def submit(expression):
"""
Atualiza a função plotada para a nova *expressão* matemática.
*expression* é uma string usando "t" como sua variável independente, por exemplo,
"t ** 3".
"""
ydata = eval(expression, {'np': np}, {'t': t})
l.set_ydata(ydata)
ax.relim()
ax.autoscale_view()
plt.draw()
Criar o Widget Textbox
Criamos o widget Textbox e o adicionamos à figura. O método on_submit é usado para acionar a função submit quando o usuário pressiona Enter no textbox ou sai do textbox. Também definimos o valor inicial do widget Textbox para t ** 2.
axbox = fig.add_axes([0.1, 0.05, 0.8, 0.075])
text_box = TextBox(axbox, "Evaluate", textalignment="center")
text_box.on_submit(submit)
text_box.set_val("t ** 2") ## Trigger `submit` with the initial string.
Exibir o Plot
Finalmente, exibimos o plot para o usuário.
plt.show()
Resumo
Neste tutorial, aprendemos como criar um plot interativo com um textbox usando Matplotlib. Criamos um plot inicial, definimos uma função submit que atualiza o plot, criamos um widget Textbox e exibimos o plot para o usuário. Com este conhecimento, você pode criar seus próprios plots interativos com entrada do usuário.