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의 레이아웃 옵션(e.g., 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 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 대안을 만들려면:

  1. 인터랙티브 시각화를 위해 PyGWalker 사용
  2. 웹 애플리케이션 프레임워크로 Streamlit 활용
  3. 대규모 데이터를 처리하기 위해 Snowflake 통합

이 조합은 강력하고 확장 가능한 데이터 시각화 및 분석 솔루션을 제공합니다.

자세한 내용과 고급 사용법은 PyGWalker documentation (opens in a new tab)을 참조하세요.

관련 Q&A

대용량 데이터를 처리할 수 있는 온라인 오픈 소스 Tableau/PowerBI 대안을 어떻게 만들 수 있나요?

Answer: 대용량 데이터를 처리할 수 있는 온라인 오픈 소스 Tableau/PowerBI 대안을 만들기 위해서는 pygwalker + streamlit + snowflake를 사용할 수 있습니다.