Plotly で 描ける3次元グラフシリーズもついに第10弾!!
今回は、Bubble charts の描き方 についてまとめていきます!
これまでに Scatter Plots として 3次元の散布図を説明していきましたが、今回の記事で紹介する Bubble Charts は散布図のプロット点の大きさを変更できるように拡張したような図です!
3Dバブルチャート 基本編
3Dバブルチャートの基本設定としては、下記要素を設定すれば OKです!
x, y, z 座標 の設定はもちろんのこと、mode は 'markers' (点のプロット) とするところまでは、散布図 (Scatter Plots)と同じですが、バブルチャートとの違いは markerの設定にあります。
marker では、プロットする点についての設定ができる場所ですが、ここで size を設定することで それに対応した点のサイズの設定をすることができます!
go.Scatter3d(
x = 'x座標', y = 'y座標', z = 'z座標',
mode='markers',
marker=dict(
size= '点のサイズのリスト',
)
)
Sample code
import plotly.graph_objects as go
fig = go.Figure()
fig.add_trace(go.Scatter3d(
x = [1, 2, 3],
y = [3, 2, 1],
z = [3, 2, 1],
mode='markers',
marker=dict(
size=[30,20,10],
)
) )
3Dバブルチャート 応用編
このブログでも何度も取り上げている 大陸・地域別の平均寿命を元にしたデータについてもグラフ化することもできます!
下の図は、Plotlyで公式にまとめられている図・コードをベースにして作成したものです。ここでは 各プロット点の大きさが平均寿命の値によって可視化することができるようになっていることがわかります!!
Sample Code
import plotly.graph_objects as go
import pandas as pd
df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/gapminderDataFiveYear.csv')
start, end = 750,1500
fig = go.Figure()
fig.add_trace(go.Scatter3d(
x=df['year'][start:end],
y=df['continent'][start:end],
z=df['pop'][start:end],
text=df['country'][start:end],
mode='markers',
marker=dict(
sizemode='diameter',
sizeref=750,
size=df['gdpPercap'][start:end],
color = df['lifeExp'][start:end],
colorbar_title = 'Life<br>Expectancy',
)
))
fig.update_layout(height=800, width=800,
title='Examining Population and Life Expectancy Over Time')
fig.show()
コメント