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