From: Emmanuel Levy <emmanuel.levy_at_gmail.com>

Date: Wed, 19 Mar 2008 22:54:01 +0000

hist2d.el(x,y,z, nbins=10)

}

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. Received on Wed 19 Mar 2008 - 22:57:53 GMT

Date: Wed, 19 Mar 2008 22:54:01 +0000

Thanks for your reply - I indeed saw a lot of functions using: help.search("smooth")

x = runif(1000) y = runif(1000) z = x+y

hist2d.el(x,y,z, nbins=10)

## -- This function was adapted from Greg Warnes
hist2d.el <- function( x,y=NULL, z=NULL, nbins=200, my.cuts = NULL,
same.scale=FALSE, na.rm=TRUE, show=TRUE, col=c("black",
heat.colors(12)), ... )

{

if(is.null(y))

* {
*

if(ncol(x) != 2) stop("If y is ommitted, x must be a 2 column matirx") y <- x[,2] x <- x[,1] } if(length(nbins)==1) nbins <- rep(nbins,2)

nas <- is.na(x) | is.na(y)

if(na.rm)

* {
*

x <- x[!nas] y <- y[!nas] } else stop("missinig values not permitted if na.rm=FALSE")

if(!is.null(my.cuts)){

nbins = rep(length(my.cuts)-1,2) x.cuts=my.cuts y.cuts=my.cuts

} else {

if(same.scale) { x.cuts <- seq( from=min(x,y), to=max(x,y), length=nbins[1]+1) y.cuts <- seq( from=min(x,y), to=max(x,y), length=nbins[2]+1) } else { x.cuts <- seq( from=min(x), to=max(x), length=nbins[1]+1) y.cuts <- seq( from=min(y), to=max(y), length=nbins[2]+1) }

}

print(nbins)

index.x <- cut( x, x.cuts, include.lowest=TRUE) index.y <- cut( y, y.cuts, include.lowest=TRUE)

m <- matrix( 0, nrow=nbins[1], ncol=nbins[2],

dimnames=list( levels(index.x), levels(index.y) ) ) m.sum <- matrix( 0, nrow=nbins[1], ncol=nbins[2], dimnames=list( levels(index.x), levels(index.y) ) ) for( i in 1:length(index.x) ) m[ index.x[i], index.y[i] ] <- m[ index.x[i], index.y[i] ] + 1 for( i in 1:length(index.x) ) m.sum[ index.x[i], index.y[i] ] <- m.sum[ index.x[i], index.y[i] ] + z[i]

m[which(m==0)]=1

m = m.sum/(m)

xvals <- x.cuts[1:nbins[1]]

yvals <- y.cuts[1:nbins[2]]

if(show)

image( xvals,yvals, m, col=col,...)

#invisible(list(counts=m,x=xvals,y=yvals))

invisible(m)

}

On 19/03/2008, Bert Gunter <gunter.berton_at_gene.com> wrote:

> There are dozens of functions within R and contributed packages that do > this. The spatial statistics packages (see the "spatial" task view on CRAN) > is certainly where most are concentrated, but thin plate splines (in splines > packages, I believe), tensor product splines (in mgcv package), local > likelihood (in locfit package) etc. are also available for spatial > smoothing. Perhaps the most basic place to look is the ?loess function in > the base distribution, which will do exactly what you requested. > > > Bert Gunter > Genentech Nonclinical Statistics > > > > -----Original Message----- > From: r-help-bounces_at_r-project.org [mailto:r-help-bounces_at_r-project.org] On > Behalf Of Emmanuel Levy > Sent: Wednesday, March 19, 2008 12:42 PM > To: r-help_at_r-project.org > Subject: [R] Smoothing z-values according to their x, y positions > > Dear All, > > I'm sure this is not the first time this question comes up but I > couldn't find the keywords that would point me out to it - so > apologies if this is a re-post. > > Basically I've got thousands of points, each depending on three variables: > x, y, and z. > > if I do a plot(x,y, col=z), I get something very messy. > > So I would like to smooth the values of z according to the values of > their neighbors (given by x and y). > > Could you please point me out to the function(s) I should look into > for the smothing, and > possibly for the plotting? > > Many thanks for your help, > > Emmanuel > > > ______________________________________________ > R-help_at_r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. > > ______________________________________________R-help_at_r-project.org mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. Received on Wed 19 Mar 2008 - 22:57:53 GMT

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.2.0, at Thu 20 Mar 2008 - 04:30:24 GMT.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*