[matplotlib 3D] 11. 3Dグラフ上に円、線、面などの図形を表示(pathpatch3d)

matplotlib 3D

はじめに

3Dグラフ上に円、線、面などの図形を表示する方法について説明する。

コード

コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)

解説

モジュールのインポート

円にはCircle、線と面(ポリゴン)にはart3dを使う。

3Dグラフの設定

fig.add_subplot()にaspect=’equal’をいれることもできる。グラフのアスペクト比が揃う。

3Dグラフでアスペクト比を揃えるには、figsize =(5,5)のようにする。

円の追加

Circle((xの位置、yの位置), 半径) で円の設定。[2]
ax.add_patch(q)で図中に円を追加。
2dの円なので、pathpatch_2d_to_3dで3Dグラフ上に表示できる。[3]

線の追加

Line3D([xの座標]、[yの座標]、[zの座標])で1個めのX,Y,Zの位置から連続して最後のX,Y,Zの位置にまで線が引かれる。
ax.ad_line(line)で図中に線を追加。[4]

ポリゴンの追加

x,y,zの位置情報は、list(zip(x,y,z))でまとめて、Poly3DCollectionにリスト[]としていれてあげれば描写できる。[5]
ax.add_collection3d()で図中に追加できる。

参考

  1. Draw flat objects in 3D plot — Matplotlib 2.1.1 documentation
  2. Matplotlibでグラフを作図-02 円を作図して簡単な信号機アニメーションを …
  3. mpl_toolkits.mplot3d.art3d.pathpatch_2d_to_3d – Matplotlib
  4. mpl_toolkits.mplot3d.art3d.Line3D — Matplotlib 3.0.2 documentation
  5. Plotting 3D Polygons in python-matplotlib – Stack Overflow

コメント

  1. […] なる。[3]表示する場所は、蓋なのでz=10, zdir=”z”とする。 […]

  2. […] [3]表示する場所は、蓋なのでz=10, zdir=”z”とする。 […]