2016-08-28 80 views
1

我的書「R在行動」 P389例如在下面的格子圖來安排HIST面板以下:Index.cond不晶格重新排列面板

library(lattice) 
graph1 <- histogram(~ height | voice.part, data = singer, 
        main = "Heights of Choral Singers by Voice Part") 
graph2 <- densityplot(~ height, data = singer, group = voice.part, 
         plot.points = FALSE, auto.key = list(columns = 4)) 
plot(graph1, position=c(0, .3, 1, 1)) 
plot(graph2, position=c(0, 0, 1, .3), newpage = FALSE) 

由於從書上指示,我用index.cond更改圖形的順序,像

plot(graph1, position = c(0, .3, 1, 1), 
    index.cond = list(c(2, 4, 6, 8, 1, 3, 5, 7))) 

但在圖中的順序不會改變。任何人都可以幫助我嗎? 我也注意到index.cond是不是在?plot

+1

「index.cond」似乎是'?update.trellis'的參數 - 'update(graph1,posi = c(0,.3,1,1),index.cond = list(c(2,4,6,8,1,3,5,7)))' –

+0

真的很感謝。這完美地解決了我的問題。 –

+0

@alexis_laz:這似乎值得一個「真實」的答案。處理格子面板參數可能會很棘手,我不記得看到在SO或Rhelp上描述過這個解決方案。 –

回答

0

「index.cond」的幫助下,在?xyplot描述的其它參數要麼傳遞到打造「網格」對象的功能或到update方法。所以,在這種情況下,您可以

通過傳遞 「index.cond」 到histogram打造 「graph1」:

histogram(~ height | voice.part, data = singer, 
      main = "Heights of Choral Singers by Voice Part", 
      index.cond = list(c(2, 4, 6, 8, 1, 3, 5, 7))) 

,使用update

update(graph1, index.cond = list(c(2, 4, 6, 8, 1, 3, 5, 7))) 

或使用"["

graph1[c(2, 4, 6, 8, 1, 3, 5, 7)] 
+0

真的非常感謝您的幫助 –