假设您有一个数据集,其中包含一个因变量的多个因变量。使用xyplot
,您可以将它们简单地绘制为xyplot(y1+y2~x, data=d)
。你如何用一种情节类型(例如点数)绘制y1
,用不同的情节类型(例如线条)绘制y2
?
可重现的例子:
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.lim
和upper.lim
绘制为type="s"
,将observed
绘制为type=c("p","l")
我认为这应该适用于自定义panel
函数,但我无法弄清楚如何分别对每个因变量进行操作。
答案 0 :(得分:4)
您可以在panel.groups
中使用panel.superpose
以及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))