| smoothScatter {graphics} | R Documentation |
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.
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"), ...)
x, y |
the |
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
|
bandwidth |
numeric vector (length 1 or 2) of smoothing bandwidth(s).
If missing, a more or less useful default is used. |
colramp |
function accepting an integer |
nrpoints |
number of points to be superimposed on the density
image. The first |
pch, cex, col |
arguments passed to |
transformation |
function mapping the density scale to the color scale. |
postPlotHook |
either |
xlab, ylab |
character strings to be used as axis labels, passed
to |
xlim, ylim |
numeric vectors of length 2 specifying axis limits. |
xaxs, yaxs, ... |
further arguments, passed to |
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.
Florian Hahne at FHCRC, originally
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.
## 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)