PyGWalker Streamlit API 指南
本指南解释了如何将 PyGWalker 集成到 Streamlit 应用中,以提供交互式数据可视化功能。
StreamlitRenderer 类
StreamlitRenderer
类是用于在 Streamlit 应用中使用 PyGWalker 的主要接口。
from pygwalker.api.streamlit import StreamlitRenderer
renderer = StreamlitRenderer(df, spec="./gw_config.json")
关键参数
参数 | 类型 | 默认值 | 描述 |
---|---|---|---|
dataset | Union[DataFrame, Connector] | - | 输入数据源 |
spec | str | "" | 图表配置数据 (ID, JSON, 或 URL) |
spec_io_mode | Literal["r", "rw"] | "r" | Spec I/O 模式:"r"(只读)或 "rw"(读/写) |
kernel_computation | bool | None | 启用高性能内核计算 |
appearance | Literal['media', 'light', 'dark'] | 'media' | 主题设置 |
default_tab | Literal["data", "vis"] | "vis" | 默认显示选项卡 |
主要方法
1. explorer()
显示完整的 GraphicWalker UI。
renderer.explorer(width=None, height=1000, scrolling=False, default_tab="vis")
2. chart(index)
渲染特定图表。
renderer.chart(index, width=None, height=1000, scrolling=False)
3. viewer()
显示图表的只读版本。
renderer.viewer(width=None, height=1000, scrolling=False)
最佳实践
-
缓存: 使用 Streamlit 的缓存功能以防止内存问题:
@st.cache_resource def get_pyg_renderer(): df = pd.read_csv("data.csv") return StreamlitRenderer(df, spec="./gw_config.json")
-
大数据集: 对于大数据集,启用
kernel_computation=True
以获得更好的性能。 -
布局: 使用 Streamlit 的布局选项(例如
st.set_page_config(layout="wide")
)以获得最佳显示效果。 -
选项卡: 使用 Streamlit 选项卡组织不同的 PyGWalker 视图,以实现更清洁的界面。
示例: PyGWalker Streamlit 应用
import streamlit as st
from pygwalker.api.streamlit import StreamlitRenderer
import pandas as pd
st.set_page_config(page_title="PyGWalker in Streamlit", layout="wide")
st.title("PyGWalker in 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", "Data Profiling", "Charts"])
with tab1:
renderer.explorer()
with tab2:
renderer.explorer(default_tab="data")
with tab3:
st.subheader("周几注册")
renderer.chart(0)
st.subheader("每天注册")
renderer.chart(1)
高级: 构建 Tableau/PowerBI 替代方案
要创建一个能够处理大数据集的开源 Tableau/PowerBI 替代方案:
- 使用 PyGWalker 进行交互式可视化
- 利用 Streamlit 作为 Web 应用框架
- 集成 Snowflake 以处理大规模数据
这种组合为数据可视化和分析提供了一个强大且可扩展的解决方案。
欲了解更多详细信息和高级用法,请参阅 PyGWalker 文档 (opens in a new tab)。
相关问答
如何构建能够处理大量数据的在线开源 Tableau/PowerBI 替代方案?
回答: 您可以使用 pygwalker + streamlit + snowflake 来构建能够处理大量数据的在线开源 Tableau/PowerBI 替代方案。