Criação de Gráficos Interativos com Textbox

Beginner

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

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.