- Data Hackers Newsletter
- Posts
- Streamlit Python: como usar e criar apps dinâmicos
Streamlit Python: como usar e criar apps dinâmicos
Aprenda a integrar a biblioteca Streamlit em seu projeto Python e a desenvolver aplicações de visualização de dados em minutos
Transformar scripts Python em aplicativos web interativos nunca foi tão fácil! Neste post, você aprenderá a integrar a biblioteca Streamlit em seus projetos e a desenvolver Data Apps dinâmicos em questão de minutos. Com uma API intuitiva e suporte a bibliotecas populares, como Pandas e Matplotlib, essa ferramenta se destaca ao simplificar o processo de criação de interfaces e visualizações de dados, permitindo que cientistas e analistas de dados compartilhem suas análises com mais eficiência e impacto.
Desde a instalação até a criação de aplicações interativas, vamos guiá-lo em cada uma das etapas necessárias para que você possa levar suas habilidades de visualização de dados a um novo patamar com o Streamlit. Além disso, discutiremos exemplos práticos e as vantagens e desvantagens de usar essa poderosa biblioteca no seu trabalho.
O que é o Streamlit?
Streamlit é uma biblioteca open-source em Python, projetada para construir e compartilhar Data Apps de forma rápida e prática. Ela transforma scripts Python em aplicativos web interativos com apenas algumas linhas de código, permitindo que cientistas e analistas de dados apresentem suas análises e visualizações de maneira acessível.
A principal proposta do Streamlit é simplificar o processo de criação de interfaces interativas, eliminando a necessidade de conhecimentos avançados em desenvolvimento frontend. Dessa maneira, os desenvolvedores podem focar na construção da lógica de negócios e na análise de dados, enquanto a biblioteca cuida da integração visual e da interatividade.
O Streamlit se destaca por seu suporte a diversas bibliotecas populares de Python, o que permite aos usuários utilizarem ferramentas já conhecidas, como Pandas, NumPy e Matplotlib, para criar visualizações dinâmicas. A sua API intuitiva facilita a adição de widgets, como sliders e botões, e a customização da interface, resultando em aplicações que são não apenas funcionais, mas também visualmente atraentes.
Qualquer script Python pode se transformar em um aplicativo web que pode ser compartilhado facilmente, tornando a colaboração e a apresentação de dados mais acessíveis e impactantes.

