Изменение порядка панелей в решетчатых графиках в nlme

Я хотел бы опубликовать цифру augPred, созданную nlme, поэтому она должна выглядеть немного лучше (говорят рецензенты). Я хочу переупорядочить панели и изменить заголовки. Я пробовал использовать информацию, которую нашел для решетки, но почему-то она не работает в nlme. Например, я пробовал использовать index.cond. Он меняет порядок панелей, но не в том порядке, который я указал.

Вот оригинальный рисунок:

Рисунок

и код, который я пробовал с этим набором данных data, вам понадобится функция SSbgf:

library(nlme)
grow<-read.table("cobsgddv8.txt", header=T)

grow10<-subset(grow, grow$year == "2010")
grow10$EU<- with(grow10, factor(ground):factor(plot))
grow10G<-groupedData(mass ~ gdd | EU, data=grow10)

fit.beta.10 <- nlsList(mass ~ SSbgf(gdd, w.max, t.e, t.m), data = grow10G)
plot(intervals(fit.beta.10), layout = c(3,1))
fit.nlme.10<-nlme(fit.beta.10, random=pdDiag(w.max ~1))

fit.nlme3.10<-update(fit.nlme.10, random = list(w.max + t.m + t.e ~ 1))

plot(augPred(fit.nlme3.10), layout = c(4,6), xlab="", ylab="", ylim=c(-200,2700), 
index.cond=list(c(3,8,4,7,2,5,6,1,9,12,10,11,24,21,22,23,20,18,19,17,13,14,15,16))) 

#Order I am looking for
c("Above:12", "Above:21", "Above:35", "Above:43", "Above:15", "Above:23", "Above:32", 
"Above:41", "Above:13", "Above:24", "Above:31", "Above:46","Below:12", "Below:21", 
"Below:35", "Below:43", "Below:15", "Below:23", "Below:32", "Below:41",     "Below:13", 
"Below:24", "Below:31", "Below:46")))

#Panel titles I want 
c("M", "M", "M", "M", "FP", "FP", "FP", "FP", "P", "P", "P", "P","M", "M", "M", "M",
 "FP", "FP", "FP", "FP", "P", "P", "P", "P")

person Nazer    schedule 17.09.2013    source источник
comment
Ваш пример не воспроизводится. Я получаю сообщение об ошибке, указывающее, что "object 'SSbgf' not found"   -  person Josh O'Brien    schedule 17.09.2013
comment
Я связался с функцией. Если не сработает, я попробую переписать вопрос чем-нибудь из Пиньейро и Бейтса.   -  person Nazer    schedule 17.09.2013
comment
Я не думаю, что сработает создание SSbgf с помощью простого копирования и вставки, но, возможно, если вы сделаете это в четыре этапа, один для назначения кода функции и три для назначения атрибутов. Было бы очень предпочтительно опубликовать dput(SSbgf)-output   -  person IRTFM    schedule 17.09.2013
comment
@DWin, я не знаю, как использовать dput в SO. Я все время вижу, как люди просят его использовать, но не понимаю, что они имеют в виду. Я прочитал? Dput, я вижу, что он делает в R. Как мне его использовать, когда я печатаю свой вопрос? Что может быть лучше, чем дать вам мой r-файл?   -  person Nazer    schedule 17.09.2013
comment
Просто введите dput(SSbgf) в консоли и вставьте результаты.   -  person IRTFM    schedule 18.09.2013
comment
Спасибо, @DWin, это объясняет. Это не так волшебно, как я думал, просто я до сих пор не использовал его по-настоящему. Почти все, что я делаю, уже можно скопировать и вставить.   -  person Nazer    schedule 21.09.2013


Ответы (1)


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

dat22 = augPred(fit.nlme3.10)
dat22$.groups = factor(dat22$.groups, 
                   levels = c("Above:12", "Above:21", "Above:35", "Above:43", "Above:15", 
                         "Above:23", "Above:32", "Above:41", "Above:13", "Above:24", 
                         "Above:31", "Above:46", "Below:12", "Below:21", "Below:35", 
                         "Below:43", "Below:15", "Below:23", "Below:32", "Below:41", 
                         "Below:13", "Below:24", "Below:31", "Below:46"))
plot(dat22, layout = c(4,6), xlab="", ylab="", ylim=c(-200,2700))

Чтобы изменить заголовки в каждой полосе, вы можете установить factor.levels с помощью strip.custom.

plot(dat22, layout = c(4,6), xlab="", ylab="", ylim=c(-200,2700), 
    strip = strip.custom(factor.levels = c("M", "M", "M", "M", "FP", "FP", "FP", "FP", "P", "P", 
                                    "P", "P","M", "M", "M", "M", "FP", "FP", "FP", "FP", "P", 
                                    "P", "P", "P")))

Тем не менее, это заменяет исходные имена, и я не был полностью уверен, хотите ли вы увеличить имена или полностью изменить их.

person aosmith    schedule 17.09.2013
comment
Это именно то, что я ищу, за исключением того, что конфигурация панели перевернута. Ой, нет. Я исправлю это. - person Nazer; 17.09.2013
comment
Я думаю, что конфигурация графика по умолчанию может иметь отношение к значениям по умолчанию в пакете lattice. В частности, поиск справки по xyplot может помочь, если у вас возникнут дальнейшие проблемы с построением графика. - person aosmith; 17.09.2013
comment
Значения по умолчанию для расположения решеток слева направо и снизу вверх. - person IRTFM; 18.09.2013