我目前正在处理地理数据以便将其映射。我有两个不同的shapefile。我想做的是在加拿大和美国之间添加一个粗体边框,我不知道该怎么做。

# Load packages ----------------------------------------------------------------
library(dplyr)
library(readr)
library(ggplot2)
library(rgdal)
library(ggmap)

# Load data --------------------------------------------------------------------
canada <- readOGR(dsn = "00-raw/gcd_000b11a_e/", layer = "canada") %>% fortify()
us <- readOGR(dsn = "00-raw/usmaps/us/", layer = "co99_d90") %>% fortify()

# Maps -------------------------------------------------------------------------
gg <- ggplot() + geom_map(data=canada, map=canada,
                    aes(long, lat, map_id=id),
                    size=0.1, fill=NA, color = "black") +
    coord_map("stereographic", xlim=c(-120, -60)) +
    geom_map(data=us, map=us,
             aes(long, lat, map_id=id),
             size=0.1, fill=NA, color = "black") +
    theme_nothing(legend = T)

r - 在R.中为美国和加拿大之间添加粗体边框。-LMLPHP

最佳答案

使用sf包中的地理空间统计功能来查找边界“形状”。然后在上面绘制。

library(sf)
border <- st_intersection(us, canada)
gg + geom_map(data=border, map=us,
         aes(long, lat,
         size=0.1, fill=NA, color = "red")

关于r - 在R.中为美国和加拿大之间添加粗体边框。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43354631/

10-09 17:08