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

Edzer J. Pebesma e.pebesma at geo.uu.nl
Mon Mar 27 10:24:10 CEST 2006


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