knuth_bin_width#

astropy.stats.knuth_bin_width(data, return_bins=False, quiet=True)[source]#

Return the optimal histogram bin width using Knuth’s rule.

Knuth’s rule is a fixed-width, Bayesian approach to determining the optimal bin width of a histogram.

Parameters:
dataarray_like, ndim=1

observed (one-dimensional) data

return_binsbool, optional

if True, then return the bin edges

quietbool, optional

if True (default) then suppress stdout output from scipy.optimize

Returns:
dxfloat

optimal bin width. Bins are measured starting at the first data point.

binsndarray

bin edges: returned if return_bins is True

Notes

The optimal number of bins is the value M which maximizes the function

\[F(M|x,I) = n\log(M) + \log\Gamma(\frac{M}{2}) - M\log\Gamma(\frac{1}{2}) - \log\Gamma(\frac{2n+M}{2}) + \sum_{k=1}^M \log\Gamma(n_k + \frac{1}{2})\]

where \(\Gamma\) is the Gamma function, \(n\) is the number of data points, \(n_k\) is the number of measurements in bin \(k\) [1].

References

[1]

Knuth, K.H. “Optimal Data-Based Binning for Histograms”. arXiv:0605197, 2006