首先,我知道这个答案:使用facet wrap在R中映射不同的状态
但我使用库的对象sf.
似乎facet_wrap(scales = "free")不适用于使用geom_sfggplot2 绘制的对象.我收到这条消息:
Erreur:只有
coord_cartesian()和 支持自由音阶coord_flip()
有没有我错过的选择?
任何人都可以在不被迫使用cowplot(或任何其他网格范围)的情况下解决问题?
的确,这是一个例子.我想分别展示不同的法国地区,但有自己的x/y限制.
使用整个地图的范围计算尺度.
FRA <- raster::getData(name = "GADM", country = "FRA", level = 1)
FRA_sf <- st_as_sf(FRA)
g <- ggplot(FRA_sf) +
geom_sf() +
facet_wrap(~NAME_1)
Run Code Online (Sandbox Code Playgroud)
我需要使用ggplots列表然后将它们组合起来.这是目标输出.它更清洁.但我也想要一个干净的方式来添加一个传奇.(我知道可能有一个共同的传说,就像在另一个SO问题中: facet wrap扭曲R中的状态图)
g <- purrr::map(FRA_sf$NAME_1,
function(x) {
ggplot() +
geom_sf(data = filter(FRA_sf, NAME_1 == x)) +
guides(fill = FALSE) +
ggtitle(x)
})
g2 <- cowplot::plot_grid(plotlist = g)
Run Code Online (Sandbox Code Playgroud)