[matplotlib animation] 67. 2次元ランダムウォークのヒートマップアニメーション

matplotlib Animation

はじめに

2次元ランダムウォークは、粒子が上下左右にランダムに移動する現象をシミュレーションしたものです。この記事では、Pythonのmatplotlibライブラリを使用して、以下の内容を実装します:

  • FuncAnimationを用いたスムーズなアニメーション生成
  • 複数の粒子がランダムに動く様子のアニメーション表示
  • 粒子の分布状況をリアルタイムでヒートマップとして可視化

コード

解説

2次元ランダムウォークとそのヒートマップ

2次元ランダムウォークとそのヒートマップは下記で説明しました。

[matplotlib] 53. 2次元ランダムウォークのヒートマップ
2次元ランダムウォークの動いた範囲を10 x 10の2次元ヒストグラム(ヒートマップ)で示す方法について説明する。

また、2次元ランダムウォークのアニメーションについては下記で説明しました。

[matplotlib animation] 65. 2次元ランダムウォークアニメーション
matplotlibのFuncAnimationで2次元のランダムウォークアニメーションを表示する。

アニメーションの設定

本文で示したアニメーション部分以外のコードは上記記事と同一のため省略しています。

このコードの重要なポイントは、カラーバーを維持したまま、ヒートマップを連続的に更新していく点にあります。update関数内で2次元ヒストグラムを生成し、その画像を逐次表示することで、滑らかなアニメーション効果を実現しています。

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

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

参考

[Pythonによる科学・技術計算] 2次元ランダムウォーク(酔歩問題), 数値計算 - Qiita
乱数を利用した2次元ランダムウォークのシミュレーションを行う。 1ステップを1とし, 原点(0,0)からスタートして二次元平面上をランダムウォークする。 import numpy as np from random import rando...
numpy.random.choice — NumPy v1.15 Manual
numpy.cumsum — NumPy v2.3 Manual
numpy.histogram2d — NumPy v2.3 Manual

コメント