Power BI: バブル チャートを使ってみた

**Microsoft Power BI Advent Calendar 2024** の23日目の記事です。

https://qiita.com/advent-calendar/2024/powerbi

（[こちらのリポジトリ](https://github.com/knmaki/Power-BI-samples/tree/main/2406%20PBI%E5%8B%89%E5%BC%B7%E4%BC%9A%20LT%E4%BC%9A%2301%20%E3%83%90%E3%83%96%E3%83%AB%E3%83%81%E3%83%A3%E3%83%BC%E3%83%88)の転記。サンプルファイルもそこからダウンロードしてね。）

# 0. はじめに
## 0.1. これは何？
Power BI LT 会 1で発表した内容。バブル チャートを使ってみた話。発表の機会を与えていただいたPower BI 勉強会に感謝。

https://powerbi.connpass.com/event/321437/

![全体.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239172/67422450-dfc2-8a70-9c6b-d8994d5f3e81.png)

## 0.2. Power BI 勉強会とは
楽しいところです。

https://powerbi.connpass.com/

## 0.3. サンプルファイルの開き方
サンプルファイルは[こちら](https://github.com/knmaki/Power-BI-samples/tree/main/2406%20PBI%E5%8B%89%E5%BC%B7%E4%BC%9A%20LT%E4%BC%9A%2301%20%E3%83%90%E3%83%96%E3%83%AB%E3%83%81%E3%83%A3%E3%83%BC%E3%83%88)の `2406 PBI勉強会 LT会#01 バブルチャート.pbip` 。

プレビュー段階のPower BI Desktop プロジェクト（ `.pbip` ファイル）を使用しているので、プレビュー機能を有効にする必要あり。

https://learn.microsoft.com/ja-jp/power-bi/developer/projects/projects-overview

# 2. バブル チャートとは
まずはMS Learnより。バブル チャートは散布図ビジュアルから作るとのこと。

https://learn.microsoft.com/ja-jp/power-bi/visuals/power-bi-visualization-scatter?tabs=powerbi-desktop


余談。散布図ビジュアルはちょっと特殊なやつで、以下の3つのチャートに対応している。ビルド ペインでの列項目やメジャーの設定方法によって、どのチャートになるかが変わる。
- **散布図** : ２つの観測値の関係性を表す。分布そのものを見るので、最も基本的な分析。BIの世界ではあまり縁がないが、データ サイエンスだと、3つ以上の変数があればまずは散布図行列を見てみる（Power BIでやるならPythonかRビジュアルで）。
- **バブル チャート** : 3つの観測値の関係性を表す。しっかり観測値を吟味すれば、面白い結果が見えることも。ファクトフルネスって本で出てた。
- **ドット プロット チャート** : 横軸が数字じゃなくてカテゴリーになっている散布図。FOMCのドット チャートが有名（他知らない）。

# 3. バブル チャートを作ってみる

## 3.1. セマンティック モデルの説明
ファクト テーブルとして、都道府県別の人口、面積、県内総生産などの統計データ、ディメンション テーブルとして都道府県の分類の2つのテーブルが主。あとは、ビジュアル用のフィールド パラメーター。

![モデル ビュー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239172/15837cc9-34e1-052a-c4f5-8d0c24c7015e.png)

なお、数字はCopilot先生に作ってもらったもの。正確かどうかは確認していないので注意。


## 3.2. ビルド ペインの各項目の説明とできあがり
以下はバブル チャート作成時の項目の使い方。他のチャートの場合は異なるので注意。

![ビルド ペイン.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239172/f35d7988-08ba-c817-cb9c-b54c8805acbb.png)

（ `ヒント` が切れてる。。）

|項目名|説明|設定値|
|:-|:-|:-|
|**値**|データ ポイントの粒度。複数設定することで、ドリルダウンが可能。|都道府県の階層（地方区分）|
|**X軸**|X軸用のメジャー。|人口|
|**Y軸**|Y軸用のメジャー。|面積|
|**凡例**|バブルの色分け用の分類。|地方区分のフィールド パラメーター|
|**サイズ**|バブルのサイズ。|県内総生産|
|**再生軸**|バブル チャートの推移をみるときの時間軸。|なし|
|**ヒント**|マウス カーソルを当てた時に表示される付加情報。|平均寿命|

で、出来たのが次のチャート（都道府県単位にドリル ダウン済み）。良い感じな気がする。

![バブル チャート.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239172/c7d76385-27ce-6b9f-ecc5-b47a435adadc.png)


## 3.3. ビジュアルをテーブルで見てみる
X軸もY軸もメジャーなのは不思議な気がしたが、テーブルを見ると何となく納得。行見出しが、**凡例** と **値** で指定したディメンションの階層になっていたりとかも確かにと思わせられる。

![テーブル表示.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239172/9059e0bb-5a69-1424-4a37-a57e1bbd4baa.png)

## 3.4. ドリル アップ/ダウンが面白い
ビジュアルの右上に出てくるが、あんまり役に立つイメージがないドリル ダウン等であるが、バブル チャートの場合はまあまあ面白い。

![ドリルダウンアイコン_50pct.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239172/d96af6b0-b04c-0b72-a490-eaed458e805d.png)

### 階層内の次のレベルに移動
`↓↓` アイコンの「階層内の次のレベルに移動します」で遊んでみると。こんな感じ。

- 第一階層（地方2区分） ![バブル チャート_第一階層.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239172/a49a9528-80e9-79e1-71ee-fdcf60e044bf.png)
- 第二階層（地方7区分） ![バブル チャート_第二階層.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239172/130eaef3-55f9-c053-c9f8-169e27a76403.png)
- 第三階層（都道府県） ![バブル チャート_第三階層.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239172/10a2eff3-a817-c03e-58aa-3cfe70875093.png)


### ドリル ダウン
`↓` アイコンをクリックして、ドリル ダウンを有効化する。

バブルをクリックすると、どんどん分解される。おお、分析している感が出てきて気持ちいい。

- 第一階層（地方2区分）の東日本をクリック ![バブル チャート_ドリルダウン_第一階層.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239172/fd679cf5-db7f-a144-4c09-8567a3306c10.png)
- 第二階層（地方7区分）の中部をクリック ![バブル チャート_ドリルダウン_第二階層.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239172/9a74ec28-03a2-8101-864e-4af9b7efef07.png)
- 第三階層（都道府県） ![バブル チャート_ドリルダウン_第三階層.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239172/d2d4db7d-9126-9d93-14d3-741b7ce382cc.png)

## 3.5. フィールド パラメーターで工夫
凡例にフィールド パラメーターをセットすると、値のドリルダウンに合わせてバブルの色分けを変更可能。工夫すればさらに意味付けられたチャートに。
- 地方2区分で色分け ![バブル チャート_FP1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239172/28db7321-4a71-99e9-9d8c-b8e6d3307e20.png)
- 地方7区分で色分け ![バブル チャート_FP2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239172/de702ee4-78cd-7700-feb5-7dc735855bc9.png)

と言っても、色分けは4つ以下なら見やすいけれど、5つだと微妙で、6つ以上ならやらない方がマシかな。←「個人の感想です。効果には個人差があります。」

# 4. バブル チャートの他の使い方
商品ごとの売上と費用のデータを用意し、X軸を費用、Y軸を売上とする散布図を作成。その解釈は：
- 45°線（対称網掛け）の上側にいれば、利益が出ているということ。
- 傾きが急なら利益率が高い。
- バブルのサイズを一人当たりの利益にすれば、人的資本の効率性も評価可能。


# 5. 思ったこと
LT会発表時に準備した資料は簡素だったけれど、記事に直すとまあまあ大変だった。せっかくまとめたので、今度社内勉強会で使うことにしよう。