Plotly : 3D Cone Plots の描き方まとめ

plotly使い方

 前回のPlotly記事では、ベクトル場をプロットすることができる Quiver Plot についてまとめました!今回の記事では、その3次元版である Cone Plotsについてまとめていきます!!

Plotly:ベクトルと場の可視化 (Quiver Plots)
 物理現象を可視化するときに、矢印の大きさや向きを用いて、ベクトルや場を可視化するときがあると思うのですが、そのような図もPlotly では、描くことができます! この 3次元版として、Cone Plots というものもありますが、今回の...
スポンサーリンク

Cone Plot とは?

 ベクトルの方向 と ノルムを コーンで表して、3次元のベクトル場を可視化できるプロットです!
 Quiver Plot の 3次元版でもあります

Cone Plot (基本編)

 ここでは、Cone Plot を描くのに最低限な6つの要素を説明します。

必要な6つの要素
  • x, y, z : 3次元の座標
  • u, v, w : ベクトル場の座標

 Plotly の Graph objects では、go.Cone() で Cone Plotを描くことができるので、一つのコーンを実際に描いてみると下の図のようになります!

サンプルコード

import plotly.graph_objects as go

fig = go.Figure()
fig.add_trace(
    go.Cone(x=[1], y=[1], z=[1], u=[1], v=[0], w=[0])
)
fig.show()

複数の Cone Plot を描く

 上の例では、1つのCone を描いていきましたが、実際には複数を同時に描くことの方が多いと思います。その例として、ここでは、Cone を 3つに増やして描いてみます!
 プラグラムとしては、ほぼ変わらず、x, y, z, u, v, w などの各要素の数 をそれぞれ増やすことで対応

サンプルコード

import plotly.graph_objects as go

fig = go.Figure()
fig.add_trace(go.Cone(
    x=[3, 2, 1],
    y=[1, 2, 3],
    z=[3, 2, 1],
    u=[4, 0, 0],
    v=[0, 2, 0],
    w=[0, 0, 1],
))

fig.show()

csv から読み込んで 描く

 x, y, z, u, v, w に関しては、csvから読み込んでシリーズ型で代入してもOKです!
この例では、Plotly で提供されている vortex.csv というサンプルを用いて、そこから読み込む形で描画をしていきます!

サンプルコード

import plotly.graph_objects as go
import pandas as pd

df = pd.read_csv("https://raw.githubusercontent.com/plotly/datasets/master/vortex.csv")

fig = go.Figure()
fig.add_trace(go.Cone(
    x=df['x'], y=df['y'], z=df['z'],
    u=df['u'], v=df['v'], w=df['w'],
    colorscale='Greens',
    sizemode="absolute",
    sizeref=50
))

fig.show()

参考

 今回取り上げた Plotly に関するサンプルは、下記の公式のドキュメントの例に加えて異なるバージョンを可視化してみました!

3D Cone Plots
How to make 3D Cone plots in Python with Plotly.

コメント

タイトルとURLをコピーしました