Skip to content
PYGWALKER
Referencia de API
Streamlit

API de PyGWalker para Streamlit

Usa StreamlitRenderer para incrustar PyGWalker en una app de Streamlit. Guarda el renderer en caché cuando el dataset y el estado de gráficos se reutilizan entre reruns.

import pandas as pd
import streamlit as st
from pygwalker.api.streamlit import StreamlitRenderer
 
st.set_page_config(page_title="PyGWalker", layout="wide")
 
@st.cache_resource
def get_renderer():
    df = pd.read_csv("data.csv")
    return StreamlitRenderer(
        df,
        spec_path="./gw_config.json",
        spec_io_mode="rw",
        computation="kernel",
    )
 
renderer = get_renderer()
renderer.explorer()

Constructor

StreamlitRenderer(
    dataset,
    gid=None,
    *,
    field_specs=None,
    theme_key="g2",
    appearance="media",
    spec="",
    spec_path=None,
    spec_io_mode="r",
    computation=None,
    kernel_computation=None,
    use_kernel_calc=None,
    show_cloud_tool=None,
    kanaries_api_key="",
    default_tab="vis",
    **kwargs,
)

dataset puede ser un pandas DataFrame, polars DataFrame, pyarrow Table, Connector de base de datos o pygwalker.Walker reutilizable.

Opciones clave

OpciónPredeterminadoNotas
spec_pathNoneArchivo local de estado de gráficos. Prefiere esta opción para archivos locales.
spec_io_mode"r"Usa "rw" cuando la UI de Streamlit deba guardar ediciones de gráficos de vuelta en el archivo spec.
computationNoneUsa "browser", "kernel" o "cloud" para forzar un modo. El comportamiento automático en Streamlit usa computación del lado del kernel de forma predeterminada.
show_cloud_toolNoneControla la visibilidad de la UI cloud cuando está disponible.
default_tab"vis"Pestaña inicial del explorador.

kernel_computation y use_kernel_calc son opciones heredadas de compatibilidad. Prefiere computation; los flags heredados están programados para eliminarse en PyGWalker 0.7.0.

Métodos principales

MétodoUso
renderer.explorer(key="explorer", default_tab="vis")Explorador completo de arrastrar y soltar.
renderer.viewer(key="viewer")UI de solo visualización/renderizado con filtros.
renderer.chart(index, key="chart", size=None, pre_filters=None)Renderiza un gráfico guardado por índice basado en cero.
renderer.table(key="table")Renderiza la vista de tabla.
renderer.set_global_pre_filters(pre_filters)Aplica filtros entre gráficos salvo que una llamada a gráfico los sobrescriba.

Renderiza un gráfico guardado

Después de guardar gráficos en spec_path, renderiza un gráfico por índice.

renderer.chart(0, size=(720, 420))

Usa PreFilter para aplicar filtros a nivel de gráfico.

from pygwalker.api.streamlit import PreFilter
 
renderer.chart(
    0,
    pre_filters=[
        PreFilter(field="category", op="one of", value=["A", "B"]),
        PreFilter(field="revenue", op="range", value=[0, 100000]),
    ],
)

PreFilter acepta:

PreFilter(
    field: str,
    op: "range" | "temporal range" | "one of",
    value: list[int | float | str],
)

Para op="temporal range", los valores pueden ser marcas de tiempo en milisegundos o cadenas de fecha parseables.

Reutiliza un Walker

Si el mismo dataset y las mismas opciones deben compartirse con otros adaptadores, construye primero un Walker.

import pygwalker as pyg
from pygwalker.api.streamlit import StreamlitRenderer
 
walker = pyg.Walker(
    df,
    spec_path="./gw_config.json",
    spec_io_mode="rw",
    computation="kernel",
)
 
renderer = StreamlitRenderer(walker)
renderer.explorer()

Cuando pases un Walker, coloca las opciones de construcción en pyg.Walker(...). StreamlitRenderer(walker, spec_path="./other.json") se rechaza porque entraría en conflicto con el objeto existente.

get_streamlit_html

get_streamlit_html devuelve la cadena HTML usada por el componente de Streamlit.

from pygwalker.api.streamlit import get_streamlit_html
 
html = get_streamlit_html(
    df,
    spec_path="./gw_config.json",
    spec_io_mode="rw",
    mode="explore",
    computation="kernel",
)

Los modos compatibles son "explore", "filter_renderer" y "table".

Errores comunes

ErrorSolución
Recrear StreamlitRenderer en cada rerunEnvuelve la construcción en @st.cache_resource.
Usar spec="./gw_config.json" para archivos localesUsa spec_path="./gw_config.json".
Pasar opciones de construcción después de proporcionar un WalkerMueve esas opciones a pyg.Walker(...).
Empezar código nuevo con kernel_computation=TrueUsa computation="kernel".

Guías relacionadas