0

如何使用spplotor生成以下图ggplot。我尝试了两种方法,但不幸的是,它们中的任何一种都没有占上风。我面临的问题与地图的适当添加点有关。.shp,.prj,.dbf,.shx重现问题所需的所有必要数据 ( ) 均在此处提供

我的代码如下:

    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

在这部分代码之后,我得到了想要的外观,这不是很漂亮但可以接受。 在此处输入图像描述 任何帮助都将受到高度评价!

4

1 回答 1

1

我认为你可以利用这个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)
于 2015-02-23T07:42:36.433 回答