如何使用spplot
or生成以下图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
在这部分代码之后,我得到了想要的外观,这不是很漂亮但可以接受。 任何帮助都将受到高度评价!