R - 使用 tmap 缩放和裁剪地图



我正在尝试准备一张插图,以提供不丹地理位置的参考。我想要一张填满盒子的地图,其中可以看到印度、中国、孟加拉国的一部分,而不是整个亚洲大陆。

我正在使用以下代码:

library(tmap); library(tidyverse)
data("World")
Asia<-World%>%filter(continent %in% c("Asia"))
Asia$isBhutan <- ifelse(Asia$name=="Bhutan", "darkorange", "grey")
tm_shape(Asia)+tm_fill("isBhutan")+tm_polygons()

我希望缩放和裁剪此地图以使不丹更加可见。印度,中国,孟加拉国,尼泊尔足以参考不丹的位置。我希望地图填满方框,将不丹放在中心。

谢谢。

可以使用sf包创建边界框。然后,您可以在tmap中使用它。

例如(添加到代码中(:

# create a bounding box on Bhutan and others
# play around with the countries to get what you want
library(sf)
bhu_bb <- st_bbox(World %>% filter(name %in% c("Bhutan", "India", "China", "Nepal")))
#new tmap with bbox
tm_shape(Asia, bbox = bhu_bb) + 
tm_fill("isBhutan") + 
tm_polygons()

由于印度和中国很大,这仍然是一个很大的区域,但您也可以手动设置bbox坐标。

相关内容

  • 没有找到相关文章

最新更新