Использование GGPlot для построения пространственных данных и цвета на основе значения столбца в R - PullRequest
0 голосов
/ 10 января 2020

Я читаю пространственные данные из шейп-файла, который содержит местоположение 100 районов в провинции. В другом кадре у меня есть данные о населении каждого района.

Я пытаюсь использовать ggplot, чтобы создать карту провинции (из шейп-файла) и раскрасить каждый район в зависимости от численности населения. Проблема здесь заключается в том, что я не знаю, как заполнить карту, собранную шейп-файлом, цветами, основанными на значениях населения, соответствующих районам, которые содержатся в другом фрейме данных.

Обратите внимание, что я понимаю, что код ниже не ' это работает, но это иллюстрирует то, что я интуитивно пытаюсь выполнить sh

districts_from_shapefile <- readOGR("districts.shp")
districts_with_pop <- read.csv(file = "districts_populations.csv")

ggplot() +  
        geom_polygon(data=districts_from_shapefile, aes(x=long,y=lat,group=group)) +
        geom_polygon(data=districts_with_pop, aes(fill=districts_with_pop$population))

Спасибо!

1 Ответ

0 голосов
/ 10 января 2020

Убедитесь, что ваш CSV имеет такое же количество строк и те же районы в том же порядке, что и шейп-файл. cbind столбца населения от CSV к атрибутам шейп-файла. Затем вы просто используете geom_polygon один раз, и fill = Population - это дополнительные значения aes (кроме x, y, group).

Если строки не совпадают, вы можете использовать dplyr :: join, чтобы переместить столбец совокупности .

...