物理の駅 Physics station by 現役研究者

テクノロジーは共有されてこそ栄える

ポアソン分布と二項分布をPythonで描画する

Pythonを用いた ポアソン分布の確率分布の描画。適宜meanを変えてね。

from scipy.stats import poisson
import matplotlib.pyplot as plt

mean = 2.3

xs = []
prob = []
for i in range(7):
    print(i,poisson.pmf(i, mean))
    prob.append(poisson.pmf(i, mean))
    xs.append(i)
    
plt.plot(xs,prob,lw=0,marker="o")

for x,p in zip(xs,prob):
    plt.text(x+0.1, p, "{:.4f}".format(p),size=10)

plt.xlim(-0.5,6.5)
plt.ylim(-0.,1.0)
plt.xlabel(r"$\lambda$")
plt.ylabel(r"Probability")
plt.show()

mean=2.30 の確率分布

f:id:onsanai:20210126145402p:plain

二項分布の場合。

from scipy.stats import binom
import matplotlib.pyplot as plt

mean = 2.3
entries = 200

xs = []
prob = []
for i in range(7):
    print(i,binom(entries,mean/entries).pmf(i))
    prob.append(binom(entries,mean/entries).pmf(i))
    xs.append(i)
    
# 以下同

今回はn=200として計算。ポアソン分布とはわずかに異なる。

f:id:onsanai:20210126204224p:plain