はじめに
matplotlibのmplot3dでボクセルグラフを表示する方法について解説する。
コード
![](https://sabopy.com/wp/wp-content/uploads/2018/10/voxel-800x533.jpg)
解説
モジュールのインポート
データの生成
3Dボクセルグラフは、データを立方体で表示するグラフのことであり、2次元のピクセルに対して、3次元のボクセルということになっている。[1]
np.indicesで各要素のindexの値をもつ配列ができる。例えば、np.indices((2, 2, 2))とすれば、
x= [[[0 0] [0 0]] [[1 1] [1 1]]]
y= [[[0 0] [1 1]] [[0 0] [1 1]]]
z= [[[0 1] [0 1]] [[0 1] [0 1]]]
となる。[2]
8×8×8の配列でcube1の条件に当てはまるとこだけ、Trueとなる。cube2, linkも同様。
で各配列を比較して、Trueの場合はTrueになる。[3]
色の設定
np.emptyで適当な同じ形の配列をつくって、linkの場合、linkがTrueの部分を’red’とする。他も同様に色を設定する。
ボクセルグラフの表示
ax.voxels(voxels)でボクセルグラフを表示できる。
facecolorで色を設定して、edgecolorを黒としてプロットした。
影なしボクセルグラフ
defaultでshade=Trueなので、影無しにしたい場合、shade=Falseとする必要がある。
![](https://sabopy.com/wp/wp-content/uploads/2018/10/voxel_shadeoff-800x533.jpg)
参考
関連記事
![](https://sabopy.com/wp/wp-content/uploads/2019/11/voxel_pyramid-160x90.jpg)
[matplotlib 3D] 46.ボクセルピラミッド(Voxel Pyramid)
matplotlib mplot3dでvoxelによるピラミッド
![](https://sabopy.com/wp/wp-content/uploads/2019/11/3Dvoxel_heart-160x90.jpg)
[matplotlib 3D] 32. voxelグラフでハートを表示して回転する
matplotlib mplot3d voxelグラフでハート♡を表示する。回転アニメーションも表示する。
![](https://sabopy.com/wp/wp-content/uploads/2018/10/3Dvoxel_torus-160x90.png)
[matplotlib 3D] 31. voxels_torus
matplotlib mplot3dのvoxelでトーラスを表示。
![](https://sabopy.com/wp/wp-content/uploads/2019/10/numpylogo_noskima-160x90.jpg)
[matplotlib 3D] 29. NumPyの以前のlogoをvoxelで表示
NumPyのロゴをmatplotlib mplot3dのvoxelグラフで表示する方法について説明する。
コメント
[…] [matplotlib 3D] 28. Pythonで3D voxelグラフ3D voxelグラフの作成について解説する。s… […]