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
| Option | Standard | Hinweise |
|---|---|---|
spec_path | None | Lokale 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. |
computation | None | Verwenden Sie "browser", "kernel" oder "cloud", um einen Modus zu erzwingen. Automatisches Streamlit-Verhalten verwendet standardmäßig kernel-seitige Berechnung. |
show_cloud_tool | None | Steuert 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
| Methode | Verwendung |
|---|---|
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
| Stolperfalle | Lösung |
|---|---|
StreamlitRenderer bei jedem Rerun neu erstellen | Konstruktion in @st.cache_resource kapseln. |
spec="./gw_config.json" für lokale Dateien verwenden | spec_path="./gw_config.json" verwenden. |
Konstruktionsoptionen nach einem Walker übergeben | Diese Optionen nach pyg.Walker(...) verschieben. |
Neuen Code mit kernel_computation=True starten | computation="kernel" verwenden. |