Pular para conteúdo

1. Streamlit e suas Principais Funções

Streamlit é uma biblioteca de código aberto em Python que permite a criação de aplicações web interativas para visualização de dados e machine learning. É projetada para ser fácil de usar, permitindo que você transforme scripts de dados em aplicações web compartilháveis com poucas linhas de código.

1.1. Instalação

Para instalar Streamlit, você pode usar o pip:

pip install streamlit

1.2. Execução de um Aplicativo Streamlit

Para executar um aplicativo Streamlit, salve seu script Python e execute o comando:

streamlit run nome_do_seu_script.py

1.3. Principais Funções do Streamlit

1.3.1. Títulos e Textos

Você pode adicionar títulos e textos ao seu aplicativo com funções simples.

import streamlit as st

st.title("Meu Aplicativo Streamlit")
st.header("Seção de Cabeçalho")
st.subheader("Subcabeçalho")
st.text("Este é um texto simples.")
st.markdown("Este é um texto em **Markdown**.")

1.3.2. Exibição de Dados

Streamlit permite a exibição fácil de dados usando tabelas e dataframes.

import pandas as pd

df = pd.DataFrame({
    'col1': [1, 2, 3, 4],
    'col2': [10, 20, 30, 40]
})
st.dataframe(df)
st.table(df)

1.3.3. Gráficos

Você pode usar bibliotecas populares como Matplotlib, Plotly e Altair para criar gráficos interativos.

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.plot([1, 2, 3, 4], [10, 20, 25, 30])
st.pyplot(fig)

1.3.4. Widgets de Entrada

Streamlit fornece diversos widgets de entrada para interação com o usuário.

name = st.text_input("Digite seu nome")
age = st.number_input("Digite sua idade", min_value=0, max_value=100)
agree = st.checkbox("Eu concordo")
color = st.selectbox("Escolha uma cor", ["Azul", "Vermelho", "Verde"])

1.3.5. Controle de Layout

Você pode controlar o layout da sua aplicação usando colunas, containers e expandidos.

col1, col2 = st.columns(2)
col1.write("Esta é a coluna 1")
col2.write("Esta é a coluna 2")

with st.expander("Mais informações"):
    st.write("Aqui estão mais detalhes.")

1.3.6. Carregamento de Arquivos

Streamlit facilita o carregamento de arquivos, permitindo que os usuários façam upload de dados para a aplicação.

uploaded_file = st.file_uploader("Escolha um arquivo")
if uploaded_file is not None:
    data = pd.read_csv(uploaded_file)
    st.write(data)

1.3.7. Controle de Execução

Você pode usar botões para controlar a execução de partes do código.

if st.button("Clique aqui"):
    st.write("Botão clicado!")

1.4. Conclusão

Streamlit é uma ferramenta poderosa para criar aplicações web interativas com Python, facilitando a visualização de dados e a construção de dashboards. Com suas funções intuitivas e de fácil uso, você pode rapidamente transformar análises de dados em aplicativos web compartilháveis.

2. Dashboard com python

As bibliotecas plotly, plotly.figure_factory, plotly.express e dash são todas partes do ecossistema Plotly para criação de gráficos e dashboards interativos em Python, mas cada uma tem um propósito específico. Vamos ver as diferenças entre elas:

2.1. Plotly

plotly é a biblioteca principal, que fornece a base para a criação de gráficos interativos em Python. Dentro do plotly, você tem vários submódulos, como plotly.graph_objects (também conhecido como go), que oferece uma API de baixo nível para a construção de gráficos complexos e altamente personalizáveis.

Características: - Flexível e altamente configurável. - Permite a construção detalhada e personalizada de gráficos. - Inclui suporte para uma ampla gama de tipos de gráficos, como gráficos de linha, barra, dispersão, mapas, 3D, etc.

2.2. Plotly.figure_factory

plotly.figure_factory é um submódulo do plotly que fornece funções de alto nível para a criação de gráficos complexos que podem ser difíceis de criar manualmente com plotly.graph_objects.

Características: - Contém funções de conveniência para a criação de gráficos especializados, como dendrogramas, mapas de calor com anotações, gráficos de violino, etc. - Facilita a criação de gráficos complexos sem necessidade de detalhamento excessivo.

