Streamlit: o que é e como usar a ferramenta para criar apps interativos

Entenda como instalar o Streamlit e comece a criar visualizações de dados e dashboards com facilidade

Você quer criar aplicativos interativos e visualizações de dados de forma rápida e fácil? Com o Streamlit, uma biblioteca open-source em Python, isso é possível com apenas algumas linhas de código. Ideal para cientistas de dados e engenheiros de Machine Learning, essa ferramenta permite transformar seus scripts em web apps compartilháveis, sem necessidade de experiência prévia em desenvolvimento web.

Neste post, você aprenderá a instalar o Streamlit, criar um app interativo do zero e explorar suas potentes funcionalidades — indo da construção de dashboards dinâmicos à integração com bibliotecas populares como Pandas e Matplotlib.

O que é o Streamlit?

O Streamlit é uma ferramenta projetada para criar aplicativos web de maneira rápida e simples. Ele se destaca pela sua facilidade de uso, permitindo que usuários sem experiência em desenvolvimento web consigam criar aplicativos interativos e visualizações de dados de forma dinâmica. A principal função do Streamlit é transformar scripts de dados em web apps compartilháveis, usando para isso apenas algumas linhas de código.

Com o Streamlit, é possível gerar aplicações de aparência impressionante sem a necessidade de conhecimentos técnicos avançados. O foco do Streamlit é atender às necessidades de profissionais que desejam desenvolver e compartilhar rapidamente suas análises de dados.

Outra grande vantagem do Streamlit é a sua integração com diversas bibliotecas populares do ecossistema Python, como Pandas, NumPy, e Matplotlib, permitindo realizar análises complexas e representar visualmente os dados de forma atrativa.

Construir dashboards dinâmicos está entre as principais funcionalidades do Streamlit

Como instalar o Streamlit?

Para instalar o Streamlit, você tem várias opções, dependendo da sua preferência e do ambiente de desenvolvimento que está utilizando:

Opção 1: Usando a linha de comando

  1. Configure seu ambiente de desenvolvimento Python.

  2. Execute o comando:

    pip install streamlit
    
  3. Valide a instalação executando o aplicativo de exemplo:

    streamlit hello
    

Opção 2: Usando uma interface gráfica

  • Se você prefere uma interface gráfica, pode instalar o Streamlit utilizando a Anaconda Distribution, o que pode ser mais simples, especialmente se você estiver no Windows ou não tiver o Python instalado.

Opção 3: Usando um ambiente baseado em nuvem

  • Utilize o Streamlit Community Cloud com GitHub Codespaces, onde você não precisa se preocupar em instalar o Python e configurar o ambiente.

Opção 4: Ambiente seguro e controlado na nuvem

  • Você pode usar o Streamlit no Snowflake para desenvolver seus aplicativos na nuvem, ao lado dos seus dados, com controles de acesso baseados em funções.

Escolha a opção que melhor se adeque ao seu cenário!

Como criar e rodar um app Streamlit?

Para criar e rodar uma aplicação Streamlit, siga estas etapas simples:

  1. Crie um novo script Python: Abra seu editor ou IDE favorito e crie um arquivo, como uber_pickups.py.

  2. Adicione as importações necessárias: Insira as linhas essenciais ao seu script:

    import streamlit as st
    import pandas as pd
    import numpy as np
    
  3. Defina um título para o seu app: Segue um exemplo:

    st.title('Uber pickups in NYC')
    
  4. Execute seu app: Para isso, utilize o seguinte comando na linha de comando:

    streamlit run uber_pickups.py
    

    O app será iniciado e deve abrir automaticamente em uma nova aba do seu navegador.

  5. Carregue os dados: Escreva uma função para carregar os dados. Use um conjunto de dados, como o da Uber:

    DATE_COLUMN = 'date/time'
    DATA_URL = ('https://s3-us-west-2.amazonaws.com/'
                'streamlit-demo-data/uber-raw-data-sep14.csv.gz')
    
    @st.cache_data
    def load_data(nrows):
        data = pd.read_csv(DATA_URL, nrows=nrows)
        data[DATE_COLUMN] = pd.to_datetime(data[DATE_COLUMN])
        return data
    
  6. Teste a função de carregamento de dados: Adicione linhas ao seu script para que os dados sejam carregados:

    data_load_state = st.text('Loading data...')
    data = load_data(10000)
    data_load_state.text('Done! (using st.cache_data)')
    
  7. Adicione funcionalidades interativas. Utilize os widgets do Streamlit, como st.slider() e st.checkbox(), para permitir que os usuários interajam com os dados.

