classify {berryFunctions}R Documentation

Classification into groups


classify continuous values into categories with different methods:
- linearly or logarithmically spaced equal intervals,
- intervals based on quantiles (equally filled bins),
- intervals based on distance from the mean in normal distributions,
- user specified class borders (e.g. for legal or critical limits).


  method = "linear",
  breaks = NULL,
  Range = range(x, finite = TRUE),
  col = NULL,
  sdlab = 1,
  logbase = 1,
  quiet = FALSE,



Vector with numeric values


Character string (partial matching is performed). Classification method (type of binning) to compute the class breakpoints. See section Details. DEFAULT: "linear"


Specification for method, see Details. DEFAULT: NULL (different defaults for each method)


Ends of intervals. DEFAULT: range(x, finite=TRUE)


Function that will return a color palette, e.g. seqPal. If given, a vector of colors is returned instead of the regular list. DEFAULT: NULL (ignored)


Type of label and breakpoints if method=standarddeviation. 1 means -0.5 sd, 0.5 sd, 2 means -1 sd, mean, 1 sd, 3 means actual numbers for type 1, 4 means numbers for type 2. DEFAULT: 1


base for logSpaced. Used only if not 1 and method="log". DEFAULT: 1


Suppress warnings, eg for values outside Range? DEFAULT: FALSE


Further arguments passed to the function col.


Binning methods are explained very nicely in the link in the section References.
nbins indicates the number of classes (and thus, colors).

method | explanation | meaning of breaks | default
---------- | ----------- | ----------- | -------
linear | nbins equally spaced classes | nbins | 100
log | nbins logarithmically spaced | nbins | 100
quantile | classes have equal number of values | the quantiles (or number of them) | 0:4/4
sd | normal distributions | number of sd in one direction from the mean | 3
custom | user-given breakpoints | breakpoint values (including ends of Range) | none

The default is set to equalinterval which makes sense for my original intent of plotting lake depth (bathymetry measured at irregularly distributed points) on a linear color scale.
This is the workhorse for colPoints.


if col=NULL, a list with class numbers (index) and other elements for colPoints. If col is a palette function, a vector of colors.


Berry Boessenkool,, 2014


See this page on the effect of classification (binning) methods:

See Also



classify( c(1:10, 20), "lin", breaks=12)
classify( c(1:10, 20), "q", breaks=0:10/10)
classify( c(1:10, 20), "s", sdlab=2 )
classify( c(1:10, 20), "s", sdlab=1, breaks=2 )
classify( c(1:10, 20), "c", breaks=c(5,27) )
classify( c(1:10, 20), "log")

cols <- classify( c(1:10, 20), col=seqPal) ; cols
plot(c(1:10, 20), col=cols, pch=16, cex=2)

set.seed(42); rz <- rnorm(30, mean=350, sd=120)
classleg <- function(method="linear", breaks=100, sdlab=1, logbase=1, ...)
 , owa(
           classify(rz, method=method, breaks=breaks, sdlab=sdlab, logbase=logbase),
           list(z=rz, title="", ...))   )
classleg(br=3, met="s", col=divPal(5),mar=c(0,3,1,0),hor=FALSE,x1=0.1,x2=0.25)
classleg(br=3, met="s", col=divPal(6),mar=c(0,3,1,0),hor=FALSE,x1=0.25,x2=0.4, sdlab=2)
classleg(y1=0.85, y2=1)
classleg(br=20, met="log", y1=0.70, y2=0.85)
classleg(br=20, met="log", y1=0.55, y2=0.70, logbase=1.15)
classleg(br=20, met="log", y1=0.45, y2=0.60, logbase=0.90)
classleg(br= 5, met="q", y1=0.30, y2=0.45)# quantiles: each color is equally often used
classleg(met="q", y1=0.15, y2=0.30, breaks=0:15/15, at=pretty2(rz), labels=pretty2(rz) )

[Package berryFunctions version 1.20.1 Index]