2.3. Plotly.express

plotly.express é um módulo de alto nível para a criação rápida e fácil de gráficos em Plotly. Ele é projetado para ser intuitivo e eficiente, oferecendo uma interface simplificada em comparação com plotly.graph_objects.

Características: - Simplicidade e rapidez na criação de gráficos. - Recomendado para a criação de gráficos padronizados e menos complexos. - As funções de plotly.express geralmente requerem menos código e são mais fáceis de usar, especialmente para exploração e análise de dados.

2.4. Dash

dash é um framework de aplicação web que permite a construção de dashboards interativos utilizando componentes de Plotly para visualizações. Ele é ideal para criar aplicações analíticas com interatividade complexa, integrando gráficos, tabelas, controles de entrada e muito mais.

Características: - Permite a construção de aplicações web interativas com visualizações de dados. - Utiliza Plotly para gráficos, mas também integra componentes HTML e controles de interface de usuário (UI) como dropdowns, sliders, etc. - Baseado em Flask, React e Plotly.js, proporcionando flexibilidade e desempenho.

2.5. Resumo das Diferenças

  • plotly: Biblioteca principal com submódulos para gráficos interativos detalhados e configuráveis.
  • plotly.figure_factory: Submódulo de plotly com funções convenientes para gráficos especializados.
  • plotly.express: Interface de alto nível para criação rápida e fácil de gráficos comuns.
  • dash: Framework completo para construção de dashboards interativos baseados na web.

Cada uma dessas bibliotecas e módulos serve a diferentes propósitos dentro do ecossistema de visualização de dados em Python, permitindo desde a criação rápida de gráficos simples até a construção de complexos dashboards interativos.

3. Plotly no ambiente do Streamlit

No ambiente do Streamlit, você pode utilizar várias bibliotecas para criar gráficos e dashboards interativos. Aqui estão as que são mais relevantes:

3.1. Plotly

Você pode usar plotly no Streamlit para criar gráficos interativos. Streamlit tem suporte nativo para Plotly, permitindo que você integre gráficos facilmente em suas aplicações.

Como usar:

import streamlit as st
import plotly.graph_objects as go

fig = go.Figure(data=go.Bar(y=[2, 3, 1]))
st.plotly_chart(fig)

3.2. Plotly.figure_factory

Como plotly.figure_factory é um submódulo do plotly, você também pode usar suas funções para criar gráficos complexos e integrá-los no Streamlit.

Como usar:

import streamlit as st
import plotly.figure_factory as ff

data_matrix = [[0.1, 0.2, 0.5], [0.3, 0.8, 0.6]]
fig = ff.create_annotated_heatmap(data_matrix)
st.plotly_chart(fig)

3.3. Plotly.express

plotly.express é altamente recomendada para uso com Streamlit devido à sua simplicidade e facilidade de uso. Você pode criar rapidamente gráficos comuns e integrá-los em suas aplicações Streamlit.

Como usar:

import streamlit as st
import plotly.express as px

df = px.data.iris()
fig = px.scatter(df, x='sepal_width', y='sepal_length')
st.plotly_chart(fig)

3.4. Dash

dash não pode ser diretamente usado dentro de uma aplicação Streamlit, pois é um framework web independente para construção de dashboards interativos. No entanto, você pode desenvolver uma aplicação Dash separadamente e depois integrá-la com um serviço web que pode ser acessado a partir de uma aplicação Streamlit, se necessário.

3.5. Resumo

  • plotly: Pode ser usado diretamente no Streamlit para criar gráficos interativos.
  • plotly.figure_factory: Pode ser usado no Streamlit como parte do plotly para gráficos especializados.
  • plotly.express: Altamente recomendado para uso no Streamlit devido à sua simplicidade e eficiência.
  • dash: Não pode ser usado diretamente no Streamlit, mas pode ser usado para construir dashboards interativos de forma independente.

Essas bibliotecas oferecem uma ampla gama de funcionalidades para visualização de dados e interatividade no ambiente do Streamlit, permitindo a criação de aplicações ricas e interativas.