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