はじめに
このページでは、matplotlibを使って3Dグラフ上に円、線、面などの図形を表示する方法について説明します。pathpatch3dを利用して、2次元のパスを3D空間に投影する手法を紹介します。
コード

解説
モジュールのインポート
円にはCircle、線と面(ポリゴン)にはart3dを使います。
バージョン
3Dグラフの設定
3Dグラフでアスペクト比を揃えるには、ax.set_box_aspect((1,1,1))のようにします。
円の追加
Circle((xの位置、yの位置), 半径) で円を設定します。[2]
ax.add_patch(q) で図中に円を追加します。2D の円を pathpatch_2d_to_3d 関数を使って3Dグラフ上に表示できます。[3]
線の追加
Line3D([xの座標]、[yの座標]、[zの座標])を使うと、最初のX,Y,Z座標から最後のX,Y,Z座標まで連続した線が引かれます。ax.add_line(line)で図中に線を追加できます。[4]
ポリゴンの追加
x, y, z の位置情報は、list(zip(x, y, z)) でまとめて、Poly3DCollection にリスト [] で渡すことで描画できます。[5] ax.add_collection3d() で図中に追加できます。
回転アニメーション
作製した図を回転させると以下のようになります。
回転アニメーションは以下の記事を参考にして作成しました。

[matplotlib 3D] 14. 3Dグラフの回転アニメーション
matplotlibのmplot3dを使用して3Dグラフの回転アニメーションを作成する方法を解説します。動画として保存する手順や回転角度の制御など、3Dビジュアライゼーションを動的に表現するための基本テクニックを紹介します。
まとめ
pathpatch3dを使用することで、2次元の図形を3D空間に投影し、視覚的に豊かなグラフ表現が可能になります。円や線、多角形などの基本図形を組み合わせることで、複雑な立体表現も実現できます。
データ可視化においては、これらの技術を活用することで、より直感的で分かりやすい表現が可能になります。特に科学データや統計データの表現に役立ちます。
参考
Draw flat objects in 3D plot — Matplotlib 3.10.5 documentation
mpl_toolkits.mplot3d.art3d.Line3D — Matplotlib 3.10.5 documentation
mpl_toolkits.mplot3d.art3d.pathpatch_2d_to_3d — Matplotlib 3.10.5 documentation

Plotting 3D Polygons
I was unsuccessful browsing web for a solution for the following simple question:How to draw 3D polygon (say a filled re...
コメント
[…] なる。[3]表示する場所は、蓋なのでz=10, zdir=”z”とする。 […]
[…] [3]表示する場所は、蓋なのでz=10, zdir=”z”とする。 […]