将加权点添加到多个地图图中

Adding Weighted Points to Multiple Maps Plot

如何使用 spplotggplot 生成以下图。我尝试了两种方法,但不幸的是,它们中的任何一种都没有占上风。 我遇到的问题与 appropiate 向地图添加点有关。 重现问题所需的所有必要数据 (.shp,.prj,.dbf,.shx) 均可用 here

我的代码如下:

    library(sp)
    library(maptools)
    library(RColorBrewer)
    germK <- readShapePoly("C:/Users/XYZ/Dropbox/R Skripts/PolygonG/vg250_krs.shp")
    germK <- germK[germK@data$GF==4,]
    germK@data$EWZ2 <- cut(germK@data$EWZ, breaks=quantile(germK@data$EWZ, 1:10/10))
    germK@data$EWZ <- germK@data$EWZ2
    mypalette <- rev(brewer.pal(9, "RdYlGn"))
    pts1 <- list("sp.points", germK, pch = 21,lwd=2,cex=sample(1:412,412)/200, col = "black")
    pts2 <- list("sp.points", germK, pch = 21,lwd=2,cex=sample(1:412,412)/200, col = "black")
    p.layout <- list(pts1,pts2)
    spplot(germK,zcol=c("EWZ","EWZ2"), sp.layout = p.layout, col.regions=mypalette)

我执行上面的代码行得到的结果是:

来自 pts1 的点必须绘制在第一张地图上,来自 pts2 的点应该分别绘制在第二张地图上。在我的例子中,您可以看到两个点都存在于两个地图中。知道如何解决这个问题吗?

最近找到了一个正确描绘点的方法,但是这样标题就消失了:

p1 <- spplot(germK,zcol="EWZ", sp.layout = pts1, col.regions=mypalette,
                         names.attr="X")
p2 <- spplot(germK,zcol="EWZ", sp.layout=pts2, col.regions=mypalette,
                         names.attr="Y")
p3 <- c(p1,p2, layout=c(2,1))
p3

在这部分代码之后,我得到了想要的外观,虽然不是很漂亮,但可以接受。 任何帮助都将 高度 appriciated!

我认为你可以利用 which 参数:

pts1 <- list("sp.points", germK, pch = 21,lwd=2,cex=sample(1:412,412)/200, col = "black", which = 1)
pts2 <- list("sp.points", germK, pch = 21,lwd=2,cex=sample(1:412,412)/200, col = "black", which = 2)

spplot(germK,zcol=c("EWZ","EWZ2"), sp.layout = list(pts1, pts2), col.regions=mypalette)