Python直方图绘制(与标准正态分布进行比较)

标准正态分布概率密度函数公式为:

Python直方图绘制(与标准正态分布进行比较)_第1张图片

代码:(直方图的参数在代码注释中)

import numpy as np
import matplotlib.pyplot as plt

x=np.arange(-4.5,4.5,0.01)
def f(x):
    return (np.e)**(-x**2/2)/(2*np.pi)**0.5

samples=np.random.normal(0,1,size=1000000)

#直方图,用来展示samples中数据分布情况,横轴是数据,纵轴是出现的次数(也就是频数)
#bins:指定几条条状图
#normed=True表示进行归一化,即y轴数据全部除以最大值,使数据位于(0,1)之间,默认是False
#histtype='step'只显示直方图最外围一圈,不填默认是histtype='stepfilled'
bins=100

plt.plot(x,f(x),label='f(x)')
plt.hist(samples,bins=bins,density=True,histtype='stepfilled',label='bins=%s'%bins)
plt.legend(loc='upper left')
plt.show()

图形:

样本数:1000 ,bins=100:                                       样本数:10000,bins=100:

Python直方图绘制(与标准正态分布进行比较)_第2张图片                Python直方图绘制(与标准正态分布进行比较)_第3张图片

可以看出,样本太少会导致和标准正态分布曲线有差异,样本越大,差异越小

 

样本数:1000000(一百万),bins=10:                   样本数:1000000(一百万),bins=100:

                                                               

Python直方图绘制(与标准正态分布进行比较)_第4张图片              Python直方图绘制(与标准正态分布进行比较)_第5张图片

bins是 直方的个数,直方个数太少也不行

欢迎大佬批评指正,提建议,谢谢!!!

更多博客推荐:

基于u-net,cv2以及cnn的中文车牌定位,矫正和端到端识别软件

使用百度API和u-net进行车牌图片的自动标注

 

你可能感兴趣的:(python,直方图,标准正态分布,样本,matplotlib)