[R] question on image() function?
Luke Spadavecchia
l.spadavecchia at googlemail.com
Thu Nov 8 19:23:38 CET 2007
You could try using levelplot from the lattice package:
library(lattice)
levelplot(mcpvalue~x+y)
failing that, interpolate them to a grid using akima or fields then
display with image
L
On 8 Nov 2007, at 18:13, Duncan Murdoch wrote:
> On 11/8/2007 11:51 AM, zhijie zhang wrote:
>> Dear friends,
>> My dataset is like the following:
>> x y mcpvalue
>> 0.4603578 0.6247629 1.001
>> 0.4603715 0.6247788 1.001
>> 0.4603852 0.6247948 1.001
>> 0.4110561 0.5664841 0.995
>> The x and y variables are unsorted.
>> I use the function image(x,y,mcpvalue) to generate a plot, but
>> the error
>> is that "increasing 'x' and 'y' values are expected". So i use
>> image(x=seq(min(x),max(x)), y=seq(min(y),max(y)),z=as.matrix
>> (result$mcpvalue))
>> to do it again, but there is still an error "dimensions of z are not
>> length(x)(-1) times length(y)(-1)".
>> Anybody can show me how to use the image() correctly with the
>> original x/y
>> unsorted?
>
> You can't, it doesn't know how to handle that kind of data.
>
> image() is designed to display a matrix of values. The x and y values
> tell it where to put the rows and columns of the matrix.
>
> You have a set of points. You need to fit a surface to them, evaluate
> the surface on a grid, and pass that to image().
>
> There are many ways to do that; the akima package has the interp()
> function for instance.
>
> Duncan Murdoch
>
> ______________________________________________
> 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.
More information about the R-help
mailing list