У мене є питання щодо побудови карти хороплету. Що рекомендується щодо побудови карти із спеціальними перервами? І зробити це виглядати трохи привабливо.
У своєму сценарії я використав команду plot та spplot для візуалізації деяких даних, але я не зовсім задоволений результатом. Неважко зрозуміти, чому. Використовуючи spplot, я отримую кольорову рампу, яка повторює кольори для різних значень, що трохи дивно. Використовуючи сюжет із користувацькими перервами, я не зміг зробити кращі інтервали для значень, такі, наприклад, що на нульовому значенні на карті є білі значення. Перекошені пропорції між легендою та картою - я думаю, ймовірно, результат Rstudio.
Тож я поцікавився, чи є хтось кращі пропозиції щодо побудови карт хороплета в R за допомогою спеціальних перерв?
РЕДАКЦІЯ 20-02-2013
Як було запропоновано, я використовував ggplot2 для створення карти хороплета. Я використав код нижче. У мене виникли дві проблеми. Одне полягає в тому, що після фортифікації даних не всі дані з файлу форми переносяться в кадр даних. Тому я повинен перейменувати змінну "id" таким чином, щоб я міг об'єднати дані. Незначне питання.
Більш важливим питанням є те, що незважаючи на те, що дані в рамці даних є правильними, ggplot показує карту, де дані невірні. Значення кольору згідно легенди не відповідає значенню змінної в даних. Я щось тут не помічаю?
# Plotting polygon shapefiles (try-out)
# Load the packages
require(rgdal)
require(maptools)
require(ggplot2)
gpclibPermit() # required for the fortify method
# Load the shapefile
africa=readOGR("/home/GIS",layer="africaII")
names(africa)
# Load the data on conflict
conflict<-read.csv("africa_conflict.csv", header=TRUE)
names(conflict)
# Merge the data together
africadat<-merge(africa, conflict, by="ISO3")
# Changing the data in the shapefile
africa@data <- africadat
# Fortify so that ggplot can plot
africa.points = fortify(africa,region="ISO3")
# Change "id" to "ISO3"such that the datasets can be merged again
names(africa.points)[names(africa.points)=="id"]<-"ISO3"
africa.df=merge(africa.points,africadat,by="ISO3")
# Plot the data
ggplot(africa.df) +
aes(long,lat,group=group) +
geom_polygon(aes(fill =onset))+
geom_path(color="white") +
coord_equal()
Оновлення 13-11-2015: Виправлена посилання на файл форми . Дивіться відповідь нижче, щоб вирішити, як побудувати хороплет.
ggplot2
карт хороплета, які, на мою думку, виглядають вигіднішими за замовчуванням.