[matplotlib 3D] 46.ボクセルピラミッド(Voxel Pyramid)

matplotlib 3D

はじめに

matplotlib mplot3dのvoxelにより、ピラミッドを作成する。

コード

解説

モジュールのインポート

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を一つづつ上げて、x,yがTrueな範囲を狭めていっている。

pythonで縦棒(|)はORの意味なので、どれかがTrueならば、結果はすべてTrueになる。そのため、voxels = v1 | v2 | v3 | v4| v5 | v6 | v7 | v8 | v9 により、ピラミッド型の形状ができる。

軸ラベル、軸範囲の設定

3Dグラフの表示

facecolor=’gold’で面の色が金色、 edgecolor=’gray’で縁が灰色のボクセルグラフが生成する。

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

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

参考

ピラミッド - Wikipedia

コメント

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