relfreq — SciPy v1.15.3 Manual (original) (raw)
scipy.stats.
scipy.stats.relfreq(a, numbins=10, defaultreallimits=None, weights=None)[source]#
Return a relative frequency histogram, using the histogram function.
A relative frequency histogram is a mapping of the number of observations in each of the bins relative to the total of observations.
Parameters:
aarray_like
Input array.
numbinsint, optional
The number of bins to use for the histogram. Default is 10.
defaultreallimitstuple (lower, upper), optional
The lower and upper values for the range of the histogram. If no value is given, a range slightly larger than the range of the values in a is used. Specifically (a.min() - s, a.max() + s)
, where s = (1/2)(a.max() - a.min()) / (numbins - 1)
.
weightsarray_like, optional
The weights for each value in a. Default is None, which gives each value a weight of 1.0
Returns:
frequencyndarray
Binned values of relative frequency.
lowerlimitfloat
Lower real limit.
binsizefloat
Width of each bin.
extrapointsint
Extra points.
Examples
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
Create a normal distribution with 1000 random values
samples = stats.norm.rvs(size=1000, random_state=rng)
Calculate relative frequencies
res = stats.relfreq(samples, numbins=25)
Calculate space of values for x
x = res.lowerlimit + np.linspace(0, res.binsize*res.frequency.size, ... res.frequency.size)
Plot relative frequency histogram
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()])