2013-06-03 2 views
2

Я довольно новичок в R, и я пытаюсь сопоставить распределение видов муравьев в Аргентине, используя подразделения adm1 (или state).Создание Choropleth в R без использования градиента

Я загрузил данные с сайта GADM, и у меня есть файл csv, который я создал, который содержит информацию о том, присутствует ли данный вид или отсутствует в каждом adm1. Даже если у меня нет градиента, могу ли я сделать choropleth? Если нет, какие другие типы карт я мог бы использовать?

Я посмотрел на нескольких сайтах, включая Infomaps using R, How to make choropleths in R и Choropleth Карта Вызова, которые были очень полезны, но все они имеют числовые данные, и я использую подарок (1) или нет (0) столбец. Различные пакеты, которые я пробовал, - spRColorBrewer), ggplot2, rgeos и maptools.

Вот код, который я до сих пор:

library(sp) 
library(RColorBrewer) 
write.csv(atr, "atr_data.csv") 
atr_data<-read.csv("atr_data.csv", header=TRUE) 
    spcode country_code adm1_code newcol 
1 atr   VEN  VE.AR  0 
2 atr   PRY  PY.CE  0 
3 atr   PAN  PA.CL  0 
4 atr   PAN  PA.CL  0 
5 atr   PAN  PA.PN  0 
6 atr   PAN  PA.PN  0 

Я нахожусь в процессе создания колонки с полными именами adm1 вместо кодов, так что он будет совпадать с файлом GADM (поэтому я еще не написал код для объединения данных).

#to retrieve map for Argentina ARG 
con <- url("http://gadm.org/data/rda/ARG_adm1.RData") 
print(load(con)) 
close(con) 
#to generate random colors on map 
col = rainbow(length(levels(gadm$NAME_1))) 
spplot(gadm, "NAME_1", col.regions=col, main="ARG Regions", colorkey = FALSE, lwd=.4,col="white") 
#this piece of code is a mess 
col_no <- as.factor(as.numeric(atr_data$newcol[order], 
       c(0,1))) 
levels(col_no)<- c("0", "1") 
gadm$col_no <- col_no 
myPalette<-brewer.pal(3, "Purples") 
spplot(gadm, "col_no", col=grey(.9), 
col.regions=myPalette, 
main="Distribution of Atratus in Argentina") 

Любая помощь будет принята с благодарностью, спасибо!

ответ

4

Есть пара незначительных проблем, которые возникают в примере, который вы предоставили.

Во-первых, доступ к слоту данных для пространственных полигональных кадров данных можно получить с помощью [email protected]$col_no вместо gadm$col_no. Как только вы закончите заполнять таблицу присутствия/отсутствия, либо путем прямого доступа к слоту, либо используя spCbind в пакете maptools, вы можете добавить данные о присутствии/отсутствии в пространственный многоугольник.

Во-вторых, если у вас есть только 2 уровня в вашем col_no факторах, вам придется подмножество MyPalette до 2 цветов, так как палитра Brewer будет работать только с 3 уровнями.

library(sp) 
library(RColorBrewer) 
con <- url("http://gadm.org/data/rda/ARG_adm1.RData") 
print(load(con)) 
close(con) 

# Randomly assigning presence/absence data for display purposes only 
[email protected]$col_no <- as.factor(rbinom(n = 24, size = 1, prob = 0.5)) 

myPalette <- brewer.pal(3, "Purples") 

# col.regions is limited to 2 colors below with the middle color dropped. 
spplot(gadm, zcol = "col_no", colorkey = TRUE, col.regions = myPalette[-2], 
    main="Distribution of Atratus in Argentina") 

enter image description here

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