如何在R语言中调整地图罗盘位置使其略高于比例尺
调整tmap地图中罗盘位置以避免与比例尺重叠
当前使用tmap绘制地图时,左下角的罗盘与比例尺出现重叠,需要将罗盘调整到略高于比例尺的位置。
修改前代码
library(terra) library(geodata) library(tmap) library(sf) brz <- geodata::gadm("Brazil", level=2, path=".") mun <- brz[brz$NAME_2 == "Castro", ] tm_shape(sf::st_as_sf(mun)) + tm_borders() + tm_scale_bar(position = c("LEFT", "BOTTOM"))+ tm_compass(size = 3, cardinal.directions = c("N", "E", "S", "W"), type = 'rose', position = c("left","BOTTOM"),show.labels = 2)
解决方案
tmap的position参数支持用0-1范围的数值(0对应底部/左侧,1对应顶部/右侧)精确控制元素位置,而非仅用字符串标识。通过给罗盘设置比比例尺稍高的垂直位置数值,即可避免重叠:
修改后代码
library(terra) library(geodata) library(tmap) library(sf) brz <- geodata::gadm("Brazil", level=2, path=".") mun <- brz[brz$NAME_2 == "Castro", ] tm_shape(sf::st_as_sf(mun)) + tm_borders() + tm_scale_bar(position = c("LEFT", "BOTTOM"))+ tm_compass(size = 3, cardinal.directions = c("N", "E", "S", "W"), type = 'rose', position = c("left", 0.08), # 微调垂直位置,避开比例尺 show.labels = 2)
说明
- 比例尺保持默认贴合底部边缘的设置
position = c("LEFT", "BOTTOM") - 罗盘的垂直位置设为
0.08(可根据实际显示效果在0.07-0.1区间微调),会自动位于比例尺正上方,解决重叠问题
内容的提问来源于stack exchange,提问作者Antonio
相关产品推荐
相关产品推荐

