PyGWalkerをWebアプリとしてホスト・共有するためのトップ5のPythonライブラリ
今日のデータ中心の高速な世界では、インサイトを導き出すだけでなく、それを共有することも同じくらい重要です。データサイエンスにおいて一流の言語であるPythonは、データ分析からWebアプリを作成するための多くのライブラリを提供しています。もしもあなたがインタラクティブな視覚化のための pygwalker
のファンなら、運が良いです!このブログ記事では、PyGWalkerの視覚化をWebアプリとしてホスト・共有するためのトップ5のライブラリを紹介します。
- Streamlit
- Gradio
- Dash
- Shiny-Python
- Flask
1. Streamlit
概要:
Streamlit (opens in a new tab)は、データスクリプトを数分で共有可能なWebアプリに変換するための非常に人気のあるPythonライブラリです。Streamlitは、データサイエンティスト向けにカスタマイズされたFlaskのようなものと考えることができます。Web開発の細かいところに詳しくなくても、迅速にデータアプリを開発することができます。さらに、Streamlitはpygwalker
をライブのWebアプリケーションに変換するシームレスなプラットフォームを提供し、静的なレポートだけではなく、より広い視聴者と共有することができます。ユーザーは質問を投げかけ、必要に応じて探索を続けることができます。
主な特徴:
- シンプリシティ:わずか数行のコードでデータスクリプトをWebアプリに変換できます。
- インタラクティブウィジェット:スライダーやボタン、テキスト入力を簡単に追加して視覚化を操作できます。
- ホットリローディング:アプリを再起動することなくリアルタイムで変更を確認できます。
PyGWalkerとの統合:
StreamlitとPyGWalkerは強力な組み合わせを提供します。pygwalker
の最新のAPIは、Streamlitとの使用を容易にし、duckdb
計算エンジン(これはStreamlitとの組み合わせのための独自の機能です)を利用することができます。以下は、ステップバイステップの統合ガイドです。
-
環境の設定: Python 3.6またはそれ以降がインストールされていることを確認してください。次のコマンドを使用して必要な依存関係をインストールします。
pip install pandas pygwalker streamlit
-
StreamlitへのPyGWalkerの埋め込み:
pygwalker_demo.py
という新しいPythonスクリプトを作成します。pygwalker.api.streamlit
からStreamlitRenderer
を利用してシームレスな統合を行います。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()
-
Streamlitでのデータの探索:
streamlit run pygwalker_demo.py
コマンドを使用してStreamlitアプリを実行します。このコマンドにより、Streamlitアプリが開始され、PyGWalkerの直感的なドラッグアンドドロップ機能を使用してデータをインタラクティブに視覚化することができます。 -
PyGWalkerチャートの状態の保存:
pygwalker
のレンダラがデバッグモードであり、spec
パラメータがローカルのJSONファイルパスを指している場合、探索インターフェース上の保存ボタンをクリックしてチャートの構成を保存することができます。
さらなる情報の読み物:StreamlitでPyGWalkerを使う方法
2. Gradio
概要: Gradio (opens in a new tab)は、機械学習モデルの周りにUIを構築することができるツールです。ただそれだけではなく、カスタムインタフェースの構築の容易さは他に類を見ません。
主な特徴:
- インタフェースの柔軟性:ドロップダウン、スライダー、テキストボックスなどからインタフェースを作成できます。
- 素早い展開:機械学習のプロトタイプを迅速に構築・展開できます。
- 共有:アプリの共有可能なリンクを取得し、簡単なコラボレーションを実現します。
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
概要: Dash (opens in a new tab)は、分析用のWebアプリケーションを構築するための効果的なフレームワークです。JavaScriptは必要ありません。
主な特徴:
- リアクティブ: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
はPythonで同様の機能を実現します。
主な特徴:
- 反応性:ライブアップデートのための反応性バインディングでアプリを構築できます。
- UIコンポーネント:Shinyはさまざまな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 Webアプリケーションフレームワークです。特定のデータアプリケーション向けではありませんが、柔軟性は他に類を見ません。
主な特徴:
- マイクロフレームワーク:FlaskはWebアプリを実行するための基本機能を提供します。
- 拡張機能:Flaskの機能を拡張するための拡張機能を使用できます。
PyGWalkerとの統合:
Flaskアプリ内でpygwalker
のHTMLをrender_template
関数を使用してレンダリングすることができます。
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
と組み合わせることで、データをアクセス可能かつインタラクティブにするための強力なコンボを提供します。ぜひ試して、自分の視覚化をWeb上で輝かせてください!