はじめに
3Dデータの可視化は、科学研究、エンジニアリング、デザインなど様々な分野で重要な役割を果たしています。PythonのライブラリMatplotlibを使用すると、3D空間でポリゴン(多角形)を生成・表示することができます。この記事では、3Dポリゴンの基本的な生成方法から応用例まで紹介します。
コード&解説
モジュールのインポート
バージョン
基本的な3Dポリゴンの生成方法
Matplotlibのmplot3dツールキットを使うことで、3D空間に多角形を描画できます。基本的な手順は以下の通りです:

このコードは、Matplotlibを使用して3D空間に八角形ポリゴンを描画するものです。主要部分の解説は以下の通りです:
- ライブラリのインポート: matplotlib、numpy、3D描画用のツールキットをインポートしています。
- 描画領域の設定: 3D投影を持つサブプロットを作成しています。
- 八角形の頂点計算:
- 半径1の円周上に8点を等間隔で配置。
- numpy.linspace関数で0から2πまでの角度を8等分し、各頂点のx,y座標を計算。
- ポリゴンの描画:
- 頂点をリスト化して3Dポリゴンコレクションを作成。
- 透明度(alpha=0.8)とサーモン色を設定。
- 表示設定: 軸の範囲設定、ラベル付け、アスペクト比の設定を行い、最終的にプロットを表示。
複数の3Dポリゴンを積み重ねる
上記の基本例を拡張して、複数の六角形を異なるz座標に積み重ねることができます。これにより、より複雑な3D構造を表現できます。

- 描画環境のセットアップ:
fig = plt.figure()
でプロット領域を作成し、ax = fig.add_subplot(111, projection='3d')
で3D表示用のサブプロットを設定しています。 - 多層ポリゴンの定義:
z_values = [0, 0.5, 1]
で3つの異なる高さ(Z座標)を定義し、それぞれの高さに8角形を配置するようにしています。 - 色の設定:
colors = ['red', 'green', 'blue']
で各層のポリゴンに対して異なる色を割り当てています。 - ポリゴンの生成と表示:forループを使って、各高さごとに8角形のポリゴンを生成しています。
verts = [list(zip(x, y, [z]*8))]
で頂点の座標リストを作成。poly = Poly3DCollection(verts, alpha=.5)
で透明度0.5のポリゴンオブジェクトを作成。- 最初に
set_color('salmon')
を実行していますが、その後set_color(colors[i])
で各層に異なる色(赤、緑、青)を割り当て直しています。
- 表示設定:軸の比率、範囲、ラベルを設定して、最終的に
plt.show()
でプロットを表示しています。
まとめ
Matplotlibを使った3Dポリゴン生成は、データ可視化、科学研究、教育など様々な分野で役立ちます。基本的な多角形の描画から始めて、複雑な3Dモデリングまで発展させることができます。
この記事で紹介した技術を応用すれば、地形モデル、数学的オブジェクトなど、多様な3D表現が可能になります。Pythonの豊富なライブラリと組み合わせることで、さらに高度な3Dビジュアライゼーションも実現できるでしょう。
コメント