[R] using contour() with x,y,z data?
tyler
tyler.smith at mail.mcgill.ca
Thu Jun 26 20:45:26 CEST 2008
"Bob and Deb" <bobdebm at gmail.com> writes:
> I'm new to R and I have a problem :-) Below is what my data file that looks
> like. I tried to import and contour this data by doing this:
>
> cv_data <- read.table("cv_data.csv",sep=",",header=TRUE)
> attach(cv_data)
> contour(x,y,z)
>
> I get the error "Error in contour.default(x,y,z) : increasing 'x', and 'y'
> values expected" I can see that y is not increasing, but I don't know how
> to get this to work.
All of your arguments to contour are wrong. x and y are the locations of
the gridlines for the figure (and are not required), and z is a matrix
of values, not a single vector. See ?contour for the details and
examples.
I'm sure there is a better way to do this, but when I have data in the
format you do:
x y z
10, 0.1, 3
10, 0.2, 7
[snip]
10, 1.0, 5
20, 0.1, 12
20, 0.2, 4
I use the following function to convert it to the proper format:
image.maker <- function(coords, value){
N <- length(unique(coords[,1]))
image.out <- matrix(NA, nrow = N, ncol = N)
coords[,1] <- as.numeric(factor(coords[,1]))
coords[,2] <- as.numeric(factor(coords[,2]))
for (i in 1:nrow(coords))
image.out[coords[i,1], coords[i,2]] <- value[i]
return(image.out)
}
my.image <- image.maker(cv_data[,c("x", "y")], cv_data$z)
contour(my.image)
HTH,
Tyler
--
Power corrupts. PowerPoint corrupts absolutely.
--Edward Tufte
http://www.wired.com/wired/archive/11.09/ppt2.html
More information about the R-help
mailing list