Plotly⑤(円グラフ)

円グラフ

Plotlyで円グラフを描画するにはPieクラスを使います。

Pieクラスの引数 valuesにリストなどのデータを設定すると、百分率が自動で算出された円グラフが表示されます。(8行目)

また、引数 labelsに各要素のラベルを設定すると凡例やホバーツールに表示されます。

[Google Colaboratory]

1
2
3
4
5
6
7
8
9
10
import plotly.graph_objects as go

companies = ["A社", "B社", "C社", "D社"]
sales_2020 = [900, 700, 200, 100]
sales_2021 = [1400, 980, 450, 380]

go.Figure(
go.Pie(labels=companies, values=sales_2020),
layout=go.Layout(title="売上"), # figureのタイトル
).show()

[実行結果]

複数の円グラフ

複数の円グラフを表示しつつ、合計値の大きさの比率で比較してみます。

Pieクラスの引数 scalegroupに文字列を渡すと、同じ文字列で指定されたtraceの合計値に応じて円グラフ全体の面積が調整されます。(13,22行目)

2つのデータの合計値を比較した円グラフを表示するコードは、下記のようになります。

[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
from plotly.subplots import make_subplots

sales_pie_fig = make_subplots(
rows=1,
cols=2,
specs=[[{"type": "domain"}, {"type": "domain"}]],
subplot_titles=["2020年の売上", "2021年の売上"], # サブプロットのタイトル
)
sales_pie_fig.add_trace(
go.Pie(
labels=companies,
values=sales_2020, # 同じscalegroupでサイズが調整される
scalegroup="sales",
),
row=1,
col=1,
)
sales_pie_fig.add_trace(
go.Pie(
labels=companies,
values=sales_2021,
scalegroup="sales"), # 同じscalegroupでサイズが調整される
row=1,
col=2,
)
sales_pie_fig.show()

[実行結果]