smoothScatter {geneplotter}R Documentation

Scatterplots with smoothed densities color representation


smmothScatter produces a smoothed color density representation of the scatterplot, obtained through a kernel density estimate. densCols produces a vector containing colors which encode the local densities at each point in a scatterplot.


smoothScatter(x, y,
              nbin = 128,
              colramp = colorRampPalette(c("white", brewer.pal(9, "Blues"))),
              nrpoints = 100,
              transformation = function(x) x^.25,
              xlab, ylab, ...) 

     densCols(x, y,
              nbin = 128,
              colramp = colorRampPalette(brewer.pal(9, "Blues")[-(1:3)]))


x Numeric vector containing x-values or n by 2 matrix containing x and y values.
y Numeric vector containing y-values (optional). The length of x must be the same as that of y.
nbin Numeric vector of length 1 (for both directions) or 2 (for x and y separately) containing the number of equally spaced grid points for the density estimation.
bandwidth Numeric vector: the smoothing bandwidth. If missing, these functions come up with a more or less useful guess. This parameter then gets passed on to function. bkde2D.
colramp Function accepting an integer n as an argument and returning n colors.
nrpoints Numeric vector of length 1 giving number of points to be superimposed on the density image. If all points are to be plotted, choose nrpoints = Inf.
transformation Function that maps the density scale to the color scale.
xlab Character. Gets passed on to image
ylab Character. Gets passed on to image
... Further arguments that are passed on to image.


These functions are convenience wrappers around bkde2D.


smoothScatter is called for its side-effect, producing a plot on the current graphics device. densCols returns a vector of length nrow(x) that contains colors to be used in a subsequent scatterplot. Each color represents the local density around the corresponding point.


Florian Hahne <>

See Also



if(interactive()) {
  x1  <- matrix(rnorm(1e4), ncol=2)
  x2  <- matrix(rnorm(1e4, mean=3, sd=1.5), ncol=2)
  x   <- rbind(x1,x2)

  layout(matrix(1:4, ncol=2, byrow=TRUE))
  smoothScatter(x, nrpoints=0)
  smoothScatter(x, nrpoints=Inf, colramp=colorRampPalette(RColorBrewer::brewer.pal(9, "YlOrRd")), bandwidth=40)  

  colors  <- densCols(x)
  plot(x, col=colors, pch=20)

[Package geneplotter version 1.8.0 Index]