はじめに
配列の中の要素を取り出す場合は、スライスを使う。構文はx[start:stop:step] のようになり、デフォルトではstart=0, stop=配列のサイズ,step=1となっている。ここでは、いろいろなスライス方法をmatplotlib mplot3dのvoxelグラフで可視化した例について説明する。
コード

解説
モジュールのインポート
データの生成
0から24の要素をもつ5×5の配列を作成します。
figの作成
2×3で6個の3Dグラフを作成します。projection=’3d’とすることで、3Dグラフにしています。
ボクセルデータの設定
ボクセルの表示設定を行います。v1は全グラフに表示される基本ボクセルとして機能し、v2からv7までは各種スライス操作の結果に対応するボクセルを生成します。
ボクセルグラフの設定
for文を使用してax1からax6まで共通する設定をまとめて行います。
aa.voxels(v1, facecolors=’pink’, edgecolor=’grey’)で5×5のベースとなるボクセルを表示します。
aa.set_axis_off()で軸と軸ラベルを非表示にします。
aa.view_init(90, 270)で視点を設定し、90度で真上からの視点、270度で原点(0,0)が左下に位置するようにします。この設定を行わない場合、見た目は下図のようになります。

軸ラベルなどを非表示としたので、aa.text2D(0.4, 0.15, “axis 0”, transform=aa.transAxes)などで軸ラベルを表示します。
ボクセルグラフの表示
ax1.voxels(v2, facecolors=’lime’, edgecolor=’green’)などで、スライスの適合する位置を緑としています。
ax1は下記のようになります。
ax2は第0軸が一個飛ばしとなり、第1軸の要素はすべてスライスされます。
ax3では、第0軸はすべてスライスされ、第1軸は1番目から一個飛ばしでスライスされます。
ax4は、-1とすることで各軸の最後の要素をスライスできます。
ax5の[-2:]は後ろから2番目以降から最後までという意味になります。
ax6はax1と見た目は同じですが、配列の順番が逆順になります。
図全体のタイトル名は、fig.suptitle(‘Visualization of slice’, fontsize=24)のようにすることで表示できます。
コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)
コメント