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

时间:2015-02-21 00:35:10

标签: r ggplot2 gis visualization sp

如何使用spplotggplot生成以下图表。我尝试了两种方式,但遗憾的是并没有在任何方面占上风。 我面临的问题与适当的在地图上添加点有关。 您需要重现问题所需的所有必要数据(.shp,.prj,.dbf,.shxhere

我的代码如下:

    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)

通过执行上面的代码行得到的结果是: enter image description here

来自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

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

1 个答案:

答案 0 :(得分: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)