如何将一般网格添加到格子xy.plot

时间:2012-03-14 10:07:07

标签: r lattice

This问题解释了如何在特定时间添加网格 格点的点(即等价的 两个abline()用于正常情节)。我的问题是什么时候 我尝试添加一个常规网格(相当于对grid()的调用 对于正常的情节)......情节的内容......消失了。这是一个例子:

B<-cbind(rnorm(100),rnorm(100), floor(runif(100,1,7)), floor(runif(100,1,3)), 
           floor(runif(100,1,4)))
colnames(B)<-c("yval","xval","gval","p","cr")
B<-as.data.frame(B)
xyplot(B$yval~B$xval|B$p*B$cr,group=B$gval,main="Scatterplots by Cylinders and Gears", 
           ylab="Miles per Gallon", xlab="Car Weight",type="l",lwd=5,
           panel=function(x,y){panel.grid()})

如果删除最后一个选项(即panel = function(x,y){panel.grid()}),那么我会看到数据行,但不会看到grid()。有没有办法让同时网格和数据线

提前感谢,

1 个答案:

答案 0 :(得分:5)

试试这个:

xyplot(yval ~ xval | p*cr, data=B, group=gval, type=c("l","g"), lwd=5, 
       main="Scatterplots by Cylinders and Gears",
       ylab="Miles per Gallon", xlab="Car Weight")

我已经简化了一些语法,因为如果你使用data=参数,你可以使用data.frame中的变量名。关键是使用type=c("l","g"),这意味着行+网格,并且等同于看起来像

的面板函数
panel=function(...) {
  panel.xyplot(...)
  panel.grid()
}

在您的情况下,这是因为您忘记添加panel.xyplot()没有绘制点或线。 如果您需要不同的网格,可以使用上面的代码并自定义对panel.grid()的调用。