scipy.stats.
relfreq#
- scipy.stats.relfreq(a, numbins=10, defaultreallimits=None, weights=None)[source]#
返回相對頻率直方圖,使用 histogram 函數。
相對頻率直方圖是每個 bin 中觀測次數相對於總觀測次數的映射。
- 參數:
- aarray_like
輸入陣列。
- numbinsint, optional
用於直方圖的 bin 數量。預設值為 10。
- defaultreallimitstuple (lower, upper), optional
直方圖範圍的下限和上限值。如果未給定值,則使用略大於 a 中值範圍的範圍。具體而言,
(a.min() - s, a.max() + s)
,其中s = (1/2)(a.max() - a.min()) / (numbins - 1)
。- weightsarray_like, optional
a 中每個值的權重。預設值為 None,表示每個值的權重為 1.0。
- 返回:
- frequencyndarray
相對頻率的 bin 值。
- lowerlimitfloat
下限實數值。
- binsizefloat
每個 bin 的寬度。
- extrapointsint
額外點。
範例
>>> import numpy as np >>> import matplotlib.pyplot as plt >>> from scipy import stats >>> rng = np.random.default_rng() >>> a = np.array([2, 4, 1, 2, 3, 2]) >>> res = stats.relfreq(a, numbins=4) >>> res.frequency array([ 0.16666667, 0.5 , 0.16666667, 0.16666667]) >>> np.sum(res.frequency) # relative frequencies should add up to 1 1.0
建立一個具有 1000 個隨機值的常態分佈
>>> samples = stats.norm.rvs(size=1000, random_state=rng)
計算相對頻率
>>> res = stats.relfreq(samples, numbins=25)
計算 x 值的空間
>>> x = res.lowerlimit + np.linspace(0, res.binsize*res.frequency.size, ... res.frequency.size)
繪製相對頻率直方圖
>>> fig = plt.figure(figsize=(5, 4)) >>> ax = fig.add_subplot(1, 1, 1) >>> ax.bar(x, res.frequency, width=res.binsize) >>> ax.set_title('Relative frequency histogram') >>> ax.set_xlim([x.min(), x.max()])
>>> plt.show()