繁体   English   中英

如何在 R 中的 map 上插入刻度

[英]How to insert a scale on a map in R

我想知道是否可以生成等比例的附加图像,以红色突出显示

library(terra)
library(geodata)
brz <- geodata::gadm("Brazil", level=2, path=".")
mun <- brz[brz$NAME_2 == "Castro", ]
plot(mun, main="", axes=FALSE)

在此处输入图像描述

例子:

在此处输入图像描述

您可以使用tm_scale_bar中的tmap将比例尺添加到 map。 此外,您可能需要sfmunSpatVector转换为sf (tmap 可用的格式)。

library(tmap)
library(sf)

# Transform mun to sf
tm_shape(sf::st_as_sf(mun)) +
  # Draw as polygon with only borders
  tm_borders() +
  # Add scale bar
  tm_scale_bar(position = c("LEFT", "BOTTOM"))

地图

另一种选择是使用库ggspatialtidyterra

library(ggspatial)
library(tidyterra)

ggplot() +
  geom_spatvector(data = mun)  +
  annotation_scale() + # add scale
  annotation_north_arrow(location = "br", which_north = "true") + # add arrow
  theme(
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    panel.border = element_blank(),
    axis.text.y=element_blank(),  #remove y axis labels
    axis.ticks.y=element_blank(),  #remove y axis ticks
    axis.text.x=element_blank(),  #remove x axis labels
    axis.ticks.x=element_blank()  #remove x axis ticks
  )

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM