【发布时间】:2021-02-09 01:14:19
【问题描述】:
我正在制作一个显示城市的 ggplot + geom_sf 地图,此外,我想说明这些城市属于特定区域。 简而言之,我想绘制将城市组合到一个区域(例如“西部”)的圆圈(类似于 geom_encircle())。 enter image description here enter image description here
不幸的是,geom_encircle() 并没有得到想要的结果。 您对我该如何继续有任何想法/提示?
底层地图数据是一个sf对象(几何类型:Multipolygon,维度XY), 城市数据是一个 sf 对象(几何类型:点,维度 XY),包括一个名为“区域”的列,用于定义哪些城市应作为一个组被包围。
地图数据(德国)提取自
https://opendata.arcgis.com/datasets/2842f834961b4702a179bdcb08f7b6c9_0.zip?outSR=%7B%22latestWkid%22%3A3857%2C%22wkid%22%3A102100%7D
可以下载来自 ESRI Deutschland 的 shapefile “Bundesländer 2018 mit Einwohnerzahl”。
使用以下代码进行了转换:
Deutschland <- st_read("xn--Bundeslnder_2018_mit_Einwohnerzahl-h4c", "LAN_ew_18")
城市数据来自谷歌地图(经度和纬度),由“地区”条目扩展(抱歉,我无法上传 csv 文件,因此请参阅 csv 屏幕截图)。 enter image description here R中的处理如下:
Cities <- read.csv("Cities_regions.csv")
Cities_sf <- st_as_sf(Cities, coords = c("Long", "Lat"), crs = 4326)
Cities_crs <- st_transform(Cities_sf, crs = crs(Deutschland, asText=TRUE))
绘制地图和城市数据是这样进行的:
ggplot(Deutschland) +
geom_sf(fill="#D9D9D9", col="#A6A6A6", lwd=0.1) +
geom_sf(data = Cities_crs, size = 1, col = "black") +
coord_sf()
现在我陷入了困境,因为 geom_encircle 需要 X 和 Y 美学,到目前为止我无法正确指定。 你有提示吗?
最好的问候, 克里斯托夫
【问题讨论】: