2016-09-22 14 views
2

Я создаю пространственную карту деревьев на основе местоположения x-y, используя пакет сплэшстата и функцию ppp. Я смог сделать это, и размер каждой точки основывается на диаметре дерева. То, что я не мог сделать, и надеюсь найти здесь какую-то помощь, заключается в создании легенды, которая позволяет мне показывать эти разные круги, а также включать 6 видов деревьев в сюжет. Вот код I'm с помощью:Легенда в сюжете ppp

df <- subset(plots, plots$spp == "DF") # Douglas-fir 

dfx <- as.numeric(as.character(df$x)) 
dfy <- as.numeric(as.character(df$y)) 
dfd <- as.numeric(as.character(df$d)) 

dfp <- ppp(dfx, dfy, window = owin(c(0, 100), c(0, 100)), 
        unitname=c("metres","metres"), marks = dfd) 
par(mar = c(2, 2, 2, 2))           
plot(dfp, main = "", cex = 0.8, markscale = 0.04, 
    bg = rgb(0.1,0.9,0.3,0.5), fg = "black") 

У меня аналогичная структура для каждого вида на графике (Wh для Западной Хемлок и код такой же ...)

Благодаря

!
+0

Просто уточните: вы хотите, чтобы каждый вид был нанесен другим цветом, а затем включал легенду, связывающую названия видов с цветами? –

ответ

0

Сначала соберите все данные в один объект ppp, используя superimpose. Например, если у вас есть пихта Дуглас dfp и Западные Хемлки whp затем

X <- superimpose(DF=dfp, WH=whp) 

создают шаблон X точку, в которой каждая точка имеет два значения метки, вид и диаметр. Для удобства измените имена столбцов знака:

colnames(marks(X)) <- c("diameter", "species") 

Следующих определить карту символа участка для диаметров (без прокладки ничего):

dmap <- plot(subset(X, select=diameter), do.plot=FALSE) 

Следующих выбрать набор цветов для различных видов, например,

spec <- levels(marks(X)$species) 
    scol <- c("red", "blue") 
    smap <- symbolmap(inputs=spec, col=scol) 

Теперь сюжет видов в отдельных цветов, используя масштаб карты диаметр:

plot(Window(X), main="The main title") 
    for(i in seq_along(spec)) { 
    sy <- update(dmap, col=scol[i]) 
    Xi <- subset(X, species==spec[i], select=diameter) 
    plot(Xi, add=TRUE, symap=sy) 
    } 

Наконец построить два символа карты dmap и smap в тех местах, которые вы хотите с помощью plot(dmap, add=TRUE, xlim=..., ylim=...) и так далее.

В будущем это будет автоматизировано, но оно еще не реализовано.

+0

[superimpose] работал идеально для создания одного уникального объекта ppp. Тем не менее, я получаю сообщения об ошибках для [dmap <- plot (подмножество (X, select = диаметр), do.plot = FALSE)]. Ошибка: «Ошибка в subset.default (X, select = диаметр): отсутствует аргумент« subset », без значения по умолчанию». –

+0

[superimpose] работал идеально для создания одного уникального объекта ppp. Тем не менее, я получаю сообщения об ошибках для [dmap <- plot (подмножество (X, select = диаметр), do.plot = FALSE)]. Ошибка: «Ошибка в subset.default (X, select = диаметр): отсутствует аргумент« subset », без значения по умолчанию». Я попытался использовать функцию слюны, но не работал. Функция symbolmap принадлежит ggplot? Я совсем не знаком с этим и путаюсь с ошибкой «невозможно найти карту символов». У меня также была ошибка в sy: Error en update.default (dmap, col = scol [X1i]): нужен объект с компонентом вызова –

+0

Сообщения об ошибках указывают либо на то, что сплесть не была загружена, либо что X не был объектом ppp. Перед выполнением этого кода необходимо ввести библиотеку (spartstat). Также убедитесь, что правильный объект X, созданный в первой строке кода, используется в третьей строке кода. Если он все еще не работает, отправьте минимальный пример. –