使用numpy模塊中的histogram函數模塊
Histogram(a,bins=10,range=None,normed=False,weights=None)
其中,
a是保存待統計數據的數組,
bins指定統計的區間個數,即對統計范圍的等分數。
range是一個長度為2的元組,表示統計范圍的最小值和最大值,默認值為None,表示范圍由 數據的范圍決定,即(a.min(), a.max()).
當normed參數為False時,函數返回數組a中的數據在每個區間的個數,否則對個數進行正規化處理,使它等於每個區間的概宇密度。
weights參數和 bincount()的類似。
import numpy as np import matplotlib.pylab as plt #一個瑞麗分布模型 sampleNO = 80000 data0 = np.random.normal(0, 2, sampleNO) data1 = np.random.normal(0, 2, sampleNO) data = (data0**2+data1**2)**0.5 #分成100份進行統計,bins=1000 cnts, bins = np.histogram(data, bins=100, normed=False) #計算每份區間中值 bins = (bins[:-1] + bins[1:]) / 2 #數據歸一化處理,當然這里也可以不歸一化表示頻數 cnts = cnts/sampleNO bins1 = bins/max(bins1) # 顯示圖例 plt.plot(bins, cnts) plt.legend() plt.show()
圖譜顯示:

