import numpy as np, matplotlib.pyplot as plt, scipy.special as sp
def fGauss(x,mu=0.,sigma=1.): # Gauss distribution
return (np.exp(-(x-mu)**2/2/sigma**2)/np.sqrt(2*np.pi)/sigma)
def fPoisson(x,mu): # Poisson distribution
k=np.around(x)
return (mu**k)/np.exp(mu)/sp.gamma(k+1.)
def fBinomial(x,n,p): # Binomial distribution
k=np.around(x)
return sp.binom(n,k) *p**k *(1.-p)**(n-k)
#--------------------------------------------------------------
# plot basic distributions
mu, sig = 50., np.sqrt(mu)
x = np.arange(20, 80., 0.1)
plt.plot(x, fGauss(x,mu,sig), 'r-')
plt.plot(x, fPoisson(x,mu), 'b-')
p, n = 0.1, mu/p
plt.plot(x, fBinomial(x,n,p), 'g-')
# ( … ) # produce nice text
plt.show()
← einige spezielle Funktionen in scipy.special [ n! = gamma(n+1) ]
basicDistributions.py