Skip to content
PYGWALKER
API-Referenz
Streamlit

PyGWalker Streamlit API

Verwenden Sie StreamlitRenderer, um PyGWalker in eine Streamlit-App einzubetten. Cachen Sie den Renderer, wenn Datensatz und Diagrammzustand über Reruns hinweg wiederverwendet werden.

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()

Konstruktor

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 kann ein pandas DataFrame, polars DataFrame, pyarrow Table, Datenbank-Connector oder wiederverwendbarer pygwalker.Walker sein.

Wichtige Optionen

OptionStandardHinweise
spec_pathNoneLokale Diagrammzustandsdatei. Bevorzugen Sie dies für lokale Dateien.
spec_io_mode"r"Verwenden Sie "rw", wenn die Streamlit-UI Diagrammänderungen in die Spec-Datei zurückspeichern soll.
computationNoneVerwenden Sie "browser", "kernel" oder "cloud", um einen Modus zu erzwingen. Automatisches Streamlit-Verhalten verwendet standardmäßig kernel-seitige Berechnung.
show_cloud_toolNoneSteuert die Sichtbarkeit der Cloud-UI, sofern verfügbar.
default_tab"vis"Initialer Explorer-Tab.

kernel_computation und use_kernel_calc sind Legacy-Kompatibilitätsoptionen. Bevorzugen Sie computation; die Legacy-Flags sind zur Entfernung in PyGWalker 0.7.0 vorgesehen.

Hauptmethoden

MethodeVerwendung
renderer.explorer(key="explorer", default_tab="vis")Vollständiger Drag-and-drop-Explorer.
renderer.viewer(key="viewer")Nur-Ansicht-/Filter-Renderer-UI.
renderer.chart(index, key="chart", size=None, pre_filters=None)Rendert ein gespeichertes Diagramm per nullbasiertem Index.
renderer.table(key="table")Rendert die Tabellenansicht.
renderer.set_global_pre_filters(pre_filters)Wendet Filter über Diagramme hinweg an, sofern ein Diagrammaufruf sie nicht überschreibt.

Ein gespeichertes Diagramm rendern

Nachdem Diagramme in spec_path gespeichert wurden, rendern Sie ein Diagramm per Index.

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

Verwenden Sie PreFilter, um diagrammspezifische Filter anzuwenden.

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 akzeptiert:

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

Für op="temporal range" können Werte Millisekunden-Zeitstempel oder parsebare Datumsstrings sein.

Einen Walker wiederverwenden

Wenn derselbe Datensatz und dieselben Optionen mit anderen Adaptern geteilt werden sollen, erstellen Sie zuerst einen 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()

Wenn Sie einen Walker übergeben, setzen Sie Konstruktionsoptionen auf pyg.Walker(...). StreamlitRenderer(walker, spec_path="./other.json") wird abgelehnt, weil es mit dem vorhandenen Objekt kollidieren würde.

get_streamlit_html

get_streamlit_html gibt den HTML-String zurück, der von der Streamlit-Komponente verwendet wird.

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",
)

Unterstützte Modi sind "explore", "filter_renderer" und "table".

Häufige Stolperfallen

StolperfalleLösung
StreamlitRenderer bei jedem Rerun neu erstellenKonstruktion in @st.cache_resource kapseln.
spec="./gw_config.json" für lokale Dateien verwendenspec_path="./gw_config.json" verwenden.
Konstruktionsoptionen nach einem Walker übergebenDiese Optionen nach pyg.Walker(...) verschieben.
Neuen Code mit kernel_computation=True startencomputation="kernel" verwenden.

Verwandte Anleitungen