はじめに
matplotlibのmplot3dでボクセルグラフを表示する方法について解説する。
コード

解説
モジュールのインポート
データの生成
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とする必要がある。

参考
関連記事

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

[matplotlib 3D] 32. voxelグラフでハートを表示して回転する
matplotlib mplot3d voxelグラフでハート♡を表示する。回転アニメーションも表示する。

[matplotlib 3D] 31. voxels_torus
matplotlib mplot3dのvoxelでトーラスを表示。

[matplotlib 3D] 29. NumPyの以前のlogoをvoxelで表示
NumPyのロゴをmatplotlib mplot3dのvoxelグラフで表示する方法について説明する。
コメント
[…] [matplotlib 3D] 28. Pythonで3D voxelグラフ3D voxelグラフの作成について解説する。s… […]