2013-03-05 2 views
2

У меня есть следующая проблема. После запуска упорядоченной модели логита я хочу использовать пакет эффектов R для визуализации результатов. Это отлично работает, и я сделал это для двух независимых переменных, затем я попытался объединить два графика. Однако это не работает. Я обеспечиваю немного воспроизводимый пример здесь, так что вы можете увидеть мою проблему для себя:Объедините два графика, созданные с пакетом эффектов в R

library(car) 
data(Chile) 
mod <- polr(vote ~ age + log(income), data=Chile) 

eff <- effect("log(income)", mod) 
plot1 <- plot(eff, style="stacked",rug=F, key.args=list(space="right")) 

eff2 <- effect("age", mod) 
plot2 <- plot(eff2, style="stacked",rug=F, key.args=list(space="right")) 

Я могу напечатать эти два участка в настоящее время независимо друг от друга, но когда я пытаюсь построить их вместе, первый участок будет перезаписан. Я попытался установить par(mfrow=c(2,1)), что не сработало. Затем я попытался следующие:

print(plot1, position=c(0, .5, 1, 1), more=T) 
print(plot2, position=c(0,0, 1, .5)) 

В этом последнем случае, позиции двух участков просто отлично, но все-таки первый участок исчезает, как только я добавить второй (или лучше, он будет перезаписан). Любые предложения о том, как предотвратить такое поведение, будут оценены.

ответ

4

Чтение вниз длинный список аргументов в ?print.eff мы видим, что есть некоторые аргументы для делать именно это:

plot(eff, style="stacked",rug=F, key.args=list(space="right"), 
    row = 1,col = 1,nrow = 1,ncol = 2,more = TRUE) 
plot(eff2, style="stacked",rug=F, key.args=list(space="right"), 
    row = 1,col = 2,nrow = 1,ncol = 2) 

Причина par() не работает потому, что этот пакет использует решетки графики, которые основаны на сетке , что несовместимо с базовой графикой. Ни par(), ни layout не окажут никакого влияния на графику сетки.

+0

Спасибо большое, отлично теперь работает! – Flow

1

Это похоже на работу:

plot(eff,col=1,row=2,ncol=1,nrow=2,style="stacked",rug=F, 
    key.args=list(space="right"),more=T) 
plot(eff2,col=1,row=1,ncol=1,nrow=2,style="stacked",rug=F, 
    key.args=list(space="right")) 

редактировать: Слишком поздно ...