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

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.


data : array-like, ndim=1

observed (one-dimensional) data

return_bins : bool (optional)

if True, then return the bin edges

quiet : bool (optional)

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


dx : float

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

bins : ndarray

bin edges: returned if return_bins is True


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\) [R55].


[R55](1, 2) Knuth, K.H. “Optimal Data-Based Binning for Histograms”. arXiv:0605197, 2006