Skip to content
PyGWalker를 웹 앱으로 호스팅하고 공유하기 위한 상위 5개의 Python 라이브러리

PyGWalker를 웹 앱으로 호스팅하고 공유하기 위한 상위 5개의 Python 라이브러리

현대의 빠른 데이터 중심 세계에서는 인사이트를 창출하는 것만큼이나 인사이트를 공유하는 것이 중요합니다. 데이터 과학에서 선도적인 언어인 Python은 데이터 분석 결과를 웹 앱으로 만들기 위한 다양한 라이브러리를 제공합니다. pygwalker를 사용하여 대화형 시각화를 좋아하는 경우 운이 좋습니다! 이 블로그 글에서는 pygwalker 시각화를 웹 앱으로 호스팅하고 공유하기 위한 상위 5개의 라이브러리를 알아보겠습니다.

  1. Streamlit
  2. Gradio
  3. Dash
  4. Shiny-Python
  5. Flask

1. Streamlit

개요: Streamlit (opens in a new tab)은 데이터 스크립트를 웹 앱으로 몇 분 안에 변환하여 공유할 수 있는 매우 인기 있는 Python 라이브러리입니다. Streamlit은 데이터 과학자를 위해 특별히 제작된 Flask로 생각할 수 있으며, 웹 개발의 복잡성에 대해 신경 쓰지 않고도 빠른 데이터 앱 개발을 가능하게 합니다. 더욱이, Streamlit은 pygwalker를 실시간 웹 애플리케이션으로 변환하기 위한 원활한 플랫폼을 제공하여 정적 보고서뿐만 아니라 더 넓은 관객과 공유할 수 있도록 합니다. 사용자는 자신의 요구에 따라 질문을 하고 탐색을 계속할 수 있습니다.

주요 기능:

  • 간편성: 몇 줄의 코드로 데이터 스크립트를 웹 앱으로 변환할 수 있습니다.
  • 대화형 위젯: 슬라이더, 버튼 및 텍스트 입력란을 쉽게 추가하여 시각화를 조작할 수 있습니다.
  • 핫 리로딩: 앱을 다시 시작하지 않고도 실시간으로 변경 사항을 확인할 수 있습니다.

PyGWalker 통합: Streamlit과 PyGWalker는 강력한 조합을 제공합니다. pygwalker의 최신 API는 Streamlit과 함께 사용하기 위한 기능을 제공하며, duckdb 계산 엔진과 같은 기능은 이들 조합에서만 사용할 수 있습니다. 다음은 단계별 통합 가이드입니다:

  1. 환경 설정: Python 3.6 이상이 설치되어 있는지 확인하십시오. 다음 명령을 사용하여 필요한 종속성을 설치하십시오:

    pip install pandas pygwalker streamlit
  2. PyGWalker를 Streamlit으로 포함시키기: pygwalker_demo.py라는 새로운 Python 스크립트를 만들고 pygwalker.api.streamlitStreamlitRenderer를 사용하여 원활한 통합을 위해 다음과 같이 사용합니다:

    from pygwalker.api.streamlit import StreamlitRenderer, init_streamlit_comm
    import pandas as pd
    import streamlit as st
     
    st.set_page_config(
        page_title="Streamlit에서 Pygwalker 사용하기",
        layout="wide"
    )
     
    init_streamlit_comm()
    st.title("Streamlit에서 Pygwalker 사용하기")
     
    @st.cache_resource
    def get_pyg_renderer() -> "StreamlitRenderer":
        df = pd.read_csv("https://kanaries-app.s3.ap-northeast-1.amazonaws.com/public-datasets/bike_sharing_dc.csv")
        return StreamlitRenderer(df, spec="./gw_config.json", debug=False)
     
    renderer = get_pyg_renderer()
    renderer.render_explore()
  3. Streamlit에서 데이터 탐색하기: streamlit run pygwalker_demo.py 명령을 사용하여 Streamlit 앱을 실행합니다. 이 명령은 Streamlit 앱을 시작하며, PyGWalker의 직관적인 드래그 앤 드롭 기능을 사용하여 데이터를 대화형으로 시각화할 수 있습니다.

  4. PyGWalker 차트 상태 저장하기: pygwalker 렌더러가 디버그 모드에 있고 spec 매개변수가 로컬 JSON 파일 경로를 가리킬 때, 탐색 인터페이스에서 저장 버튼을 클릭하여 차트 구성을 저장할 수 있습니다.

추가 독서 자료: Streamlit에서 PyGWalker 사용하는 방법

2. Gradio

