2013-07-16 2 views
1

Я пытаюсь связать данные в каждой стране ('prop') в CSV-файле с каждым соответствующим полигоном в файле .shp, однако многоугольники неправильно настройте карту после того, как я попытаюсь выполнить функцию merge.R - разрывание многоугольника при попытке слияния .csv в .shp-файлы

Сначала я создаю многоугольники с помощью fortify, расщеплению кодом страны 3 букв в файле .shp ...

gpclibPermit() 
worldmapDf<- fortify(worldmap, region="ISO_3_CODE") 

Тогда я пытаюсь связать «подпирать» данные из файла .csv, сопоставление по столбцу с 3-буквенным кодом страны («код» в этом случае).

forestareamap <- merge(worldmapDf, forestarea, by.x="id", by.y="code") 

Тогда я пытаюсь построить его ...

ggplot(forestareamap)+aes(long,lat,group=group,fill=prop)+geom_polygon() 

И это происходит ...

enter image description here

Очевидно, что многоугольники не рисунок в правильном порядке, но Я не уверен, как правильно их заказать.

Построение данных непосредственно после того, как fortify генерирует правильные полигоны, поэтому что-то не работает с функцией слияния. Будучи полным новичком, я понятия не имею ...

+0

try merge (..., sort = FALSE)? – Xachriel

+0

КАК вы даете нам доступ к 'worldmap'? Почти наверняка вы не использовали 'fortify' совершенно правильно. Полигоны рисуются правильно, но 'ggplot2' не знает, как их группировать/где один начинается, а другой заканчивается. –

ответ

2

У меня была аналогичная проблема с моими данными. Объединяйте беспорядок с упорядочением, вызывая эту проблему. Попытка:

forestareamap <- forestareamap[order(forestareamap$order),] 
ggplot(forestareamap)+aes(long,lat,group=group,fill=prop)+geom_polygon() 

Это должно вернуть все в правильном порядке.

Смежные вопросы