问题描述
我希望在点阵中制作一个单面板图,显示来自多个组 (g) 的数据 (y),并带有显示预测值 (y_pred) 的叠加线。我在下面生成示例数据:
d <- data.frame(x = rep(1:100,2),g = factor(rep(c('a','b'),each = 100)))
d$y_pred <- -0.1*x + 0.001*x^2
d$y_pred <- with(d,ifelse(g=='a',y_pred+2,y_pred))
d$y <- d$y_pred + rnorm(nrow(d),1)
使用 'type=c('p','l'),distribute.type=TRUE 不起作用,我也没有尝试制作面板:
xyplot(y + y_pred ~ x,data = d,groups = g,panel = panel.superpose,panel.groups=function(...){
panel.xyplot(x,y,type='p')
panel.xyplot(x,y_pred,type='l')
}
)
我应该在这里做什么?
解决方法
好的,你可以用latticeExtra来做到这一点
dat <- xyplot(y ~ x,data=d,groups = g,type="p"
)
dat
dat + layer(panel.xyplot(x=x,y=y_pred,type="l",subscripts=TRUE),data=d)
但这真的很挑剔而且不够健壮。如果“dat + layer()”代码是我在启动程序后运行的第一件事,它会正确呈现,但之后它会经常呈现不同组的几行缺失。