はじめに
voxel(ボクセル)は「volumetric pixel」の略で、3次元空間における最小単位の立方体です。2次元の「ピクセル」が3次元に拡張されたものと考えることができます。ここでは、Pythonのmatplotlibを使用した3D voxelグラフの作成方法について解説します。
コード

解説
モジュールのインポート
データの生成
3Dボクセルグラフとは、データを立方体で表示するグラフです。2次元空間のピクセルに対して、3次元空間ではボクセルと呼ばれています。[1]
np.indicesは各要素のインデックス値を持つ配列を生成します。例えば、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がTrueの部分には’red’という色を割り当てます。同様の方法で他の要素にも適切な色を設定できます。
ボクセルグラフの表示
ax.voxels(voxels)関数を使用してボクセルグラフを表示できます。この例では、facecolorパラメータで色を設定し、edgecolorを黒に指定してプロットしています。
影なしボクセルグラフ
デフォルトでは shade=True が設定されているため、影を表示したくない場合は shade=False を指定する必要があります。

参考
関連記事





コメント
[…] [matplotlib 3D] 28. Pythonで3D voxelグラフ3D voxelグラフの作成について解説する。s… […]