Существует несколько способов построения географических данных, один хороший и простой способ - использовать ggplot2
в сочетании с пакетом maps
, который предоставляет географические полигоны, отображающие страны мира.
Вы можете использовать world
сопоставьте набор данных и объедините его с вашими данными, например, на основе названий стран, чтобы получить географические координаты. Я не совсем понял, что вы хотите построить, но базовый вариант для вас может быть:
Данные
structure(list(Country = c("India", "China", "Mexico", "United States",
"United States", "United States", "United States", "United States"
), Country_code = c("IN", "CN", "MX", "US", "US", "US", "US",
"US"), Id = c(40, 3781, 40, 1000, 3781, 40, 65, 815), Unique_person = c(2,
1, 1, 14, 566, 43, 908, 78)), class = c("spec_tbl_df", "tbl_df",
"tbl", "data.frame"), row.names = c(NA, -8L), spec = structure(list(
cols = list(Country = structure(list(), class = c("collector_character",
"collector")), Country_code = structure(list(), class = c("collector_character",
"collector")), Id = structure(list(), class = c("collector_double",
"collector")), Unique_person = structure(list(), class = c("collector_double",
"collector"))), default = structure(list(), class = c("collector_guess",
"collector")), skip = 1), class = "col_spec"))
Код
library(ggplot2)
library(maps)
data$Country[data$Country == 'United States'] <- "USA" # names are different for USA in datasets
data <- merge(data,
map_data("world"), by.x = "Country", by.y = "region") %>%
arrange(Country, order)
ggplot() +
# world map
geom_polygon(data = map_data("world"),
aes(x=long, y = lat, group = group),
fill = "grey50") +
# custom map
geom_polygon(data = data,
aes(x=long, y = lat, group = group, fill = Id))