R - sf 包 - 是否可以在较大的地图上创建具有一些附加功能的放大地图?

问题描述 投票:0回答:1

我想使用

sf
包创建欧洲地图,并在其顶部覆盖欧洲的较小的放大部分。我希望我的地图的外观示例是从维基百科粘贴到这里的:

所以,我知道我可以首先创建一张欧洲地图,然后单独创建一张放大区域的地图,然后可能使用

ggdraw
来覆盖它们。然而,我具体感兴趣的是如何创建连接两个矩形的红色阴影区域(见上图)。我希望有某种方法可以自动完成此操作,但如果您有任何其他解决方法,我将非常感激。

r maps
1个回答
1
投票

您可能对新的

ggmagnify
包感兴趣,但我不确定它是否可以填充与您的红色阴影区域相对应的内容(尚未):

library(ggplot2)
library(sf)
#> Linking to GEOS 3.11.2, GDAL 3.6.2, PROJ 9.2.0; sf_use_s2() is TRUE
library(rnaturalearth)
library(ggmagnify)

europe <- ne_countries(continent = "Europe", scale = 'medium',
                       type = 'map_units', returnclass = 'sf') 

your_map <- ggplot(europe) +
  geom_sf() +
  xlim(c(-20, 50)) +
  ylim(c(35, 70)) +
  theme_linedraw()

ggm <- your_map + 
  geom_magnify(
    from = c(9, 15, 42, 45),
    to = c(22, 36, 46, 52), 
    linewidth = 1, shadow = TRUE,
    colour = "red"
  ) 

ggm

© www.soinside.com 2019 - 2024. All rights reserved.