【问题标题】:ggplot2 fill polygons in shapefile by coordsggplot2通过坐标填充shapefile中的多边形
【发布时间】:2019-06-24 03:22:45
【问题描述】:

所以我有 shapefile(在页面底部命名为 POWIATY)。我想用我拥有的坐标填充特定的多边形。

假设,我想填充整个区域: 纬度:52.599427 lon:20.7572137

我知道如何在地图上设置点坐标,但如何在其中填充整个多边形?

【问题讨论】:

  • 这个问题看不懂,能不能解释清楚一点?
  • 在 shapefile 中是否为您要着色的区域定义了组或区域(或其他术语)?

标签: r ggplot2 geospatial


【解决方案1】:

该 shapefile 中有重复的区域名称,因此您必须使用多边形数字 id 填充:

library(rgdal)
library(rgeos)
library(ggplot2)

pow <- readOGR("POWIATY.shp", "POWIATY")
plot(pow)

where <- over(SpatialPoints(cbind(20.7572137, 52.599427)), pow, TRUE)
reg <- data.frame(id=rownames(where[[1]]))

map <- fortify(pow)

gg <- ggplot()
gg <- gg + geom_map(map=map, data=map, 
                    aes(x=long, y=lat, map_id=id),
                    fill="white", color="black", size=0.25)
gg <- gg + geom_map(data=reg, map=map,
                    aes(fill=id, map_id=id), color="steelblue")
gg <- gg + coord_map()
gg <- gg + theme_bw()
gg

【讨论】:

  • 我测试了一段时间。当我尝试将其添加到另一个 shapefile 时,它​​在使用 over 函数后显示“变量相同的 CRS(x,y)不是 TRUE”。此外,当我尝试对地图中的所有多边形使用 gps 来填充它时,它会显示一些空白。有指向 shapefile 的链接:link
猜你喜欢
  • 2013-04-04
  • 2020-09-18
  • 1970-01-01
  • 2019-02-15
  • 1970-01-01
  • 1970-01-01
  • 2017-11-04
  • 1970-01-01
  • 2012-07-05
相关资源
最近更新 更多