Com esses passos, você terá um app interativo pronto para ser visualizado e utilizado em seu navegador.

O que você pode fazer com Streamlit?

Com o Streamlit, você pode construir e compartilhar rapidamente aplicativos de dados interativos e dashboards. Aqui estão algumas das funcionalidades que você pode explorar:

1. Visualização de dados

O Streamlit se integra a bibliotecas populares de Python, como Pandas, Matplotlib, Seaborn e Plotly, facilitando a exibição e a análise de dados em formatos atraentes.

2. Interatividade

Adicione widgets interativos (inputs, botões e sliders) às suas aplicações, permitindo que os usuários interajam com as análises de forma dinâmica.

3. Desenvolvimento simples

O desenvolvimento se torna descomplicado, com código modularizado e de fácil leitura, permitindo criar aplicativos com pouco esforço.

4. Deploy em nuvem

Permite a implantação em diversas plataformas, como Docker e Kubernetes, além de opções de deploy em serviços como Google Cloud e AWS.

5. Compartilhamento de projetos

Possui uma comunidade ativa onde você pode encontrar inspirações, códigos-fonte e exemplos de projetos que podem ser adaptados.

Como criar visualizações de dados com Streamlit?

Para criar visualizações de dados com Streamlit, siga estas etapas:

  1. Importação das bibliotecas:

    import streamlit as st
    import pandas as pd
    import plotly.express as px
    
  2. Criação de um DataFrame: Utilize pandas para criar um DataFrame:

    df = pd.DataFrame({
        'Fruta': ['Maçãs', 'Laranjas', 'Bananas'],
        'Quantidade': [10, 20, 30]
    })
    
  3. Escolha do tipo de gráfico: Algumas opções:

    • Gráfico de barras:

      st.bar_chart(df.set_index('Fruta'))
      
    • Gráfico de linhas:

      st.line_chart(df.set_index('Fruta'))
      
    • Gráficos interativos com Plotly:

      fig = px.bar(df, x='Fruta', y='Quantidade', title='Quantidade de Frutas')
      st.plotly_chart(fig)
      
  4. Personalização de gráficos: Customize seus gráficos ajustando cores, títulos e etiquetas:

    import matplotlib.pyplot as plt
    
    plt.plot(df['Fruta'], df['Quantidade'], color='blue', marker='o')
    plt.title('Frutas x Quantidade')
    st.pyplot()
    
  5. Adicionando interatividade: Use widgets para tornar suas visualizações mais interativas, como um slider para selecionar uma quantidade mínima:

    quantidade_min = st.slider('Selecione a quantidade mínima:', 0, 50, 10)
    df_filtered = df[df['Quantidade'] >= quantidade_min]
    st.bar_chart(df_filtered.set_index('Fruta'))
    
  6. Executando o aplicativo: Salve seu código em um arquivo Python e execute com o comando:

    streamlit run app.py
    
  7. Explorando mais tipos de visualizações: O Streamlit permite criação de tabelas usando st.dataframe(df) ou gráficos de dispersão e mapas.

Essas etapas oferecem uma base sólida para você começar a explorar visualizações de dados com Streamlit de maneira efetiva e dinâmica.

Conclusão

Neste post, você aprendeu como instalar o Streamlit e criar aplicativos interativos com facilidade, aproveitando suas integrações com bibliotecas populares de Python. Também exploramos como desenvolver visualizações dinâmicas, permitindo que seus dados se tornem mais acessíveis e interessantes para o público.

Agora que você está familiarizado com as funcionalidades do Streamlit, é hora de colocar em prática esse conhecimento e experimentar a criação de seus próprios projetos. O potencial dessa ferramenta é vasto e pode transformar a maneira como você apresenta suas análises de dados.