[matplotlib animation] 88. imshowでのcmap変化アニメーション

matplotlib

はじめに

Matplotlibのplt.imshowで表示した画像に対して、カラーマップ(cmap)を動的に変化させるアニメーションを作成する方法について解説します。FuncAnimationを使用して、同じ画像データに対して異なるカラーマップを適用し、視覚的な変化を時間経過とともに表示します。

コード

解説

モジュールのインポート

バージョン

cmapリストの作成

cmapのリストを作成します。

画像データの作成

512 × 512の画像内にランダムな点を100000と-100000の値で配置し、gaussian_filterでぼかした画像を使用します。

figの作成

ax.imshowを使用して画像を表示し、make_axes_locatableとappend_axesでカラーバーを配置します。

アニメーション関数

カラーマップはset_cmap関数を使って順次変化させ、各フレームのタイトルには現在使用中のcmap名を表示します。

アニメーションの表示

FuncAnimationを使用してアニメーションを表示します。フレーム数はlen(cmaps)、インターバルは250msに設定し、約21秒のアニメーションを作成します。

HTML(ani.to_html5_video())を使うと、Jupyter NotebookやJupyter Lab上で直接アニメーションを表示できます。

また、ani.save(‘ファイル名’, writer=”ffmpeg”, dpi=100)を実行すると、アニメーションをMP4形式で保存できます。

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

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

まとめ

Matplotlibを使用して画像のカラーマップを変化させるアニメーションを作成することで、同じデータでも表示方法によって印象が大きく変わることが理解できます。このテクニックは科学的可視化やデータ分析において、データの異なる側面を強調するのに役立ちます。

参考

https://matplotlib.org/tutorials/colors/colormaps.html
matplotlib.pyplot.set_cmap — Matplotlib 3.3.1 documentation

コメント