[matplotlib animation] 11. ポアソン分布のアニメーション

matplotlib Animation

はじめに

matplotlib FuncAnimationにより、ポアソン分布のパラメータλを変化させたときの分布の変化をアニメーションで表示する。

コード

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

解説

モジュールのインポート

ポアソン分布を計算するため、scipy.stats からpoissonをimport。 

軸範囲と軸ラベル、目盛りの間隔の設定

ax.xaxis.set_major_locator(ticker.MultipleLocator(2))  でx軸の表示間隔を2にしている。

データの生成

xがlinspaceで0〜20までの整数で、
λは1から15まで100stepで変化させる。

アニメーションの設定

まずグラフを入れるために空のリストlinesをupdate関数外に作成する。

アニメーションでは古いプロットを消す必要があるので、
linesにグラフが入っている場合は、lines.pop().remove()で消す。

パラメータλと整数値xの確率質量分布関数\(p(x)\)は、以下の式のようになる。 $$p(x) = \frac{e^{-\lambda}\lambda^x}{x!}$$ poisson.pmf(x,lam[num])で異なるλにおけるポアソン分布の確率密度関数の値を取得する。

line,でプロットを作成して、linesに入れていく。


marker=”o” でマーカーの形状を
markersize=10 でマーカーの大きさを
markeredgewidth=1.5 でマーカーの線の太さを
markeredgecolor=”k” でマーカーの線の色を
markerfacecolor=”m” でマーカーの塗りつぶしの色を
color=’navy’でマーカーを結ぶ線の色を

設定できる。

ax.set_titleでタイトルにλの値を表示。

アニメーションの表示

FuncAnimationでanimationの表示。updateを100step実行してアニメーションとする。intervalは100 ms なので10秒のアニメーションとなる。
HTML(ani.to_html5_video)でjupyter notebook上にアニメーションを表示できる。

参考

  1. [python]scipy statsの使い方 – Qiita
  2. Tick locators¶
  3. ポアソン分布 | 統計用語集 | 統計WEB

コメント