概要
ggsql はSQL構文ベースの グラフィックス文法 を実装した新しい可視化ツール。 Quarto や Jupyter などで利用可能、SQLユーザー向けの直感的な可視化体験を提供。 VISUALIZE/DRAW/PLACE/SCALE/LABEL などの宣言的な構文で柔軟にグラフ作成。 SQLクエリと可視化クエリを シームレスに連携 可能。 構造化・拡張性・再現性 に優れる点が特徴。
ggsqlのαリリース発表
- ggsql はSQL構文でグラフィックス文法を実装した可視化ツール
- Quarto、Jupyter notebooks、Positron、VS Code などで利用可能
- SQLユーザーが直感的に扱える 宣言的・構造的な可視化構文 を提供
- VISUALIZE 句でデータと視覚要素のマッピングを開始
- DRAW 句でグラフレイヤーを追加、 PLACE 句で注釈やテキストを配置
- SCALE 句で色や軸などのスケール変換を管理
- LABEL 句でタイトルや軸ラベルなどのテキストを設定
- SQLクエリの結果を直接可視化クエリに流用可能、 データ加工から可視化まで一貫操作
- 拡張性と再利用性 に優れる構文設計
- コードが 自己記述的 であり、将来的なAI支援にも親和性
基本的な使用例
- 散布図 の作成例(penguinsデータセット使用)
VISUALIZE bill_len AS x, bill_dep AS y FROM ggsql:penguins DRAW point
- 色分け の追加
VISUALIZE bill_len AS x, bill_dep AS y, species AS color FROM ggsql:penguins DRAW point
- 回帰線レイヤー の追加
DRAW smoothを追加することで、種ごとの回帰線を重ね描き
- 棒グラフ への切り替えもマッピング変更のみで対応
VISUALIZE island AS x, species AS color FROM ggsql:penguins DRAW bar
完全な例と構文解説
- SQLクエリと可視化クエリを 1つのスクリプトで連結
- SQL部分:データ抽出・加工
- VISUALIZE以降:可視化設定
- DRAW でヒストグラムや点・線など複数レイヤーを追加
- PLACE で平均値ラインや注釈テキストを配置
- SCALE で色や軸の変換・パレット指定
- LABEL でタイトルやサブタイトル、軸ラベルを指定
- 各レイヤーは 複数の要素 を一括で描画可能
- データが整形済みの場合は VISUALIZE句のみ でも可視化可能
構造的・自己記述的な可視化の利点
- コードの 可読性・再現性・拡張性 が高い
- ggplot2 と同様の構造で、長期的な進化やLLMとの親和性も高い
- レイヤーやマッピングの 追加・変更・削除が容易
- 例:箱ひげ図からジッター付き散布図、バイオリンプロットへの切り替えも 構文の差分のみ
ggsql開発の動機
- SQLユーザー がデータ可視化を直感的に行える環境の整備
- SQLとグラフィックス文法の 相性の良さ を活かした設計
- RやPythonを使わずに 強力なコードベース可視化 を実現
- LLM(大規模言語モデル)との連携を見据えた 宣言的構文
- ggplot2の18年にわたる知見を 新しい基盤 に応用
SQLユーザーへのアプローチ
- SQLのみで分析を行うユーザー層向けの 新しい可視化体験
- データをエクスポートせずに 一貫した分析・可視化フロー を実現
- GUIベースBIツールの 再現性の低さ や既存SQL可視化ツールの 機能不足 を解消
- Quarto などコードベースのレポート生成・共有エコシステムへの橋渡し
宣言的データ加工・宣言的可視化
- SQLは 宣言的・構造的なデータ操作 言語
- グラフィックス文法も 宣言的・モジュラー構造 が特徴
- 両者の親和性を活かし、 強力かつ直感的な可視化ツール を提供
このように、 ggsql はSQLユーザーのための 新しい可視化体験 を提供し、 構造化・拡張性・再現性 に優れたコードベースの可視化を実現します。