Plotly 3D Mesh Plot の描き方

plotly使い方

Plotly での3次元グラフのプロットシリーズとして、今回の記事では、Mesh Plotについて紹介していきます!!

スポンサーリンク

Mesh Plot とは ?

go.Mesh3dは、graph_objectで使える関数です。
x、y、zで指定された頂点を持つ3Dの三角形を描画して描画していきます。

  • 座標のみが指定された場合 : ドロネーの三角形分割などのアルゴリズムを用いて三角形を描画
  • それ以外の場合 : i,j,kの各パラメータを使って三角形を指定

 実際に描いてみると下記のようなグラフが描画できます!

Aplha hull の設定

alphahullパラメータを用いることで、メッシュの形状を設定できます。

  • 値が-1(デフォルト値)の場合 : ドロネー法による三角測量を適用
  • 0以上の場合は、alphashapeアルゴリズムを適用
  • 0の場合は、凸包 (convex hull) が表現されます(結果的に凸体になる)

実際に、alphahullを設定してみると以下の通り。左から順に alphahull = 5, 0, -1

スポンサーリンク

Mesh Plot (応用編)

データから Mesh Plotを描画

 Mesh Plot の描画に必要なデータは、各頂点の座標である x,y,z 座標の位置と、表面の色(facecolor)、そして三角形を決定するときに必要な i,j,k というパラメータです。これらが揃っている場合は、そのまま図示化できます!

 Plotly 側で サンダル の描画データが揃っているものがあったので、それを呼び出してみると、このような形になっています。

import pandas as pd
base_url = "https://raw.githubusercontent.com/plotly/datasets/master/ply/"
df = pd.read_csv(base_url + 'sandal-ply.csv') 
df.head(10)

 次に、これらから Mesh Plot を描画するためにコードを描いてみると、Plotを描くことができます!

fig = go.Figure()
fig.add_trace(go.Mesh3d(
        x=df['x'], y=df['y'], z=df['z'], 
        i=df['i'], j=df['j'], k=df['k'], 
        facecolor=df['facecolor'] 
))
fig.show()

コメント

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