はじめに
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
コメント