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.
## 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(...) {par(new=TRUE);smoothScatter(..., nrpoints=0)})
par(oldpar)