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 3.1.2 Index]