Skip to content
PYGWALKER
API 참조
Streamlit Walker APIs

Streamlit API

StreamlitRenderer

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

매개변수

ParameterTypeDefaultDescription
datasetUnion[DataFrame, Connector]-사용할 데이터프레임 또는 커넥터입니다. Walker의 Dataset을 참조하십시오.
gidUnion[int, str]None그래픽 워커 컨테이너 div의 ID로, 'gwalker-{gid}'와 같은 형식으로 구성됩니다. gid가 None이면 자동으로 생성됩니다.
field_specsOptional[Dict[str, FieldSpec]]None필드 사양입니다. 지정되지 않으면 dataset에서 자동으로 유추됩니다.
theme_keyLiteral['vega', 'g2']'g2'그래픽 워커의 테마 유형입니다.
darkLiteral['media', 'light', 'dark']'media'테마 설정입니다. 'media'는 OS 테마를 자동으로 감지합니다.
specstr""차트 구성 데이터입니다. 구성 ID, JSON 또는 원격 파일 URL이 될 수 있습니다.
spec_io_modeLiteral["r", "rw"]"r"spec io 모드로, "r"은 읽기, "rw"은 읽기 및 쓰기를 나타냅니다.
use_kernel_calcboolNoneTrue인 경우 데이터에 대한 커널 계산을 사용하며, 큰 데이터셋에서 고성능을 지원할 수 있습니다. 자동으로 커널 계산을 사용할지 여부를 결정합니다.
kanaries_api_keystr""kanaries API 키입니다. 기본값은 "".
default_tabLiteral["data", "vis"]"vis"표시할 기본 탭입니다. 기본값은 "vis"입니다.
**kwargsAny-추가 키워드 인수입니다.

StreamlitRenderer.explorer

renderer.explorer()

매개변수

ParameterTypeDefaultDescription
widthintNoneUI 너비로 기본적으로 페이지의 너비에 맞게 적응합니다.
heightint1000UI 높이
scrollingboolFalse스크롤 여부
default_tabLiteral["data", "vis"]"vis"표시할 기본 탭입니다. 기본값은 "vis"입니다.

StreamlitRenderer.chart

renderer.chart(0)

매개변수

ParameterTypeDefaultDescription
indexintNone차트의 인덱스
widthintNoneUI 너비로 기본적으로 페이지의 너비에 맞게 적응합니다.
heightint1000UI 높이
scrollingboolFalse스크롤 여부

StreamlitRenderer.viewer

renderer.viewer()

매개변수

ParameterTypeDefaultDescription
widthintNoneUI 너비로 기본적으로 페이지의 너비에 맞게 적응합니다.
heightint1000UI 높이
scrollingboolFalse스크롤 여부

use_kernel_calc가 활성화된 경우의 예(권장)

온라인 데모: pygwalker 데모 (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
 
# Streamlit 페이지의 너비 조정
st.set_page_config(
    page_title="Streamlit에서 Pygwalker 사용",
    layout="wide"
)
 
# 타이틀 추가
st.title("Streamlit에서 Pygwalker 사용")
 
# 데이터 가져오기
df = pd.read_csv("/bike_sharing_dc.csv")
# 복사한 Pygwalker 차트 코드를 여기에 붙여넣기
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":"c2Vhc29uZXM=","name":"season","semanticType":"nominal","analyticType":"dimension"},{"dragId":"gw_ZeVh","fid":"eWVhcl_R5","name":"year","semanticType":"nominal","analyticType":"dimension"},{"dragId":"gw_JqXv","fid":"aG9saWRheV2_N","name":"holiday","semanticType":"nominal","analyticType":"dimension"},{"dragId":"gw_OD2F","fid":"d29yksylcwl","name":"work yes or not","semanticType":"nominal","analyticType":"dimension"},{"dragId":"gw_KgQu","fid":"YW0gb3IgcG1fMTU0","name":"am or pm","semanticType":"nominal","analyticType":"dimension"},{"dragId":"gw_PqvI","fid":"RGF5kg0gIHRoZSB3ZWVgsot","name":"Day of the week","semanticType":"ordinal","analyticType":"dimension"}],"measures":[{"dragId":"gw__gJg","fid":"aW5kazhfMA==","name":"index","analyticType":"measure","semanticType":"quantitative","aggName":"sum"},{"dragId":"gw_qYM_","fid":"aG91ksl80","name":"hour","analyticType":"measure","semanticType":"quantitative","aggName":"sum"},{"dragId":"gw_ofd8","fid":"dGVtsaZV72YXR1cmVfNw==","name":"temperature","analyticType":"measure","semanticType":"quantitative","aggName":"sum"},{"dragId":"gw_sGl4","fid":"ZmVlnokXWluZ190ZW1wXzg8","name":"feeling_temp","analyticType":"measure","semanticType":"quantitative","aggName":"sum"},{"dragId":"gw_674M","fid":"aHVtafWjwZz","name":"humidity","analyticType":"measure","semanticType":"quantitative","aggName":"sum"},{"dragId":"gw_AxQA","fid":"d2luas2RwZWRg_xMI=","name":"winspeed","analyticType":"measure","semanticType":"quantitative","aggName":"sum"},{"dragId":"gw_iy94","fid":"Y2Fz2DWFszt11bE_x","name":"casual","analyticType":"measure","semanticType":"quantitative","aggName":"sum"},{"dragId":"gw_9J2q","fid":"cmVn9ndZmN0ZXJlZD","name":"registered","analyticType":"measure","semanticType":"quantitative","aggName":"sum"},{"dragId":"gw_WzEQ","fid":"Y291bnZ0XzFQ==","name":"count","analyticType":"measure","semanticType":"quantitative","aggName":"sum"},{"dragId":"gw_count_fid","fid":"gw_count_fid","name":"Row count","analyticType":"measure","seudo,":{
    "op":"one",
    "params":[],
    "as":"gw_count_fid"
}}],"rows":[{"dragId":"gw_gJqj","fidsgsd":"cmVnaStXN0ZXJlZF8xMgxD","name":"registered","analyticType":"measure","semxdanticType":"quantitative","aggName":"sum"}],"columns":[{"drgswagId":"gw_uZ9C","fdrfdfid":"RGF5gDkZ99mIHRoZSB3ZWVrXzE2","name":"Day of the week","semanticType":"ordinal","analyticType":"dimension"}],"color":[{"dragId":"gw_04s5","fid":"c2VankHBzxG9u9cmudlXzM=","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":{}}}]"""
 
# Pygwalker를 사용하여 HTML 생성
pyg_html = pyg.to_html(df, spec=vis_spec)
 
# HTML을 Streamlit 앱에 삽입
components.html(pyg_html, height=1000, scrolling=True)

관련 Q&A

Tableau/PowerBI의 대안인 대량 데이터 처리가 가능한 온라인 오픈 소스를 구축하는 방법은 무엇인가요?

답변: 큰 데이터 양을 처리할 수 있는 Tableau/PowerBI의 대안인 온라인 오픈 소스를 구축하려면 pygwalker + streamlit + snowflake를 사용할 수 있습니다.