map_data для канадских провинций в R - PullRequest
1 голос
/ 12 февраля 2020

Я использую ggplot2 для построения карты Соединенных Штатов и Канады и хочу отобразить контуры штатов США и канадских провинций. Я смог обрисовать в общих чертах штаты США с помощью map_data ("штат") в функции geom_polygon (), но получил ошибку, что map_data ("провинция") или map_data ("Канада"), или что-либо связанное с Канадой, не экспортируется объект в картах.

Приложенная фотография - мой текущий вывод - я бы хотел, чтобы она выглядела точно так же, но с очертаниями канадской провинции. Мой текущий код ниже.

library(ggplot2)
library(sf)
library(rnaturalearth)
library(rnaturalearthdata)
library(rgeos)
library(raster)

#State/Province outlines
states <- map_data("state")
provinces <- map_data("province")

ggplot(data = world) + 
  geom_sf() +
  xlab("Longitude") +
  ylab("Latitude") +
  geom_polygon(data = states, aes(x = long, y = lat, group = group), color = "black", fill = "antiquewhite") +
  coord_sf(xlim = c(-130, -65), ylim = c(25,58.5), expand = FALSE) + 
  annotate(geom = "text", x = -100, y = 40, label = "United States", fontface = "italic", color = "grey22", size = 3) +
  annotate(geom = "text", x = -100, y = 52.5, label = "Canada", fontface = "italic", color = "grey22", size = 3) +
  theme(panel.grid.major = element_line(color = gray(.5), linetype = "dashed", size = 0.5), 
        panel.background = element_rect(fill = "paleturquoise1"))

Текущий выход

1 Ответ

1 голос
/ 13 февраля 2020

Пакет карт (который содержит карту "штат") не имеет эквивалента для Канады. Но относительно легко получить такую ​​карту из разных источников. Я вижу, вы уже загрузили rnaturalearth, так что вы можете попробовать

state_prov <- rnaturalearth::ne_states(c("united states of america", "canada"))

, который даст вам карту уровня США и Канады вместе. Кроме того, вы можете попробовать GADM:

library(raster)
states <- getData(country="USA", level=1)
provinces <- getData(country="Canada", level=1)

Лучше использовать один и тот же источник для обеих стран, чтобы границы совпадали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...