Skip to content
ブログ
2025年にTableauのようなBIダッシュボードを作成する: PyGWalkerとGraphic Walkerを用いたステップバイステップガイド

2025年にTableauのようなBIダッシュボードを作る方法

(コード不要?問題ありません!)

2025年には、データ駆動型の意思決定がこれまで以上に手軽になりました。オープンソースツールであるPyGWalker(Python)とGraphic Walker(JavaScript)を使用すれば、高価なライセンスは必要なく、生のデータを数分でインタラクティブなTableauスタイルのダッシュボードに変換できます。データサイエンティスト、開発者、アナリストの皆さん、このガイドではこれらのツールをプロのように活用する方法をお教えします。


なぜPyGWalkerとGraphic Walkerなのか?

  • 🚀 オープンソース & 無料: TableauやPowerBIのような高価なツールは必要ありません。
  • 🔌 シームレスな統合: Python(Pandas、Streamlit)およびJavaScript(React、Next.js)と連携します。
  • 🖱️ ドラッグ&ドロップの簡単さ: インスタントな視覚化のための直感的なインターフェース。
  • 📊 企業向け対応: Jupyterノートブックから製品化されたReactアプリまで対応。

ステップ1: ツールを選ぶ

Pythonユーザー向け(PyGWalker)

ライブラリをインストール:

pip install pygwalker

に最適: Jupyterノートブック、Streamlitアプリ、または迅速なデータ探索。

JavaScript開発者向け(Graphic Walker)

Reactコンポーネントをインストール:

npm install @kanaries/graphic-walker

に理想的: React、Next.js、またはカスタムウェブアプリに分析を埋め込む。


ステップ2: PyGWalker + Streamlitでバイクシェアリングダッシュボードを構築

1. ライブラリをインポートしデータを読み込む

import pandas as pd
import streamlit as st
from pygwalker.api.streamlit import StreamlitRenderer
 
# Streamlitのレイアウト最適化
st.set_page_config(page_title="DC Bike Sharing Analytics", layout="wide")
st.title("🚲 DCバイクシェアリングダッシュボード")
 
# キャッシュでデータを読み込む
@st.cache_data
def load_data():
    return pd.read_csv("bike_sharing_dc.csv")  # あなたのデータセットに置き換えてください
 
df = load_data()

2. PyGWalkerを初期化

@st.cache_resource  # メモリを節約するためにキャッシュ
def init_pygwalker():
    # 'rw' モードを使用してチャート設定を保存/読み込み
    return StreamlitRenderer(df, spec="./gw_config.json", spec_io_mode="rw")
 
renderer = init_pygwalker()

3. インタラクティブダッシュボードを起動

renderer.explorer()

アプリを実行:

streamlit run app.py

💡 プロのヒント: spec_io_mode="rw"を使用して、将来のセッションのためにダッシュボードレイアウトを保存しましょう!


ステップ3: ダッシュボードをカスタマイズ

  1. ドラッグ&ドロップチャート:
    • 軸、色、サイズをエンコードするために列をドラッグ。
    • マークタイプ(バー、線、散布図など)を切り替え。
  2. フィルターを追加:
    • 動的にデータをフィルタリング(例:週末のみ、特定の温度)。
  3. 設定を保存&共有:
    • チームでのコラボレーションのためにダッシュボードレイアウトをgw_config.jsonにエクスポート。

PyGWalker BI Dashboard Demo Alt text: "PyGWalkerを用いてバイクシェアリングデータを分析するインタラクティブBIダッシュボードのデモ。"


React開発者向け: Graphic Walkerを使用して埋め込む

import GraphicWalker from '@kanaries/graphic-walker';
 
function App() {
  const data = [...] // データセットまたはAPI応答
  return (
    <div className="container">
      <h1>Bike Sharing Analytics</h1>
      <GraphicWalker data={data} />
    </div>
  );
}
  • テーマのカスタマイズ、認証の追加、またはリアルタイムデータベースへの接続。
  • どこにでもデプロイ: Vercel、Netlify、または独自のインフラストラクチャ。

よくある質問

Q: PyGWalkerはTableauの良いオープンソース代替品ですか?
A: もちろんです!TableauのUIを模しており、Pythonワークフローに直接統合できます。

Q: Graphic WalkerをSQLデータベースと一緒に使えますか?
A: はい!REST APIやaxiosのようなライブラリを介してライブデータを取得できます。

Q: 大規模なデータセットのパフォーマンスを最適化する方法は?
A: キャッシュ(@st.cache_data)、データの事前処理での集計、またはデータベースのサンプリングを使用します。


2025年にこのアプローチが勝つ理由

  1. コスト効率: ユーザーごとのライセンス料金が不要。
  2. 柔軟性: ノートブック、ウェブアプリ、または内部ツールにデプロイ可能。
  3. スケーラビリティ: 小さなCSVからBigQueryパイプラインまで対応。

準備はいいですか?