版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/Yellow_python/article/details/86906827
scipy
环境:Jupyter Notebook
%matplotlib inline
import matplotlib.pyplot as mp
import matplotlib.style as ms
import numpy as np
import scipy.stats as ss
ms.use('fivethirtyeight')
均匀分布
x = np.linspace(-1, 2, 100)
mp.plot(x, ss.uniform.pdf(x))
mp.fill_between(x, ss.uniform.pdf(x), alpha=.2)
mp.plot(x, ss.uniform.cdf(x))
mp.axhline(color='black', linewidth=2)
正态分布
x = np.linspace(-3, 3, 100)
mp.plot(x, ss.norm.pdf(x))
mp.fill_between(x, ss.norm.pdf(x), alpha=.2)
mp.plot(x, ss.norm.cdf(x))
mp.axhline(color='black', linewidth=2)
二项分布
x = range(11)
mp.bar(x, ss.binom.pmf(x, n=10, p=.5))
mp.plot(x, ss.binom.cdf(x, n=10, p=.5), c='r', linewidth=2)
mp.scatter(x, ss.binom.cdf(x, n=10, p=.5), c='r')
mp.axhline(color='black', linewidth=2)
Beta分布
x = np.linspace(0, 1, 100)
mp.plot(x, ss.beta.pdf(x, a=2, b=2))
mp.fill_between(x, ss.beta.pdf(x, a=2, b=2), alpha=.2)
mp.plot(x, ss.beta.cdf(x, a=2, b=2))
mp.axhline(color='black', linewidth=2)
x = np.linspace(0, 1, 100)
for i in (1, 3, 5):
mp.plot(x, ss.beta.pdf(x, a=i, b=i), label=str(i))
mp.axhline(color='black', linewidth=2)
mp.legend()
x = np.linspace(0, 1, 100)
for i in (1, 2):
# ij
mp.subplot(2, 2, i)
for j in (.5, 1, 5):
mp.plot(x, ss.beta.pdf(x, i, j),
label='a=%d;b=%d' % (i, j))
mp.axhline(color='black', linewidth=2)
mp.legend()
# ji
mp.subplot(2, 2, i + 2)
for j in (.5, 1, 5):
mp.plot(x, ss.beta.pdf(x, j, b=i),
label='a=%d;b=%d' % (j, i))
mp.axhline(color='black', linewidth=2)
mp.legend()
泊松分布
x = range(11)
mp.bar(x, ss.poisson.pmf(x, mu=4))
mp.plot(x, ss.poisson.cdf(x, mu=4), c='r', linewidth=2)
mp.scatter(x, ss.poisson.cdf(x, mu=4), c='r')
mp.axhline(y=5e-3, color='black', linewidth=2)
x = range(11)
for mu in (1, 2, 3, 6):
mp.plot(x, ss.poisson.pmf(x, mu), label=str(mu))
mp.axhline(color='black', linewidth=2)
mp.legend()
卡方分布
x = np.linspace(0, 10, 100)
mp.plot(x, ss.chi2.pdf(x, df=3))
mp.fill_between(x, ss.chi2.pdf(x, df=3), alpha=.2)
mp.plot(x, ss.chi2.cdf(x, df=3))
mp.axhline(color='black', linewidth=2)
x = np.linspace(0, 10, 100)
for df in (1, 2, 4):
mp.plot(x, ss.chi2.pdf(x, df), linewidth=3, label=str(df))
mp.axhline(color='black', linewidth=1)
mp.legend()
Appendix
abbr | en | cn |
---|---|---|
probability density function | 概率密度函数 | |
pmf | probability mass function | 概率质量函数 |
cdf | cumulative distribution function | 累积分布函数 |