我想使用
sf
包创建欧洲地图,并在其顶部覆盖欧洲的较小的放大部分。我希望我的地图的外观示例是从维基百科粘贴到这里的:
所以,我知道我可以首先创建一张欧洲地图,然后单独创建一张放大区域的地图,然后可能使用
ggdraw
来覆盖它们。然而,我具体感兴趣的是如何创建连接两个矩形的红色阴影区域(见上图)。我希望有某种方法可以自动完成此操作,但如果您有任何其他解决方法,我将非常感激。
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