Streamlit API(Streamlit API)
StreamlitRenderer
from pygwalker.api.streamlit import StreamlitRenderer
renderer = StreamlitRenderer(df, spec="./gw_config.json")
パラメーター
パラメーター | タイプ | デフォルト | 説明 |
---|---|---|---|
dataset | Union[DataFrame, Connector] | - | 使用されるデータフレームまたはコネクタ。ウォーカーのデータセットを参照してください。 |
gid | Union[int, str] | None | GraphicWalkerのコンテナディブのIDで、'gwalker-{gid}'の形式でフォーマットされます。gidがNoneの場合、自動的に生成されます。 |
field_specs | Optional[Dict[str, FieldSpec]] | None | フィールドの仕様。指定されていない場合、dataset から自動的に推論されます。 |
theme_key | Literal['vega', 'g2'] | 'g2' | GraphicWalkerのテーマタイプ。 |
dark | Literal['media', 'light', 'dark'] | 'media' | テーマ設定。'media'はOSのテーマを自動検出します。 |
spec | str | "" | チャート構成データ。構成ID、JSON、またはリモートファイルURLを指定できます。 |
spec_io_mode | Literal["r", "rw"] | "r" | specのIOモード、"r"は読み込み用、"rw"は読み取りおよび書き込み用にデフォルトで設定されます。 |
use_kernel_calc | bool | None | Trueの場合、データのカーネル計算を使用し、大規模なデータセットで高性能をサポートできます。 |
kanaries_api_key | str | "" | kanaries APIキー。 |
default_tab | Literal["data", "vis"] | "vis" | 表示するデフォルトのタブ。 |
StreamlitRenderer.explorer
renderer.explorer()
パラメーター
パラメーター | タイプ | デフォルト | 説明 |
---|---|---|---|
width | int | None | UIの幅。デフォルトではページの幅に適応します。 |
height | int | 1000 | UIの高さ。 |
scrolling | bool | False | スクロール。 |
default_tab | Literal["data", "vis"] | "vis" | 表示するデフォルトのタブ。 |
StreamlitRenderer.chart
renderer.chart(0)
パラメーター
パラメーター | タイプ | デフォルト | 説明 |
---|---|---|---|
index | int | None | チャートのインデックス。 |
width | int | None | UIの幅。デフォルトではページの幅に適応し��す。 |
height | int | 1000 | UIの高さ。 |
scrolling | bool | False | スクロール。 |
StreamlitRenderer.viewer
renderer.viewer()
パラメータ
パラメーター | タイプ | デフォルト | 説明 |
---|---|---|---|
width | int | None | UIの幅。デフォルトではページの幅に適応します。 |
height | int | 1000 | UIの高さ。 |
scrolling | bool | False | スクロール。 |
use_kernel_calcを有効にした場合の使用例(推奨)
オンラインデモ:pygwalker demo (opens in a new tab)
from pygwalker.api.streamlit import StreamlitRenderer
import pandas as pd
import streamlit as st
# Adjust the width of the Streamlit page
st.set_page_config(
page_title="Use Pygwalker In Streamlit",
layout="wide"
)
# Add Title
st.title("Use Pygwalker In Streamlit")
# You should cache your pygwalker renderer, if you don't want your memory to explode
@st.cache_resource
def get_pyg_renderer() -> "StreamlitRenderer":
df = pd.read_csv("data.csv")
# If you want to use feature of saving chart config, set `spec_io_mode="rw"`
return StreamlitRenderer(df, spec="./gw_config.json")
renderer = get_pyg_renderer()
st.subheader("Display Explore UI")
tab1, tab2, tab3, tab4 = st.tabs(
["graphic walker", "data profiling", "graphic renderer", "pure chart"]
)
with tab1:
renderer.explorer()
with tab2:
renderer.explorer(default_tab="data")
with tab3:
renderer.viewer()
with tab4:
st.markdown("### registered per weekday")
renderer.chart(0)
st.markdown("### registered per day")
renderer.chart(1)
use_kernel_calcを無効にした場合の使用例
import pygwalker as pyg
import pandas as pd
import streamlit.components.v1 as components
import streamlit as st
# Adjust the width of the Streamlit page
st.set_page_config(
page_title="Use Pygwalker In Streamlit",
layout="wide"
)
# Add Title
st.title("Use Pygwalker In Streamlit")
# Import your data
df = pd.read_csv("/bike_sharing_dc.csv")
# Paste the copied Pygwalker chart code here
vis_spec = """[{"visId":"gw_rZy5","name":"Chart 1","encodings":{"dimensions":[{"dragId":"gw_BUE2","fid":"ZGF0ZV8x","name":"date","semanticType":"nominal","analyticType":"dimension"},{"dragId":"gw_x1ug","fid":"bW9udGhfMg==","name":"month","semanticType":"ordinal","analyticType":"dimension"},{"dragId":"gw_zRAa","fid":"c2Vhc29uXzM=","name":"season","semanticType":"nominal","analyticType":"dimension"},{"dragId":"gw_ZeVh","fid":"eWVhcl81","name":"year","semanticType":"nominal","analyticType":"dimension"},{"dragId":"gw_JqXv","fid":"aG9saWRheV82","name":"holiday","semanticType":"nominal","analyticType":"dimension"},{"dragId":"gw_OD2F","fid":"d29yayB5ZXMgb3Igbm90XzE0","name":"work yes or not","semanticType":"nominal","analyticType":"dimension"},{"dragId":"gw_KgQu","fid":"YW0gb3IgcG1fMTU=","name":"am or pm","semanticType":"nominal","analyticType":"dimension"},{"dragId":"gw_PqvI","fid":"RGF5IG9mIHRoZSB3ZWVrXzE2","name":"Day of the week","semanticType":"ordinal","analyticType":"dimension"}],"measures":[{"dragId":"gw_7JNg","fid":"aW5kZXhfMA==","name":"index","analyticType":"measure","semanticType":"quantitative","aggName":"sum"},{"dragId":"gw_IYM_","fid":"aG91cl80","name":"hour","analyticType":"measure","semanticType":"quantitative","aggName":"sum"},{"dragId":"gw_ofd8","fid":"dGVtcGVyYXR1cmVfNw==","name":"temperature","analyticType":"measure","semanticType":"quantitative","aggName":"sum"},{"dragId":"gw_sGlX","fid":"ZmVlbGluZ190ZW1wXzg=","name":"feeling_temp","analyticType":"measure","semanticType":"quantitative","aggName":"sum"},{"dragId":"gw_674M","fid":"aHVtaWRpdHlfOQ==","name":"humidity","analyticType":"measure","semanticType":"quantitative","aggName":"sum"},{"dragId":"gw_AxQD","fid":"d2luc3BlZWRfMTA=","name":"winspeed","analyticType":"measure","semanticType":"quantitative","aggName":"sum"},{"dragId":"gw_iy94","fid":"Y2FzdWFsXzEx","name":"casual","analyticType":"measure","semanticType":"quantitative","aggName":"sum"},{"dragId":"gw_9J2u","fid":"cmVnaXN0ZXJlZF8xMg==","name":"registered","analyticType":"measure","semanticType":"quantitative","aggName":"sum"},{"dragId":"gw_WzEF","fid":"Y291bnRfMTM=","name":"count","analyticType":"measure","semanticType":"quantitative","aggName":"sum"},{"dragId":"gw_count_fid","fid":"gw_count_fid","name":"Row count","analyticType":"measure","semanticType":"quantitative","aggName":"sum","computed":true,"expression":{"op":"one","params":[],"as":"gw_count_fid"}}],"rows":[{"dragId":"gw_gJqj","fid":"cmVnaXN0ZXJlZF8xMg==","name":"registered","analyticType":"measure","semanticType":"quantitative","aggName":"sum"}],"columns":[{"dragId":"gw_uZ9C","fid":"RGF5IG9mIHRoZSB3ZWVrXzE2","name":"Day of the week","semanticType":"ordinal","analyticType":"dimension"}],"color":[{"dragId":"gw_04s5","fid":"c2Vhc29uXzM=","name":"season","semanticType":"nominal","analyticType":"dimension"}],"opacity":[],"size":[],"shape":[],"radius":[],"theta":[],"details":[],"filters":[],"text":[]},"config":{"defaultAggregated":true,"geoms":["auto"],"stack":"stack","showActions":false,"interactiveScale":false,"sorted":"none","zeroScale":true,"size":{"mode":"auto","width":320,"height":200},"format":{}}}]"""
# Generate the HTML using Pygwalker
pyg_html = pyg.to_html(df, spec=vis_spec)
# Embed the HTML into the Streamlit app
components.html(pyg_html, height=1000, scrolling=True)
関連するQ&A
大量のデータを扱うことができるTableau/PowerBIのオンラインオープンソース代替手段を構築する方法は?
回答:大量のデータを扱えるTableau/PowerBIのオンラインオープンソース代替手段として、pygwalker + streamlit + snowflakeを使用することができます。