[matplotlib animation] 10. ガンマ分布のアニメーション

matplotlib Animation
スポンサーリンク
スポンサーリンク

matplotlib FuncAnimationによる、ガンマ分布の形状母数と尺度母数が変化するアニメーション

形状母数が変化するアニメーション

コード

でできるアニメーション。

解説

モジュールのインポート

gamma分布を計算するため、scipy.stats からgammaをimport。 

軸範囲と軸ラベル、グリッドの設定
データの生成
形状母数 \(\alpha\)、尺度母数 \(\beta\) の確率分布関数\(p(x)\)は、以下の式のようになる。 $${p(x|\alpha,\beta)=\frac{\beta^{\alpha}}{\Gamma(\alpha)} x^{\alpha-1}e^{-\beta x}}$$

gamma.pdf(x,1,scale=1)で,形状母数が1,尺度母数が1のガンマ分布の確率密度関数の値を取得する。
xがlinspaceで0〜50まであるので、xとyでガンマ分布が描ける。
aは1から30まで60stepで変化させる。

アニメーションの設定

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

アニメーションでは古いプロットを消す必要があるので、
linesにグラフが入っている場合は、lines.pop().remove()で消す。
a[num]で形状母数の要素を順に変化させていく。
line,でプロットを作成して、linesに入れていく。
ax.set_titleでタイトルに形状母数の値を表示。

アニメーションの表示

FuncAnimationでanimationの表示。updateを60step実行してアニメーションとする。intervalは100 ms なので6秒のアニメーションとなる。
to_html5_videoでHTMLビデオ化。

尺度母数が変化するアニメーション

コード

でできるアニメーション

解説

データの生成

尺度母数は0.05〜3まで60stepで変化させる。

アニメーションの設定

形状母数の場合と同様に、bの値を順次変化させて、アニメーションとする。

スポンサーリンク

参考

  1. [python]scipy statsの使い方 – Qiita

コメント