-
均匀分布
import pretty_errors import numpy as np from scipy.stats import beta, norm, uniform, binom import matplotlib.pyplot as plt from functools import wraps # 定义带四个参数的画图装饰器 def my_plot(label0=None, label1=None, ylabel='probability density function',fn=None): def decorate(f): @wraps(f) def myplot(): fig = plt.figure(figsize=(16, 9)) ax = fig.add_subplot(111) x, y, y1 = f() ax.plot(x, y, linewidth=2, c='r', label=label0) ax.plot(x, y1, linewidth=2, c='b', label=label1) ax.legend() plt.ylabel(ylabel) plt.show() plt.savefig('C:/jupyter_notebook/venv_env/myhtml/%s' % (fn,)) print('%s保存成功' % (fn,)) plt.close() return myplot return decorate # 均匀分布(uniform) @my_plot(label0='b-a=1.0', label1='b-a=2.0', fn='uniform.png') def unif(): x = np.arange(-0.01, 2.01, 0.01) y = uniform.pdf(x, loc=0.0, scale=1.0) y1 = uniform.pdf(x, loc=0.0, scale=2.0) return x, y, y1
-
二项分布
红⾊曲线表⽰发⽣⼀次概率为0.3,重复50次的密度函数,⼆项分布期望值为0.3*50 = 15次。看到这50 次实验,很可能出现的次数为10~20.可与蓝⾊曲线对⽐分析。
# ⼆项分布 @my_plot(label0='n=50,p=0.3', label1='n=50,p=0.7', fn='binom.png', ylabel='probability mass function') def bino(): x = np.arange(50) n, p, p1 = 50, 0.3, 0.7 y = binom.pmf(x, n=n, p=p) y1 = binom.pmf(x, n=n, p=p1) return x, y, y1
-
高斯分布
红⾊曲线表⽰均值为0,标准差为1.0的概率密度函数,蓝⾊曲线的标准差更⼤,所以它更矮胖,显⽰出 取值的多样性,和不稳定性。
# ⾼斯 分布 @my_plot(label0='u=0.,sigma=1.0', label1='u=0.,sigma=2.0', fn='guass.png') def guass(): x = np.arange(-5, 5, 0.1) y = norm.pdf(x, loc=0.0, scale=1.0) y1 = norm.pdf(x, loc=0., scale=2.0) return x, y, y1
-
beta分布
# beta 分布 @my_plot(label0='a=10., b=30.', label1='a=4., b=4.', fn='beta.png') def bet(): x = np.arange(-0.01, 1, 0.001) y = beta.pdf(x, a=10., b=30.) y1 = beta.pdf(x, a=4., b=4.) return x, y, y1
python实战打卡---day16
最新推荐文章于 2023-11-27 09:11:36 发布