相关疑难解决方法(0)

使用ggplot绘制带孔的多边形(在城市地图中)

我有3个shp文件用于创建城市地图:

  • land.shp(多边形绘制在水面之上的土地)
  • road.shp(绘制所有道路的多边形,注意其中一些是"圆形道路",这意味着一个洞位于中间)
  • building.shp(绘制所有建筑物的多边形)

我使用QGIS来绘制我想要的地图,然后我使用ggplot来播放land.shp,然后使用road.shp并建立shp再次执行此操作.下面的一个是从谷歌地图输出来说明我的问题:

在此输入图像描述

你可以看到它们之间有2座桥和一些海(我没有海啸,我只是将背景设置为蓝色),用蓝点标记.在R中,该区域应该是一个洞,但它都是灰色的.同样的问题是使用红点标记的灰色区域,红点是一块土地,另一个灰色区域使用绿点标记,绿点是由道路环绕的建筑物.

我将在road.shp的洞里有土地/海洋/建筑物,我无法用R.展示它们.

任何人都可以教我如何展示R中road.shp层背后的东西吗?谢谢.

r shapefile ggplot2

2
推荐指数
1
解决办法
2025
查看次数

具有多个孔的geom_polygon

我参考了这个问题的答案,还有其他问题.

我修改了如下代码:

library(ggplot2)

ids <- letters[1:2]

# IDs and values to use for fill colour
values <- data.frame(
  id = ids,
  value = c(4,5)
)

# Polygon position
positions <- data.frame(
  id = c(rep(ids, each = 10),rep("b",5)),
  #     shape      hole         shape        hole
  x = c(1,4,4,1,1, 2,2,3,3,2,   5,10,10,5,5, 6,6,7,7,6, 8,8,9,9,8),
  y = c(1,1,4,4,1, 2,3,3,2,2,   5,5,10,10,5, 6,7,7,6,6, 8,9,9,8,8)
)

# Merge positions and values
datapoly <- merge(values, positions, by=c("id"))

chart <- ggplot(datapoly, aes(x=x, y=y)) + 
  geom_polygon(aes(group=id, fill=factor(value)),colour="grey") +
  scale_fill_discrete("Key")
Run Code Online (Sandbox Code Playgroud)

并给出以下输出: …

r polygon ggplot2

2
推荐指数
1
解决办法
1764
查看次数

标签 统计

ggplot2 ×2

r ×2

polygon ×1

shapefile ×1