はじめに
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
コメント
[…] [matplotlib 3D] 46.ボクセルピラミッド(Voxel Pyramid)matplotlib mplot3dでvoxelによるピラミッドsabopy.com2019.02.06 […]