Guia de API PyGWalker Streamlit
Este guia explica como integrar o PyGWalker com aplicativos Streamlit, fornecendo capacidades interativas de visualização de dados.
Classe StreamlitRenderer
A classe StreamlitRenderer
é a interface principal para usar o PyGWalker em aplicativos Streamlit.
from pygwalker.api.streamlit import StreamlitRenderer
renderer = StreamlitRenderer(df, spec="./gw_config.json")
Parâmetros Principais
Parâmetro | Tipo | Padrão | Descrição |
---|---|---|---|
dataset | Union[DataFrame, Connector] | - | Fonte de dados de entrada |
spec | str | "" | Dados de configuração do gráfico (ID, JSON ou URL) |
spec_io_mode | Literal["r", "rw"] | "r" | Modo de I/O da especificação: "r" (leitura) ou "rw" (leitura/escrita) |
kernel_computation | bool | None | Habilitar computação de kernel de alto desempenho |
appearance | Literal['media', 'light', 'dark'] | 'media' | Configuração de tema |
default_tab | Literal["data", "vis"] | "vis" | Aba padrão a ser exibida |
Métodos Principais
1. explorer()
Exibe a interface completa do GraphicWalker.
renderer.explorer(width=None, height=1000, scrolling=False, default_tab="vis")
2. chart(index)
Renderiza um gráfico específico.
renderer.chart(index, width=None, height=1000, scrolling=False)
3. viewer()
Exibe uma versão somente visualização dos gráficos.
renderer.viewer(width=None, height=1000, scrolling=False)
Melhores Práticas
-
Caching: Use o cache do Streamlit para prevenir problemas de memória:
@st.cache_resource def get_pyg_renderer(): df = pd.read_csv("data.csv") return StreamlitRenderer(df, spec="./gw_config.json")
-
Grandes Conjuntos de Dados: Habilite
kernel_computation=True
para melhor desempenho com grandes conjuntos de dados. -
Layout: Utilize as opções de layout do Streamlit (e.g.,
st.set_page_config(layout="wide")
) para uma exibição otimizada. -
Abas: Organize diferentes visualizações PyGWalker usando abas do Streamlit para uma interface mais limpa.
Exemplo: Aplicativo Streamlit com PyGWalker
import streamlit as st
from pygwalker.api.streamlit import StreamlitRenderer
import pandas as pd
st.set_page_config(page_title="PyGWalker no Streamlit", layout="wide")
st.title("Demonstração do PyGWalker no Streamlit")
@st.cache_resource
def get_pyg_renderer() -> StreamlitRenderer:
df = pd.read_csv("data.csv")
return StreamlitRenderer(df, spec="./gw_config.json", spec_io_mode="rw")
renderer = get_pyg_renderer()
tab1, tab2, tab3 = st.tabs(["Explorador", "Perfil de Dados", "Gráficos"])
with tab1:
renderer.explorer()
with tab2:
renderer.explorer(default_tab="data")
with tab3:
st.subheader("Registrado por Dia da Semana")
renderer.chart(0)
st.subheader("Registrado por Dia")
renderer.chart(1)
Avançado: Construindo uma Alternativa ao Tableau/PowerBI
Para criar uma alternativa de código aberto ao Tableau/PowerBI que possa lidar com grandes conjuntos de dados:
- Utilize o PyGWalker para visualizações interativas
- Use o Streamlit como a estrutura de aplicativo web
- Integre com Snowflake para manipulação de dados em larga escala
Esta combinação oferece uma solução poderosa e escalável para visualização e análise de dados.
Para mais detalhes e uso avançado, consulte a documentação do PyGWalker (opens in a new tab).
Perguntas Frequentes Relacionadas
Como construir uma alternativa online de código aberto ao Tableau/PowerBI que pode lidar com grandes quantidades de dados?
Resposta: Você pode usar pygwalker + streamlit + snowflake para construir uma alternativa online de código aberto ao Tableau/PowerBI que pode lidar com grandes quantidades de dados.