[matplotlib animation] 78. add_subplotで作成した複数グラフの回転アニメーション

matplotlib

はじめに

skimage.morphologyのoctahedronで、大きさの異なる八面体の構造化要素の図をadd_subplotで作成し、それぞれの図の回転アニメーションを表示する。

コード

解説

モジュールのインポートなど

バージョン

構造化要素の生成

辞書形式で大きさの異なる八面体を作成する。
octahedron(5)で半径が5の八面体を作成できる。

構造化要素の表示

最初に空のリスト(axes)を作成する。

plt.figure(figsize=(12,8))でfigを作成し、fig.add_subplot(2, 3, idx)で図を順次生成していく。projection=Axes3D.nameとすることで3Dグラフを表示できる。
ax.voxels(struc,ec=’w’)によりボクセルグラフで立方体を表示する。ecで各セルのエッジカラーを設定でき、ここではwで白とした。fcで各セルの面の色を設定できる。
なお、ボクセルグラフについては下記で解説した。

[matplotlib 3D] 28. Pythonで3D voxelグラフ
Pythonのmatplotlibを使用した3D voxelグラフの作成方法について解説します。voxelは3次元空間内のピクセルで、データの可視化や3D構造の表現に役立ちます。このチュートリアルでは基本的な使い方から応用例まで紹介します。

ax.set(xlim=(-1,struc.shape[0]+1)などで各構造化要素の大きさに応じた軸範囲設定を行う。

作成した図はaxes.append(ax)でリストに加える。
idx += 1によりidxに1を足して次の図の作成を行う。

アニメーションの関数

view_initをリスト内の各要素に適用して図の見える角度を変化させて回転アニメーションとする。

アニメーションの表示

FuncAnimationでアニメーションを表示する。frame数はデフォルトで100なのでintervalが100msの場合、10秒のアニメーションとなる。
HTML(ani.to_html5_video())により、jupyter notebook またはjupyter lab上にアニメーションを表示できる。

コードをダウンロード(.pyファイル)

コードをダウンロード(.ipynbファイル)

参考

Generate footprints (structuring elements) — skimage 0.26.0rc0.dev0 documentation
skimage.morphology — skimage 0.26.0rc0.dev0 documentation
[matplotlib 3D] 14. 3Dグラフの回転アニメーション
matplotlibのmplot3dを使用して3Dグラフの回転アニメーションを作成する方法を解説します。動画として保存する手順や回転角度の制御など、3Dビジュアライゼーションを動的に表現するための基本テクニックを紹介します。

コメント