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")
) を使用する。 -
タブ: CleanなインターフェースのためにStreamlitタブを使用して異なるPyGWalkerビューを整理する。
例: Streamlit アプリでの PyGWalker の使用
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 Demo")
@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("Registered per Weekday")
renderer.chart(0)
st.subheader("Registered per Day")
renderer.chart(1)
高度な内容: Tableau/PowerBIの代替品を構築する
大規模データセットを扱うオープンソースのTableau/PowerBI代替品を作成するには:
- PyGWalkerを使用してインタラクティブなビジュアライゼーションを提供
- Streamlitをウェブアプリケーションフレームワークとして活用
- Snowflakeを統合して大規模データを管理
この組み合わせにより、データビジュアライゼーションと分析のための強力でスケーラブルなソリューションが提供されます。
詳細と高度な使用法については、PyGWalkerのドキュメント (opens in a new tab)を参照してください。
関連Q&A
大量のデータを扱えるOnlineのTableau/PowerBI代替品を構築するには?
回答: pygwalker + streamlit + snowflakeを使用して、大量のデータを扱えるOnlineのTableau/PowerBI代替品を構築できます。