smoothScatter            package:graphics            R Documentation

_S_c_a_t_t_e_r_p_l_o_t_s _w_i_t_h _S_m_o_o_t_h_e_d _D_e_n_s_i_t_i_e_s _C_o_l_o_r _R_e_p_r_e_s_e_n_t_a_t_i_o_n

_D_e_s_c_r_i_p_t_i_o_n:

     '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.

_U_s_a_g_e:

     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"), ...)

_A_r_g_u_m_e_n_t_s:

    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'.

_D_e_t_a_i_l_s:

     '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'.

_A_u_t_h_o_r(_s):

     Florian Hahne at FHCRC, originally

_S_e_e _A_l_s_o:

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

_E_x_a_m_p_l_e_s:

       ## 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)

