はじめに
本記事ではmatplotlibのmplot3dを使って円柱(シリンダー)を3D表示する方法を解説します。円筒座標系を用いたデータ生成から3Dグラフ描画までの実装手順を、サンプルコードと共に詳しく紹介します。
コード

解説
モジュールのインポート
バージョン
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で透明度を50%に設定したsurfaceグラフを作成します。
蓋の作成
Circleオブジェクトを使用して、半径2、中心(0,0)の円を作成します。
ax.add_patchメソッドを使ってグラフに円を追加します。
pathpatch_2d_to3d関数を適用することで、3Dグラフ上に2D円を表示できるようになります。[3]
この円は円柱の蓋として表示されるため、z=10、zdir=”z”というパラメータを設定します。
底の作成
同様に円柱の底も作成します。底の位置は、z=0、zdir=”z”と設定します。
軸ラベル、軸範囲の設定
ax.set_box_aspect((1,1,1))でアスペクト比を揃えています。
回転アニメーション
作製した図を回転させると以下のようになります。
回転アニメーションについては、以下の記事を参考にして作成しました。

[matplotlib 3D] 14. 3Dグラフの回転アニメーション
matplotlibのmplot3dを使用して3Dグラフの回転アニメーションを作成する方法を解説します。動画として保存する手順や回転角度の制御など、3Dビジュアライゼーションを動的に表現するための基本テクニックを紹介します。
コメント
[…] [matplotlib 3D] 35. 円柱(円筒座標)matplotlib mplot3dによる円柱(円筒座標系)sabopy.com2018.11.26 […]