Add XY points to raster map generated by levelplot
layer
is very convenient for this:
library(raster)
library(rasterVis)
library(sp)
s <- stack(replicate(2, raster(matrix(runif(100), 10))))
xy <- data.frame(coordinates(sampleRandom(s, 10, sp=TRUE)),
z1=runif(10), z2=runif(10))
coordinates(xy) <- ~x+y
levelplot(s, margin=FALSE, at=seq(0, 1, 0.05)) +
layer(sp.points(xy, pch=ifelse(xy$z1 < 0.5, 2, 3), cex=2, col=1), columns=1) +
layer(sp.points(xy, pch=ifelse(xy$z2 < 0.5, 2, 3), cex=2, col=1), columns=2)
Note that the columns
argument to layer
(rows
also exists) specifies which panel(s) you want to add the layer to.