Plotly Surfaceを使ったサーフェスプロット#
※記事内に商品プロモーションを含むことがあります。
公開日
Pythonのインタラクティブなグラフを描画できるライブラリPlotlyにて、Surface
を使ったサーフェスプロットを描画する方法を解説します。
Plotlyには、高水準のAPIであるPlotly Expressと呼ばれるものもありますが、
この記事では細かい調節ができるgraph_objects
を対象としています。
Surfaceの基礎#
Surface
を使ったサーフェスプロットの簡単な例を示します。
import plotly.graph_objects as go
x = [0, 1, 2, 3]
y = [0, 1, 2]
z = [
[0, 0, 0, 0],
[2, 3, 3, 2],
[1, 1, 1, 1],
]
fig = go.Figure(
data=go.Surface(x=x, y=y, z=z),
)
fig.show()
go.Surface()
では、連続した面(サーフェス)を描画できます。
x
, y
, z
引数にそれぞれx, y, z座標の配列を与えます。
z
は2次元配列とします。
色のオプション#
go.Surface
の色に関する主なオプションを以下に示します。
cmax
,cmin
(float): カラースケールの上限と下限colorscale
(str): カラーマップを指定opacity
(float): 透明度(0~1). 0に近いほど透明reversescale
(bool):True
にするとカラーマップの色順を反転showscale
(bool):False
にするとカラーバーを非表示
赤色で透明度0.7とした例を以下に示します。
fig = go.Figure(
data=go.Surface(x=x, y=y, z=z, colorscale="Reds", opacity=0.7),
)
fig.show()
等高線のオプション#
go.Surface
のcontours
オプションで等高線を表示することができます。
contours
はx, y, z軸ごとに辞書形式で指定します。
主なキーは以下になります。
show
(bool):True
にすると等高線を表示(デフォルト:False
)color
(str): 等高線の色start
(float): 等高線の描画を開始する値end
(float): 等高線の描画を終了する値size
(float): 等高線を描画する間隔width
(float): 等高線の線幅
x軸方向の等高線を追加した例を以下に示します。
等高線の間隔 (size
) は0.2としました。
contours = {
"x": {
"show": True,
"color": "white",
"start": 0,
"end": 3,
"size": 0.2,
"width": 16
}
}
fig = go.Figure(
data=go.Surface(x=x, y=y, z=z, contours=contours),
)
fig.show()