Com a biblioteca Streamlit é possível criar aplicativos web para gerar visualizações de dados fantásticas
Como usar a biblioteca Streamlit em Python?
1. Instalação do Streamlit
Para usar a biblioteca Streamlit em Python, siga os passos abaixo:
Windows:
Instale o Anaconda e configure seu ambiente.
Abra o terminal.
Execute o comando:
pip install streamlit.Teste a instalação com:
streamlit hello.
macOS:
Instale o pip com:
sudo easy_install pip.Instale o pipenv com:
pip3 install pipenv.Navegue até a pasta do projeto:
cd nome_da_pasta_do_projeto.Crie um ambiente pipenv:
pipenv shell.Instale o Streamlit com:
pip install streamlit.Teste a instalação com:
streamlit hello.
Linux:
Instale o pip com:
sudo apt-get install python3-pip.Instale o pipenv com:
pip3 install pipenv.Navegue até a pasta do projeto:
cd nome_da_pasta_do_projeto.Crie um ambiente pipenv:
pipenv shell.Instale o Streamlit com:
pip install streamlit.Teste a instalação com:
streamlit hello.
2. Executando seu código Streamlit
Para rodar seu aplicativo Streamlit, utilize o comando: streamlit run nome_do_arquivo.py.
3. Criando o aplicativo
Utilize as funções do Streamlit para adicionar elementos ao seu aplicativo, como texto, imagens, gráficos e widgets de entrada. Aqui estão alguns exemplos:
Para adicionar texto:
st.write("Texto aqui")Para adicionar um título:
st.title("Título do aplicativo")Para exibir imagens:
st.image("caminho_da_imagem.jpg")Para criar sliders e botões:
st.slider("Nome do slider", min, max)est.button("Nome do botão").
4. Desdobramentos adicionais
Explore os widgets interativos e gráficos disponíveis, como gráficos de linha, de barras e mapas utilizando funções como st.line_chart(), st.bar_chart(), e st.map().
5. Implantação do aplicativo
Após desenvolver, você pode implantar seu aplicativo no Streamlit Cloud ou em outras plataformas, seguindo as instruções de implantação.
Esses passos básicos permitem que você comece a usar a biblioteca Streamlit em Python, criando aplicativos para visualização e interação com dados de forma rápida e simples.
Criando um app dinâmico com Streamlit
Para criar um app dinâmico com Streamlit, siga os passos abaixo:
1. Instalação do Streamlit
Primeiro, você precisa instalar o Streamlit em seu ambiente Python. Execute o seguinte comando no terminal:
pip install streamlit
2. Criar um novo script
Abra seu editor de texto ou IDE preferido e crie um novo arquivo Python, por exemplo, meu_app.py.
3. Importar a biblioteca
No seu arquivo Python, comece importando a biblioteca Streamlit:
import streamlit as st
4. Adicionar um título
Utilize a função st.title() para adicionar um título ao seu app:
st.title("Meu App Dinâmico com Streamlit")
5. Utilizar widgets para interatividade
Para tornar seu app interativo, adicione widgets. Por exemplo, use um slider para que os usuários selecionem valores:
valor = st.slider("Selecione um valor", 0, 100, 50)
st.write("O valor selecionado é:", valor)
6. Carregar e exibir dados
Se você estiver trabalhando com conjuntos de dados, pode carregar dados usando a biblioteca Pandas e exibi-los:
import pandas as pd
data = pd.read_csv("seu_arquivo.csv")
st.write(data)
7. Adicionando gráficos interativos
Streamlit permite a criação de gráficos dinâmicos facilmente. Utilize a função st.line_chart() para visualizar dados:
st.line_chart(data['sua_coluna'])
8. Execução do app
Depois de configurar seu script, salve o arquivo e execute o seguinte comando:
streamlit run meu_app.py
Isso abrirá uma nova aba no seu navegador, onde você poderá interagir com seu app dinâmico.
9. Adicionando múltiplas páginas
Para criar um app com várias páginas, utilize a função st.sidebar.selectbox() para navegar entre diferentes seções.
Passos para instalar o Streamlit
Para começar a usar o Streamlit, siga alguns passos simples de instalação:
1. Configuração do ambiente
Certifique-se de ter uma versão recente do Python instalada e considere usar um ambiente virtual para gerenciar suas dependências.
2. Instalação
Execute o comando:
pip install streamlit
Esse comando instalará a biblioteca Streamlit juntamente com suas dependências.
3. Validação da instalação
Para validar a instalação, execute o aplicativo de exemplo:
streamlit hello
Isso abrirá uma aplicação de exemplo no seu navegador, permitindo que você veja o Streamlit em ação.
Como executar o Streamlit no seu projeto
Para executar o Streamlit em seu projeto, siga estas etapas:
1. Criação do script
Escreva seu código em um arquivo Python, por exemplo, seu_script.py. Este arquivo deve conter as funções e visualizações desejadas.
2. Execução do script
O método mais fácil para executar o Streamlit é utilizar o seguinte comando no terminal:
streamlit run seu_script.py
Isso iniciará um servidor local do Streamlit, abrindo seu aplicativo em uma nova aba no navegador.
3. Passar argumentos personalizados
Para passar argumentos personalizados, faça isso após dois traços duplos:
streamlit run seu_script.py -- [argumentos do script]
4. Executar a partir de uma URL
Você também pode passar uma URL para o comando streamlit run, útil para scripts hospedados remotamente:
streamlit run https://raw.githubusercontent.com/exemplo/seu_script.py
5. Executar como um módulo Python
Outra forma é executar o Streamlit como um módulo Python, útil ao configurar um IDE, como o PyCharm:
python -m streamlit run seu_script.py
Como criar páginas múltiplas em um app Streamlit
Criar páginas múltiplas em um aplicativo Streamlit é uma excelente maneira de organizar seu projeto e oferecer uma experiência de usuário rica. Aqui está como fazer isso:
1. Criar uma pasta pages
No diretório do seu aplicativo, crie uma nova pasta chamada pages, onde armazenará todos os arquivos das suas páginas.
2. Adicionar arquivos Python
Dentro da pasta pages, crie um arquivo Python para cada página desejada, como:
1_introducao.py2_graficos.py3_mapas.py4_tabelas.py
A numeração ajuda a definir a ordem das páginas.
3. Movendo o conteúdo
Transfira o código relacionado a cada página para os arquivos correspondentes.
Utilize a função st.sidebar.selectbox no arquivo principal para permitir que os usuários naveguem entre as páginas. Um exemplo simples pode ser:
import streamlit as st
def introducao():
st.title("Introdução")
st.write("Bem-vindo ao nosso aplicativo multipágina!")
def graficos():
st.title("Gráficos")
st.write("Aqui você pode ver alguns gráficos.")
def mapas():
st.title("Mapas")
st.write("Aqui você pode ver alguns mapas.")
def tabelas():
st.title("Tabelas de Dados")
st.write("Aqui você pode ver algumas tabelas de dados.")
paginas = {
"Introdução": introducao,
"Gráficos": graficos,
"Mapas": mapas,
"Tabelas de Dados": tabelas
}
st.sidebar.title("Navegação")
pagina_selecionada = st.sidebar.selectbox("Selecione uma página", paginas.keys())
paginas[pagina_selecionada]()
5. Executando o aplicativo
Acesse o terminal na pasta do projeto e execute o comando streamlit run nome_do_seu_arquivo_principal.py.
Quais são as vantagens e desvantagens do Streamlit?
Vantagens do Streamlit
Simplicidade e facilidade de uso: Criação rápida de aplicações web interativas em Python.
Integração com bibliotecas populares: Suporte extensivo a bibliotecas como Pandas, Matplotlib, Seaborn, Plotly, Keras e PyTorch.
Interface intuitiva e limpa: Acessível mesmo para iniciantes, reduzindo a curva de aprendizado.
Robustez das aplicações: Interfaces funcionais e visualmente atraentes.
Aumento de produtividade: Foco no desenvolvimento sem preocupações com a infraestrutura subjacente.
Comunidade ativa: Recursos e projetos gerados por uma comunidade engajada.
Desvantagens do Streamlit
Limitações de personalização: Menos opções de customização em comparação com frameworks mais complexos.
Dependência de Python: Limitação para desenvolvedores que usam outras linguagens.
Desempenho em interatividade: Pode haver problemas de performance em aplicações que exigem muitas interações.
Escalabilidade: Desafios em aplicações muito grandes ou complexas.
Reinicialização da aplicação: O aplicativo é reiniciado a cada mudança, podendo causar atrasos.
Essas características devem ser consideradas ao decidir sobre o uso do Streamlit para o desenvolvimento de dashboards e data apps.
Exemplos de aplicações com Streamlit
Aqui estão alguns exemplos práticos e úteis que podem ser desenvolvidos utilizando o Streamlit:
Dashboards interativos: Criação de dashboards que oferecem interatividade, com gráficos dinâmicos, tabelas e filtros.
Aplicações de aprendizado de máquina: Demonstração de modelos de machine learning de forma acessível.
Visualização de dados: Ferramentas para criar gráficos de linha, mapas e tabelas de forma simples.
Formulários web interativos: Desenvolvimento de aplicações que coletam informações dos usuários.
Interatividade com widgets: Uso de sliders, botões e caixas de seleção para uma experiência envolvente.
Aplicações científicas: Ferramentas de visualização para ajudar na análise e interpretação de dados experimentais.
Esses exemplos demonstram como o Streamlit se destaca na criação rápida de interfaces e na promoção da interatividade entre os usuários e os dados.
E aí, o Streamlit vale a pena?
Vale a pena considerar o Streamlit como uma solução ágil e poderosa para transformar suas análises em aplicações web interativas. Neste post, apresentamos desde a instalação da biblioteca até a criação de aplicativos dinâmicos, destacando a simplicidade de uso, a integração com as principais bibliotecas de dados em Python, e a forma como facilita a visualização e colaboração.
Com uma abordagem focada na experiência do usuário e várias funcionalidades prontas para uso, o Streamlit se mostra ideal para cientistas de dados e analistas que desejam compartilhar suas descobertas de maneira impactante. Agora é a sua vez de explorar essa ferramenta e levar suas visualizações a um novo patamar!