  Uwe Ligges wrote:

> juli g. pausas wrote:
>
>> Hi all,
>> It is not clear to me why this cannot be ploted with image. Any help?
>>
>>  > g <- data.frame(expand.grid(x= 1:5, y= 1:5), z= rnorm(25))
>>  > image(g)
>> Error in image.default(g) : increasing x and y values expected 
>
>
> The error message states: "increasing x and y values expected".
> image() is really clever and you don't need expand.grid() in this case 
> (in principle, image() does it itself):
>
>  g <- list(x = 1:5, y = 1:5, z = matrix(rnorm(25), 5))
>  image(g) 


Uwe,
Thanks for your reply.
I undertand that if z is a matrix, then x and y are not needed:
    image( matrix(rnorm(25), 5) )

My question was, if I've got 'x', 'y' and 'z', where x and y are the 
coordinates of the z values, can I use image to ploted them?
Perhaps a more realistic example would be, when the grid is incomplete 
such as in h:

g <- data.frame(expand.grid(x= 1:5, y= 1:5), z= rnorm(25))
h <- g[sample(nrow(g), 20), ]    # remove some cells

 From the help pages I thought it was possible:

Arguments:
     x,y: locations of grid lines at which the values in `z' are
          measured.  These must be in (strictly) ascending order. By ...

this is why my suggestion was a list with x, y, and z of the same length 
(coordinates and z-values). But I suppose I misunderstood the help, and 
it is  not possible to use image() in this case, even with the complete 
coordinates (g).
I have found an alternative way,  using as.image() in the 'fields' library:

image(as.image(h$z, data.frame(x= h$x, y= h$y), ncol=5, nrow=5))

cheers
Juli


	[[alternate HTML version deleted]]


