Compute the Number of Classes for a Histogram

Compute the number of classes for a histogram.

nclass.Sturges(x) nclass.scott(x) nclass.FD(x)
A data vector.

nclass.Sturges uses Sturges' formula, implicitly basing bin sizes on the range of the data.

nclass.scott uses Scott's choice for a normal distribution based on the estimate of the standard error, unless that is zero where it returns 1.

nclass.FD uses the Freedman-Diaconis choice based on the inter-quartile range (IQR) unless that's zero where it reverts to mad(x, constant = 2) and when that is $0$ as well, returns 1.


The suggested number of classes.


Venables, W. N. and Ripley, B. D. (2002) Modern Applied Statistics with S-PLUS. Springer, page 112.

Freedman, D. and Diaconis, P. (1981) On the histogram as a density estimator: $L_2$ theory. Zeitschrift für Wahrscheinlichkeitstheorie und verwandte Gebiete 57, 453--476.

Scott, D. W. (1979) On optimal and data-based histograms. Biometrika 66, 605--610.

Scott, D. W. (1992) Multivariate Density Estimation. Theory, Practice, and Visualization. Wiley.

Sturges, H. A. (1926) The choice of a class interval. Journal of the American Statistical Association 21, 65--66.

See Also

hist and truehist (package \href{}{\pkg{#1}}MASSMASS); dpih (package \href{}{\pkg{#1}}KernSmoothKernSmooth) for a plugin bandwidth proposed by Wand(1995).

  • nclass.Sturges
  • nclass.scott
  • nclass.FD
library(grDevices) set.seed(1) x <- stats::rnorm(1111) nclass.Sturges(x) ## Compare them: NC <- function(x) c(Sturges = nclass.Sturges(x), Scott = nclass.scott(x), FD = nclass.FD(x)) NC(x) onePt <- rep(1, 11) NC(onePt) # no longer gives NaN
Documentation reproduced from package grDevices, version 3.2.0, License: Part of R 3.2.0

Community examples

Looks like there are no examples yet.