1.library("lattice")#加载包。
d<-data.frame(x=seq(0,14),y=seq(1,15),z=rep(c("a","b","c"),times=5))
xyplot(y~x,data=d)#xy的散点图
xyplot(y~x|z,data=d,pch=c(1,3,4))#如果z 有明确的类别的名字,则显示类别名字,如果没有确的那么显示组别都是z。
xyplot(y~x,groups=z,data=d,pch=c(1,3,4))
注意上面两张图分组的异同之处。加上“|”的才是按照面板进行分组。
来一个稍微复杂点的图形。
p<-equal.count(mtcars$disp,number=3,overlap=0)#这个函数是把disp进行分组,分成三类,并且每类都不重叠overlap=0
myp<-function(x,y){
panel.xyplot(x,y,pch=19)
panel.rug(x,y)
panel.grid(h=-1,v=-1)
panel.lmline(x,y,col="red",lwd=1,lty=2)
}#如果红颜色的不写就不会出现xy点的形状。
xyplot(mpg~wt|p,data=mtcars,
main="miles per gallon vs weight by engine",
xlab="weight",ylab="miles per gallon",
layout=c(3,1),panel=myp)
#xyplot函数前面写了以wt 为x轴,以mpg 为y轴,以p为分组对象。
但如果后面的panel=myp的表达式中
myp表示的函数里没有panel.xyplot(x,y,pch=19会是怎么样子呢?即:
myp<-function(x,y){
panel.rug(x,y)
panel.grid(h=-1,v=-1)
panel.lmline(x,y,col="red",lwd=1,lty=2)
}
由此可见,自定义函数中的xyplot必不可少。不能因为前面写了xyplot 后面的panel=myp()中的xyplot 函数就不写。