Guía de la API de PyGWalker para Streamlit
Esta guía explica cómo integrar PyGWalker con aplicaciones de Streamlit, proporcionando capacidades interactivas de visualización de datos.
Clase StreamlitRenderer
La clase StreamlitRenderer
es la interfaz principal para usar PyGWalker en aplicaciones de Streamlit.
from pygwalker.api.streamlit import StreamlitRenderer
renderer = StreamlitRenderer(df, spec="./gw_config.json")
Parámetros Clave
Parámetro | Tipo | Valor por Defecto | Descripción |
---|---|---|---|
dataset | Union[DataFrame, Connector] | - | Fuente de datos de entrada |
spec | str | "" | Datos de configuración del gráfico (ID, JSON o URL) |
spec_io_mode | Literal["r", "rw"] | "r" | Modo de E/S de la especificación: "r" (leer) o "rw" (leer/escribir) |
kernel_computation | bool | None | Activar computación de núcleo de alto rendimiento |
appearance | Literal['media', 'light', 'dark'] | 'media' | Configuración del tema |
default_tab | Literal["data", "vis"] | "vis" | Pestaña predeterminada a mostrar |
Métodos Principales
1. explorer()
Muestra la interfaz completa de GraphicWalker.
renderer.explorer(width=None, height=1000, scrolling=False, default_tab="vis")
2. chart(index)
Renderiza un gráfico específico.
renderer.chart(index, width=None, height=1000, scrolling=False)
3. viewer()
Muestra una versión de solo visualización de los gráficos.
renderer.viewer(width=None, height=1000, scrolling=False)
Mejores Prácticas
-
Caché: Usa la caché de Streamlit para prevenir problemas de memoria:
@st.cache_resource def get_pyg_renderer(): df = pd.read_csv("data.csv") return StreamlitRenderer(df, spec="./gw_config.json")
-
Grandes Conjuntos de Datos: Activa
kernel_computation=True
para un mejor rendimiento con grandes conjuntos de datos. -
Diseño: Usa las opciones de diseño de Streamlit (por ejemplo,
st.set_page_config(layout="wide")
) para una visualización óptima. -
Pestañas: Organiza diferentes vistas de PyGWalker usando pestañas de Streamlit para una interfaz más ordenada.
Ejemplo: Aplicación de Streamlit con PyGWalker
import streamlit as st
from pygwalker.api.streamlit import StreamlitRenderer
import pandas as pd
st.set_page_config(page_title="PyGWalker en Streamlit", layout="wide")
st.title("Demostración de PyGWalker en 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(["Explorer", "Perfilado de Datos", "Gráficos"])
with tab1:
renderer.explorer()
with tab2:
renderer.explorer(default_tab="data")
with tab3:
st.subheader("Registrados por Día de la Semana")
renderer.chart(0)
st.subheader("Registrados por Día")
renderer.chart(1)
Avanzado: Construyendo una Alternativa a Tableau/PowerBI
Para crear una alternativa de código abierto a Tableau/PowerBI que pueda manejar grandes conjuntos de datos:
- Usa PyGWalker para visualizaciones interactivas
- Aprovecha Streamlit como el marco de aplicaciones web
- Integra con Snowflake para manejar datos a gran escala
Esta combinación proporciona una solución potente y escalable para la visualización y el análisis de datos.
Para más detalles y usos avanzados, consulta la documentación de PyGWalker (opens in a new tab).
P&R Relacionadas
¿Cómo construir una alternativa open source en línea a Tableau/PowerBI que pueda manejar grandes cantidades de datos?
Respuesta: Puedes usar pygwalker + streamlit + snowflake para construir una alternativa open source en línea a Tableau/PowerBI que pueda manejar grandes cantidades de datos.