개요: Gradio (opens in a new tab)는 머신 러닝 모델을 기반으로 사용자 인터페이스를 구축할 수 있는 라이브러리입니다. 그러나 그것이 제한되는 것은 아닙니다. 맞춤형 인터페이스를 구축하는 데 대한 용이함은 탁월합니다.

주요 기능:

  • 인터페이스 유연성: 드롭다운, 슬라이더, 텍스트 상자 등으로 인터페이스를 구성할 수 있습니다.
  • 빠른 배포: 빠른 머신 러닝 프로토 타입을 구축하고 배포할 수 있습니다.
  • 공유: 앱에 대한 공유 가능한 링크를 받아 다른 사람과 쉽게 협업할 수 있습니다.

PyGWalker 통합: Gradio의 HTML 인터페이스 구성 요소는 pygwalker 시각화를 호스트할 수 있습니다.

import gradio as gr
import pygwalker as pyg
 
html_code = pyg.walk(..., return_html=True)
gr.Interface(fn=None, inputs=None, outputs=gr.HTML()).launch()

추가 독서 자료: Gradio에서 PyGWalker 사용하는 방법

3. Dash

개요: Plotly의 Dash (opens in a new tab)는 분석적인 웹 애플리케이션을 구축하기 위한 생산적인 프레임워크입니다. 자바스크립트가 필요하지 않습니다.

주요 기능:

  • 반응형: Plotly 차트를 중심으로 반응형 앱을 구축할 수 있습니다.
  • 사용자 정의 가능: 다양한 Dash 구성 요소를 사용하여 사용자 정의 UI를 만들 수 있습니다.
  • 통합: 다른 Plotly 차트 라이브러리를 지원합니다.

PyGWalker 통합: Dash의 html.Div 구성 요소를 사용하여 pygwalker 시각화를 원활하게 통합할 수 있습니다.

import dash
import dash_dangerously_set_inner_html
 
import dash_html_components as html
import pygwalker as pyg
 
from datasets import load_dataset
# load dataset
dataset = load_dataset("gradio/NYC-Airbnb-Open-Data", split="train")
df = dataset.to_pandas()
 
app = dash.Dash()
 
html_code = pyg.walk(df, return_html=True)
 
app.layout = html.Div([
    dash_dangerously_set_inner_html.DangerouslySetInnerHTML(html_code),
])
 
if __name__ == '__main__':
    app.run_server(debug=True)
 

4. Shiny-Python

개요: R의 Shiny 라이브러리는 대화형 앱으로 유명하지만, Python의 Shiny 포트인 shiny은 Python에서 비슷한 기능을 제공합니다.

주요 기능:

  • 반응성: 실시간 업데이트를 위한 반응성 바인딩으로 앱을 구축할 수 있습니다.
  • UI 구성 요소: 다양한 UI 구성 요소를 제공합니다.

PyGWalker 통합: ui.HTML 구성 요소를 사용하여 pygwalker 시각화를 Shiny 앱에 포함시킬 수 있습니다.

from shiny import App, ui
import pygwalker as pyg
 
html_code = pyg.walk(..., return_html=True)
 
app_ui = ui.page_fluid(
    ui.HTML(html_code)
)
 
app = App(app_ui)

추가 독서 자료: Shiny-Python에서 PyGWalker 사용하는 방법

5. Flask

개요: Flask (opens in a new tab)는 경량 WSGI 웹 애플리케이션 프레임워크입니다. 데이터 앱에 특화되어 있지는 않지만 그 유연성은 탁월합니다.

주요 기능:

  • 마이크로프레임워크: Flask는 웹 앱을 실행하는 데 필요한 기본 기능을 제공합니다.
  • 확장: Flask의 기능을 확장할 수 있는 확장 기능을 제공합니다.

PyGWalker 통합: render_template 함수를 사용하여 Flask 앱 내에서 pygwalker HTML을 렌더링할 수 있습니다.

from flask import Flask, render_template_string
import pygwalker as pyg
 
app = Flask(__name__)
 
@app.route('/')
def home():
    html_code = pyg.walk(..., return_html=True)
    return render_template_string(html_code)
 
if __name__ == '__main__':
    app.run(debug=True)

결론

데이터 이야기는 더 넓은 관객을 필요로 하며, 이러한 라이브러리를 통해 가능해집니다! 간단한 프로토 타입이나 정통한 데이터 앱을 구축하는 경우, 이러한 라이브러리와 pygwalker를 결합하여 데이터에 접근 가능하고 상호 작용할 수 있는 강력한 조합을 제공합니다. 집중하고 실험하며, 웹에서 시각화를 빛나게 해보세요!