r - 使用 tmap 缩放和裁剪 map

标签 r sf tmap

我正在尝试准备一张插图以提供不丹地理位置的引用。我想要一张填满方框的 map ,其中印度、中国、孟加拉国的一部分是可见的,而不是整个亚洲大陆。

我正在使用以下代码:

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()

我希望缩放和裁剪这张 map ,使不丹更加明显。印度、中国、孟加拉国、尼泊尔足以引用不丹的位置。我希望 map 填满方框,将不丹留在中心。

谢谢。

最佳答案

您可以使用 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 坐标。

关于r - 使用 tmap 缩放和裁剪 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57735053/

相关文章:

r - 操作图例 : tmap 中的 "missing"标签

在 R 中删除 tmap 中的图例

R 的 magick 包将动画 gif 保存为永远循环

r - 使用默认参数的match.call

r - 在 sf 中测试/过滤几何图形的相等性?

r - 在 R 中写出形状文件时出现 CPL_write_ogr 错误

r - 将点平均在一起而不重复并减少最终数据帧

r - tmap R - 将主题图标题的字体从纯文本更改为斜体,但保持图例字体纯文本

r - 在 R 中使用 rep() 函数

r - while 循环直到没有错误