[R-sig-Geo] plotting unequal contiguous spatial grids

Mikkel Grum mi2kelgrum at yahoo.com
Tue Mar 28 16:07:25 CEST 2006


Edzer, Thanks for your help. For some reason I had it
that you couldn't use add = TRUE with image(). I
thought I had tested it. It will work for me.

Using the grid centres to create a new grid with
levelplot would in some cases give me problems with
grid sizes (many more grids cells).

I'll have a look at whether I need to reformulate my
query and send it to R-help, or whether the image
function will be adequate for all that I need to do.

Mikkel


--- "Edzer J. Pebesma" <e.pebesma at geo.uu.nl> wrote:

> Mikkel, I've looked at it for a while but can't see
> an easy
> solution to this, apart from using
> 
> image(df1, xlim = c(0, 6), ylim = c(0, 7))
> image(df2, add = T)
> image(df3, add = T)
> 
> spplot basically wraps levelplot for grids, and I
> don't see an
> easy way out using that for multiple grids with
> different cell
> sizes; see what happens if you join the grid cell
> centres as
> points and feed them to levelplot as a data.frame,
> probably
> the grid cell sizes levelplot will choose will not
> suit you.
> 
> A solution might be to try to do it on the level of
> package
> grid, but my skills are not sufficient for that.
> Another would
> be to consult Deepayan (through R-help).
> --
> Edzer
> 
> Mikkel Grum wrote:
> > # Is there a way to plot contiguous spatial grids
> on
> > # the same plot, even when the grids have 
> > # unequal spacing? An example would be:
> >
> > df1 <- data.frame(expand.grid(x = 1:3, y = 1:4), z
> =
> > rnorm(12, 1, 0.01))
> > df2 <- data.frame(expand.grid(x = 1:3, y = 5:7), z
> =
> > rnorm(9, 2, 0.01))
> > df3 <- data.frame(expand.grid(x = 4:6, y = seq(1,
> 7,
> > 1.5)), z = rnorm(15, 3, 0.01))
> >
> > # If I just wanted points, I would do the
> following:
> > plot(df1[, 1:2], xlim = c(0, 7), ylim = c(0, 8),
> type
> > = "n")
> > points(df1, col = "blue")
> > points(df2, col = "red")
> > points(df3, col = "grey")
> >
> > # If the grids had equal spacing, the following
> would
> > # work (in this case it doesn't):
> > library(sp)
> > df <- rbind(df1, df2, df3)
> > coordinates(df) <- ~x+y
> > gridded(df) <- TRUE
> > spplot(df)
> >
> > # I had hoped that I could do something like: 
> > coordinates(df1) <- ~x+y
> > gridded(df1) <- TRUE
> > coordinates(df2) <- ~x+y
> > gridded(df2) <- TRUE
> > coordinates(df3) <- ~x+y
> > gridded(df3) <- TRUE
> >
> > spplot(df1, xlim = c(0, 7), ylim = c(0, 8))
> > spplot(df2, add = TRUE)
> > spplot(df3, add = TRUE)
> > # but that doesn't work, so I tried:
> >
> > spplot(xlim = c(0, 6), ylim = c(0, 7),
> >     panel = function(x, y, subscripts, . . .) {
> >         panel.spplot(df1),
> >         panel.spplot(df2),
> >         panel.spplot(df3)
> >     }
> > )
> > # which doesn't work either. 
> > # Is there any way round this?
> >
> > Regards,
> > Mikkel Grum
> >
> > Genetic Diversity
> > International Plant Genetic Resources Institute
> >
> > _______________________________________________
> > R-sig-Geo mailing list
> > R-sig-Geo at stat.math.ethz.ch
> > https://stat.ethz.ch/mailman/listinfo/r-sig-geo
> >   
> 
>




More information about the R-sig-Geo mailing list