6.1.2
ツリーマップ
まとめ
- ツリーマップで階層的カテゴリの数値データを面積と色で可視化する。
squarifyで矩形を分割描画し、損益などを色分けで表現する。- 株式ポートフォリオや予算配分など、構成要素の大きさを比較するのに使う。
ツリーマップとは階層的なカテゴリを持つ数値データの可視化に使用できる図です。日経平均やS&P 500が代表的な例です。このnotebookではsquarifyを使用します。
ツリーマップはplotlyを使うことでも作成できます。(参考: Treemap charts with Python - Plotly)
| |

ポートフォリオを可視化する #
持っている銘柄ごとの取得価格・現在価格のデータがあったとします。 そこから、finvizのようなヒートマップを作ってみます。
データを作成する #
仮に、csvから以下のようなデータを読み込んだとします。
※ここに示しているのは架空のデータです
| |
| 銘柄名 | 取得価額 | 現在の価額 | 評価損益 | |
|---|---|---|---|---|
| 0 | PBR | 80.20 | 130.0 | 49.80 |
| 1 | GOOG | 1188.00 | 1588.0 | 400.00 |
| 2 | FLNG | 70.90 | 230.0 | 159.10 |
| 3 | ZIM | 400.22 | 630.1 | 229.88 |
| 4 | GOGL | 120.20 | 90.9 | -29.30 |
| 5 | 3466\nラサールロジ | 156.20 | 147.0 | -9.20 |
ツリーマップの色を指定する #
利益が出ている箇所を緑色、損が出ている箇所を赤色にします。
| |
['PBR' 'GOOG' 'FLNG' 'ZIM' 'GOGL' '3466\nラサールロジ']
['#00ff00', '#00b900', '#00ff00', '#00f600', '#a20000', '#730000']
[62.094763092269325, 33.670033670033675, 224.4005641748942, 57.43840887511868, -24.376039933444257, -5.8898847631241935]
ツリーマップを表示する #
損益を色で表現し、損益の割合もツリーマップ上に表示してみます。
| |

キャッシュの表示を追加する #
キャッシュの表示も追加してみます。色はグレーにします。
| |

いつ使うか #
- 適している場面: 階層的なカテゴリの数値を面積で直感的に俯瞰したいとき。全体の中の比率が一目で分かります。
- 不向きな場面: 面積の微妙な差は人間の目で正確に判別しにくいため、厳密な数値比較には不向きです。
- 代替手段: 正確な値の比較が必要なら棒グラフ、階層構造の表現が主ならサンバーストチャートを検討してください。
よくある失敗パターン #
- 面積の微妙な差の判読困難: 面積がわずかに異なるセルの大小を人間の目は正確に判別できません。重要な値はセル内にラベルで数値を表示してください。
- 階層が深すぎる: 3 階層以上のネストは内部のセルが極端に小さくなります。2 階層までに抑えるか、インタラクティブなドリルダウンを検討しましょう。
- ドーナツチャート — 構成比率を円で視覚的に表現
- サンキーダイアグラム — ステップ間の流量を帯の太さで表現
- ワッフルチャート — 100マスで構成比を直感的に表示