Я пытаюсь нанести на карту некоторые провинциальные данные о Канаде.Однако некоторые из моих данных объединены в регионы, поэтому мне нужно объединить некоторые провинции на моей карте.Я знаю, что провинции в моих данных пересекаются с некоторыми регионами (Альберта является частью прерий), но это то, что у меня есть.
Пример данных, которые я хочу построить:
data_to_plot <- data.frame(province = c("Alberta", "Atlantic Canada", "British Columbia",
"Ontario", "Prairies", "Quebec"),
data = runif(6, 1E6, 1E8))
Шейп-файл для Канады с провинциями можно скачать здесь .
Что я пробовал до сих пор:
library(tidyverse)
library(rgdal)
# Import the shape file
shapefile <- readOGR("[path to shape file]", "Canada")
shapefile_df <- fortify(shapefile, region = "NAME")
shapefile_df$id[shapefile_df$id == "Yukon Territory"] <- "Yukon"
# Replace `id` with new region name, where applicable
shapefile_df <- shapefile_df %>%
mutate(id = case_when(id %in% c("New Brunswick", "Nova Scotia", "Prince Edward Island") ~ "Atlantic Canada",
id %in% c("Saskatchewan", "Manitoba") ~ "Prairies",
TRUE ~ id))
# Merge map data with data to plot
map.data <- full_join(shapefile_df, data_to_plot, by = c("id" = "province"))
# Plot the map
ggplot(map.data) +
geom_polygon(aes(x = long, y = lat, group = id, fill = data),
size = 0, alpha = 0.9) +
geom_path(aes(x = long, y = lat, group = group),
color = "grey", size = 0.5, alpha = 0.5)
Как вы можете видеть ниже, это создает беспорядок,Желательно также удалить любые границы между провинциями в пределах одного региона.Я признаю, что не знаю много о файлах форм или ГИС, поэтому, пожалуйста, дайте мне знать, если то, что я хочу сделать, невозможно.
