はじめに
ボクセル(Voxel)とは3次元空間における画素のことで、3D空間内の立方体の集まりで物体を表現します。Matplotlibのmplot3dツールキットを使用すると、このボクセルを使った3D表現が可能になります。ここでは例として、ピラミッドを作成する方法について説明します。
コード

解説
モジュールのインポート
3Dグラフの設定
データの生成
まずnp.indices((17, 17, 17))
を使用して、形状が(17,17,17)のインデックス値を持つ配列を作成し、これをそのままx、y、z座標として利用しています。
num
はnp.linspace(1,15,15)
で生成された、1から15までの整数を含む配列です。
v1 = (z == 0)
の条件では、z=0の平面において、すべてのx、y座標がTrueとなります。
v2 = (x <= num[-1]) & (y <= num[-1]) & (z == num[0]) & (x >= num[0]) & (y >= num[0])
の条件では、z=1の平面において、1≦x≦15かつ1≦y≦15の範囲がTrueになります。
同様にv3
、v4
、v5
…と、zの値を一つずつ上げながら、Trueとなるx、y座標の範囲を徐々に狭めていきます。
Pythonでの縦棒(|)はOR演算子であり、いずれかの条件がTrueならば結果もTrueになります。そのため、voxels = v1 | v2 | v3 | v4 | v5 | v6 | v7 | v8 | v9
という演算によって、ピラミッド型の立体形状が形成されます。
軸ラベル、軸範囲の設定
3Dグラフの表示
パラメーターfacecolor=’gold’を使用して面の色を金色に、edgecolor=’gray’で縁の色を灰色に設定し、ボクセルグラフを生成します。
コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)参考

ピラミッド - Wikipedia
コメント
[…] [matplotlib 3D] 46.ボクセルピラミッド(Voxel Pyramid)matplotlib mplot3dでvoxelによるピラミッドsabopy.com2019.02.06 […]