2013-02-07 35 views
2

假設您有一個數據集具有一個因變量的多個因變量。使用xyplot,您可以簡單地將它們繪製爲xyplot(y1+y2~x, data=d)。您將如何繪製一個繪圖類型(例如點)的y1,以及具有不同繪圖類型(例如線)的y2如何控制格子xyplot中多個因變量的每一個的繪圖類型?

重複的例子:

my.df <- data.frame(time=c(1:20), lower.lim=runif(n=20, min=1,max=4), 
        upper.lim=runif(n=20, min=6,max=9), 
        observed=runif(n=20,min=0,max=10)) 

xyplot(lower.lim + upper.lim + observed ~ time, data=my.df, type=c("p","l")) 

情節lower.limupper.limtype="s",並observed作爲type=c("p","l")

我想這應該是可行的自定義功能panel,但我想不出如何分別對每個因變量進行操作。

回答

4

您可以在panel.superpose內使用panel.groups以及group.number參數來檢測當前正在繪製哪個變量。

panelfun <- function(...,type,group.number) { 
    if (group.number==3) { 
     panel.points(...) 
     panel.lines(...) 
    } else { 
     panel.points(...,type="s") 
    } 
} 

xyplot(lower.lim+upper.lim+observed ~ time, data=my.df, 
    panel=function(...) panel.superpose(...,panel.groups=panelfun), 
     col=c(1,1,2)) 
相關問題