[R-sig-Geo] how to plot different rows of a SpatialPolygonsDataFrame in trellis panels

Waichler, Scott R Scott@W@ichler @ending from pnnl@gov
Wed May 23 20:39:07 CEST 2018


Hello,

I have a SpatialPolygonsDataFrame.  I would like to do a trellis plot on one of the attributes, so that in the panel for a given attribute value, only those polygons with that value are plotted.  So, each panel has different polygons plotted in it.  I can't figure out how to do this.  In the toy example below, I would like to create a trellis plot with one panel showing the polygons with id = 1, and another panel showing the polygons with id = 2.

My goal beyond this toy problem is to do the same thing with stplot, where panels correspond to times and each time has a different set of polygons plotted.  Will that be possible?  In all the examples I can find of using stplot for a space-time grid with the spatial objects being polygons, the polygons are the same across time.

# based on example in help("SpatialPolygonsDataFrame-class")
Sr1 = Polygon(cbind(c(2,4,4,1,2),c(2,3,5,4,2)))
Sr2 = Polygon(cbind(c(5,4,2,5),c(2,3,2,2)))
Sr3 = Polygon(cbind(c(4,4,5,10,4),c(5,3,2,5,5)))
Sr4 = Polygon(cbind(c(5,6,6,5,5),c(4,4,3,3,4)), hole = TRUE)
Srs1 = Polygons(list(Sr1), "s1")
Srs2 = Polygons(list(Sr2), "s2")
Srs3 = Polygons(list(Sr3, Sr4), "s3/4")
SpP = SpatialPolygons(list(Srs1,Srs2,Srs3), 1:3)
grd <- GridTopology(c(1,1), c(1,1), c(10,10))
polys <- as(grd, "SpatialPolygons")
centroids <- coordinates(polys)
x <- centroids[,1]
y <- centroids[,2]
z <- 1.4 + 0.1*x + 0.2*y + 0.002*x*x
id = factor(sample(c(1,2), size=length(polys), replace=T))
tmp <- SpatialPolygonsDataFrame(polys,
      data=data.frame(x=x, y=y, z=z, id=id, row.names=row.names(polys)))
plot(tmp)  # plots all the square polygons (n = 10*10)
spplot(tmp)  # plots values of x, y, z, id in separate panels, each with 100 polys
spplot(tmp, zcol=z)  # error message about duplication of factor level
spplot(tmp ~ id, zcol=z, data=tmp)  # won't take formula

Thank you,
ScottWaichler
Pacific Northwest National Laboratory
scott.waichler _at_ pnnl.gov



More information about the R-sig-Geo mailing list