R: Scatterplots with Smoothed Densities Color Representation

smoothScatter {graphics} | R Documentation

## Scatterplots with Smoothed Densities Color Representation

### Description

`smoothScatter` 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.

### Usage

    smoothScatter(x, y = NULL, nbin = 128, bandwidth,
                  colramp = colorRampPalette(c("white", blues9)),
                  nrpoints = 100, pch = ".", cex = 1, col = "black",
                  transformation = function(x) x^.25,
                  postPlotHook = box,
                  xlab = NULL, ylab = NULL, xlim, ylim,
                  xaxs = par("xaxs"), yaxs = par("yaxs"), ...)

### Arguments

`x, y` | the `x` and `y` arguments provide the x and y coordinates for the plot. Any reasonable way of defining the coordinates is acceptable. See the function `xy.coords` for details. If supplied separately, they must be of the same length.
`nbin` | numeric vector of length one (for both directions) or two (for x and y separately) specifying the number of equally spaced grid points for the density estimation; directly used as `gridsize` in `bkde2D()`.
`bandwidth` | numeric vector (length 1 or 2) of smoothing bandwidth(s). If missing, a more or less useful default is used. `bandwidth` is subsequently passed to function `bkde2D`.
`colramp` | function accepting an integer `n` as an argument and returning `n` colors.
`nrpoints` | number of points to be superimposed on the density image. The first `nrpoints` points from those areas of lowest regional densities will be plotted. Adding points to the plot allows for the identification of outliers. If all points are to be plotted, choose `nrpoints = Inf`.
`pch, cex, col` | arguments passed to `points`, when `nrpoints > 0`: point symbol, character expansion factor and color, see also `par`.
`transformation` | function mapping the density scale to the color scale.
`postPlotHook` | either `NULL` or a function which will be called (with no arguments) after `image`.
`xlab, ylab` | character strings to be used as axis labels, passed to `image`.
`xlim, ylim` | numeric vectors of length 2 specifying axis limits.
`xaxs, yaxs, ...` | further arguments, passed to `image`.

### Details

`smoothScatter` produces a smoothed version of a scatter plot. Two dimensional (kernel density) smoothing is performed by `bkde2D` from package KernSmooth. See the examples for how to use this function together with `pairs`.

### Author(s)

Florian Hahne at FHCRC, originally

### See Also

`bkde2D` from package KernSmooth; `densCols` which uses the same smoothing computations and `blues9` in package grDevices.

`scatter.smooth` adds a `loess` regression smoother to a scatter plot.

### Examples

      ## A largish data set
      n <- 10000
      x1  <- matrix(rnorm(n), ncol=2)
      x2  <- matrix(rnorm(n, mean=3, sd=1.5), ncol=2)
      x   <- rbind(x1,x2)

      oldpar <- par(mfrow=c(2,2))
      smoothScatter(x, nrpoints=0)
      smoothScatter(x)

      ## a different color scheme:
      Lab.palette <-
          colorRampPalette(c("blue", "orange", "red"), space = "Lab")
      smoothScatter(x, colramp = Lab.palette)

      ## somewhat similar, using identical smoothing computations,
      ## but considerably *less* efficient for really large data:
      plot(x, col = densCols(x), pch=20)

      ## use with pairs:
      par(mfrow=c(1,1))
      y <- matrix(rnorm(40000), ncol=4) + 3*rnorm(10000)
      y[, c(2,4)] <-  -y[, c(2,4)]
      pairs(y,
            panel = function(...) smoothScatter(..., nrpoints=0, add=TRUE))

      par(oldpar)

[Package graphics version 2.15.1 Index]