Если вы спросите, как вы можете сделать это в ggplot, вы можете довольно легко. Если нет, можете ли вы уточнить, что вы спрашиваете?
Вы можете легко нарисовать карту Бразилии и использовать свой шейп-файл напрямую или с некоторыми изменениями. Так как у меня нет твоего шейп-файла, я использую один свой, и ты можешь подстроиться под себя. Я только что сделал две произвольные коробки и пометил их полем с именем id
. Название вашей группы может отличаться.
library(ggplot2)
library(maps)
library(rgdal)
brasilia <- borders("world", regions = "Brazil")
brazil <- ggplot() + brasilia + theme_bw() + xlab("Longitude (decimals)") + ylab("Latitude (decimals)") +
theme(panel.border = element_blank(), panel.grid.major = element_line(colour = "grey80"), panel.grid.minor = element_blank()) +
coord_fixed(1.0)
brazil # You can see just the map of Brazil
Затем импортируйте ваш шейп-файл, используя rgdal
, который должен прочитать все метаданные, чтобы вам не приходилось указывать, что такое проекция и т. Д. Просто скажите, где он находится и как называется имя файла формы. См. ?readOGR
для получения помощи.
shapes <- readOGR(dsn = "C:/foo/GIS/Brazil", layer = "brazil_grid")
brazil_shapes <- brazil + geom_path(data = shapes, aes(x = long, y = lat, group = id), color = "red")
brazil_shapes
Заполнение их нужными цветами может занять больше всего времени, создав таблицу для сопоставления уровней заполнения с сетками. Похоже, этот ответ может указать вам правильное направление. R ggplot2 объединить с данными шейп-файла и csv для заполнения полигонов
Вот хороший обзор картографирования в R. http://eriqande.github.io/rep-res-web/lectures/making-maps-with-R.html