Plotly⑥(サンバーストグラフ)

サンバーストグラフ

Plotlyでサンバーストグラフを描画するにはSunburstクラスを使います。

Sunburstクラスの引数は下記の通りです。

  • labels
    セクタごとのラベルを設定。
  • parents
    親セクタごとのラベルを設定。
    最上位の階層にする場合は空の文字列を設定。
  • values
    セクタごとの値を設定。
  • branchvalues
    値を合計する方法を設定。
    “total”:親が子の階層すべての合計
    “remainder”:子が親とは別の値

次のコードでは、左図に親が子の階層すべての合計となるサンバーストグラフを表示し、左図に子が親とは別の値となるサンバーストグラフを描画しています。

[Google Colaboratory]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import plotly.graph_objects as go
from plotly.subplots import make_subplots

asset_labels = ["資産", "債権", "A社", "B社", "株式", "C社", "D社", "預金","Z社"]
asset_parents = ["", "資産", "債権", "債権", "資産", "株式", "株式", "資産","B社"]
asset_values = [1000, 400, 300, 100, 200, 160, 40, 400, 50]

sunburst_fig = make_subplots(
1, 2, specs=[[{"type": "domain"}, {"type": "domain"}]]
)

sunburst_fig.add_trace(
go.Sunburst(
labels=asset_labels, # セクタごとのラベル
parents=asset_parents, # 親セクタのラベル
values=asset_values, # セクタごとの値
branchvalues="total", # 親が子の階層すべての合計値
),
row=1,
col=1,
)

sunburst_fig.add_trace(
go.Sunburst(
labels=asset_labels,
parents=asset_parents,
values=asset_values,
branchvalues="remainder", # 子が親とは別の値
),
row=1,
col=2,
)

sunburst_fig.show()

[実行結果]

サンバーストグラフの特定の階層をクリックすると、その階層がドリルダウンして描画されます。

特定階層を選択した状態から、親の階層をクリックすると元のグラフに戻ります。

[実行結果 (左図:債権を選択 右図:株式を選択)]