Skip to content
PYGWALKER
API 参考
Streamlit Component

PyGWalker Streamlit API 指南

本指南解释了如何将 PyGWalker 集成到 Streamlit 应用中,以提供交互式数据可视化功能。

StreamlitRenderer 类

StreamlitRenderer 类是用于在 Streamlit 应用中使用 PyGWalker 的主要接口。

from pygwalker.api.streamlit import StreamlitRenderer
 
renderer = StreamlitRenderer(df, spec="./gw_config.json")

关键参数

参数类型默认值描述
datasetUnion[DataFrame, Connector]-输入数据源
specstr""图表配置数据 (ID, JSON, 或 URL)
spec_io_modeLiteral["r", "rw"]"r"Spec I/O 模式:"r"(只读)或 "rw"(读/写)
kernel_computationboolNone启用高性能内核计算
appearanceLiteral['media', 'light', 'dark']'media'主题设置
default_tabLiteral["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)

最佳实践

  1. 缓存: 使用 Streamlit 的缓存功能以防止内存问题:

    @st.cache_resource
    def get_pyg_renderer():
        df = pd.read_csv("data.csv")
        return StreamlitRenderer(df, spec="./gw_config.json")
  2. 大数据集: 对于大数据集,启用 kernel_computation=True 以获得更好的性能。

  3. 布局: 使用 Streamlit 的布局选项(例如 st.set_page_config(layout="wide"))以获得最佳显示效果。

  4. 选项卡: 使用 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 替代方案:

  1. 使用 PyGWalker 进行交互式可视化
  2. 利用 Streamlit 作为 Web 应用框架
  3. 集成 Snowflake 以处理大规模数据

这种组合为数据可视化和分析提供了一个强大且可扩展的解决方案。

欲了解更多详细信息和高级用法,请参阅 PyGWalker 文档 (opens in a new tab)

相关问答

如何构建能够处理大量数据的在线开源 Tableau/PowerBI 替代方案?

回答: 您可以使用 pygwalker + streamlit + snowflake 来构建能够处理大量数据的在线开源 Tableau/PowerBI 替代方案。