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:

    1. Instale o Anaconda e configure seu ambiente.

    2. Abra o terminal.

    3. Execute o comando: pip install streamlit.

    4. Teste a instalação com: streamlit hello.

  • macOS:

    1. Instale o pip com: sudo easy_install pip.

    2. Instale o pipenv com: pip3 install pipenv.

    3. Navegue até a pasta do projeto: cd nome_da_pasta_do_projeto.

    4. Crie um ambiente pipenv: pipenv shell.

    5. Instale o Streamlit com: pip install streamlit.

    6. Teste a instalação com: streamlit hello.

  • Linux:

    1. Instale o pip com: sudo apt-get install python3-pip.

    2. Instale o pipenv com: pip3 install pipenv.

    3. Navegue até a pasta do projeto: cd nome_da_pasta_do_projeto.

    4. Crie um ambiente pipenv: pipenv shell.

    5. Instale o Streamlit com: pip install streamlit.

    6. 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) e st.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.py

  • 2_graficos.py

  • 3_mapas.py

  • 4_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.

4. Configurar a navegação

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

  1. Simplicidade e facilidade de uso: Criação rápida de aplicações web interativas em Python.

  2. Integração com bibliotecas populares: Suporte extensivo a bibliotecas como Pandas, Matplotlib, Seaborn, Plotly, Keras e PyTorch.

  3. Interface intuitiva e limpa: Acessível mesmo para iniciantes, reduzindo a curva de aprendizado.

  4. Robustez das aplicações: Interfaces funcionais e visualmente atraentes.

  5. Aumento de produtividade: Foco no desenvolvimento sem preocupações com a infraestrutura subjacente.

  6. Comunidade ativa: Recursos e projetos gerados por uma comunidade engajada.

Desvantagens do Streamlit

  1. Limitações de personalização: Menos opções de customização em comparação com frameworks mais complexos.

  2. Dependência de Python: Limitação para desenvolvedores que usam outras linguagens.

  3. Desempenho em interatividade: Pode haver problemas de performance em aplicações que exigem muitas interações.

  4. Escalabilidade: Desafios em aplicações muito grandes ou complexas.

  5. 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:

  1. Dashboards interativos: Criação de dashboards que oferecem interatividade, com gráficos dinâmicos, tabelas e filtros.

  2. Aplicações de aprendizado de máquina: Demonstração de modelos de machine learning de forma acessível.

  3. Visualização de dados: Ferramentas para criar gráficos de linha, mapas e tabelas de forma simples.

  4. Formulários web interativos: Desenvolvimento de aplicações que coletam informações dos usuários.

  5. Interatividade com widgets: Uso de sliders, botões e caixas de seleção para uma experiência envolvente.

  6. 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!