我正在尝试准备一张插图,以提供不丹地理位置的参考。我想要一张填满盒子的地图,其中可以看到印度、中国、孟加拉国的一部分,而不是整个亚洲大陆。
我正在使用以下代码:
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
坐标。