[matplotlib animation] 43. データの追加によるヒストグラムの形状変化アニメーション

matplotlib Animation

はじめに

この記事では、matplotlibのFuncAnimationを使用して、データが追加されるにつれてヒストグラムの形状が変化していくアニメーションを作成する方法を解説しています。正規分布に従うランダムデータを逐次追加し、ヒストグラムの分布が徐々に正規分布の形に近づいていく様子を可視化しています。

コード

解説

モジュールのインポート

図とデータの生成

アニメーションの設定

空のリストの生成

アニメーション関数内で生成した図を格納するためのリストです。

アニメーションの関数

古いプロットを消す

図を格納するリスト(plotdata)にすでに図が入っている場合は、plotdata.pop().remove()を使用して、リスト内の要素を削除できます。

データの追加

平均0、標準偏差1の正規分布に従う乱数データ(500個)をnp.concatenate()により所定の回数追加します。

ヒストグラムデータとax.bar()によるヒストグラムの作成

matplotlibのhistogram関数を直接使わず、np.histogram()でデータを生成し、そのデータをax.bar()でプロットします。プロットしたものをリストに.append()で追加することで、変化を表示できます。

タイトルの表示

データが蓄積されるにつれて変化する平均値と標準偏差を計算し、タイトルに表示します。

アニメーションの表示

アニメーション関数を50ステップ実行し、200ミリ秒間隔で図を順次更新するため、合計10秒のアニメーションとなります。Jupyter Notebook上では、HTML(ani.to_html5_video())を実行することでアニメーションを直接表示できます。

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

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

まとめ

matplotlibのFuncAnimationを使用することで、データの追加によるヒストグラムの形状変化を動的に表現できます。このようなアニメーションは、統計的な概念を視覚的に理解するのに役立ちます。特に、サンプルサイズが増えるにつれて分布が理論的な形状に近づいていく様子を観察できるため、教育目的やデータ分析の理解促進に有効です。

参考

Animated histogram — Matplotlib 3.10.6 documentation

コメント