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()
../../_images/scipy-stats-relfreq-1.png