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의 레이아웃 옵션(e.g.,
st.set_page_config(layout="wide")
)을 사용하세요. -
탭: 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 대안을 만들려면:
- 인터랙티브 시각화를 위해 PyGWalker 사용
- 웹 애플리케이션 프레임워크로 Streamlit 활용
- 대규모 데이터를 처리하기 위해 Snowflake 통합
이 조합은 강력하고 확장 가능한 데이터 시각화 및 분석 솔루션을 제공합니다.
자세한 내용과 고급 사용법은 PyGWalker documentation (opens in a new tab)을 참조하세요.
관련 Q&A
대용량 데이터를 처리할 수 있는 온라인 오픈 소스 Tableau/PowerBI 대안을 어떻게 만들 수 있나요?
Answer: 대용량 데이터를 처리할 수 있는 온라인 오픈 소스 Tableau/PowerBI 대안을 만들기 위해서는 pygwalker + streamlit + snowflake를 사용할 수 있습니다.