[matplotlib 3D] 35. 円柱(円筒座標)

matplotlib 3D

はじめに

matplotlib mplot3dで円柱を表示する方法を解説する。ここでは円筒座標系でデータを生成する。

コード

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

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

解説

モジュールのインポート

バージョン

3Dグラフにする設定

figを作成して、fig.gca(projection=’3d’)で3Dグラフにする。

円柱データの生成

半径2, 高さ10の円柱にする。
theta,zでmeshgridを作成して[1]、X, Yは円筒座標なので、

$$x=rcos\theta\\y=rsin\theta$$

とする[2]

円柱をplot_surfaceで表示

color=’g’で緑色、alpha=0.5で透明度0.5のsurfaceグラフを作成する。

蓋の作成

Circleで半径2の中心(0,0)の円を作成する。
ax.path_patchでグラフに追加する。
pathpatch_2d_to_3dで3dグラフ上に2dの円が表示可能となる。[3]
表示する場所は、蓋なのでz=10, zdir=”z”とする。

底の作成

蓋と同様に底も作成する。
蓋の位置は、z=0, zdir=”z”となる。

軸ラベル、軸範囲の設定

ax.set_box_aspect((1,1,1))でアスペクト比を揃えている。

回転アニメーション

作製した図を回転させると以下のようになる。

回転アニメーションは以下の記事を参考にして作成した。

[matplotlib 3D] 14. 3Dグラフの回転アニメーション
matplotlib mplot3d のグラフの回転アニメーション

参考

  1. Numpy入門 メッシュグリッドと可視化 – Python学習講座
  2. 円筒座標系 | CAE用語集| ソフトウェアクレイドル
  3. python – Add cylinder to plot – Stack Overflow
matplotlib 3D python
サボテンパイソン

コメント

  1. […] [matplotlib 3D] 35. 円柱(円筒座標)matplotlib mplot3dによる円柱(円筒座標系)sabopy.com2018.11.26 […]