Skip to content

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