使用lattice进行数据可视化-- 面板函数

使用lattice进行高级绘图-- 面板函数

每一个高水平的画图函数都采用了默认的函数来绘制面板图。默认函数遵循命名规则panel.graph_function,其中graph_function指的是高水平的函数。例如

xyplot(mpg~wt|displacement, data=mtcars)

也可以写成:

xyplot(mpg~wt|displacement, data=mtcars, panel=panel.xyplot)

这是一个强大的功能,因为它可以让我们用自己设计的默认函数来代替默认的面板函数。前面,我们画出了以汽车发动机排量为条件的汽车重量的油耗。如果你想加上回归线、地毯图和网格线,需要做什么呢? 我们可以通过创建自己的面板函数来实现它代码如下:

1)自定义面板函数xyplot

library(lattice)

displacement <- equal.count(mtcars$disp, number=3, overlap=0)

#将四个独立的构件函数集成到自己的mypanel()函数中

mypanel <- function(x, y) {

 panel.xyplot(x, y, pch=19)   

 panel.rug(x, y)   

 panel.grid(h=-1, v=-1)   #panel.grid()函数添加水平和垂直的网格线(使用负数迫使其用轴标签排队)。

 panel.lmline(x, y, col="red", lwd=1, lty=2)   

 }

xyplot(mpg~wt|displacement, data=mtcars,

 layout=c(3, 1),

 aspect=1.5,

 main = "Miles per Gallon vs. Weight by Engine Displacement",

 xlab = "Weight",

 ylab = "Miles per Gallon",

 panel = mypanel)   #自定义面板函数,通过xyplot()函数中的panel=option选项使它生效

 

结果分析:panel.xyplot()函数使用一个填充的圆(pch=19)产生散点图,也就是实心圆,panel.grid()函数添加水平和垂直的网格线(使用负数迫使其用轴标签排队),如图中的灰色网格线,panel.rug()函数把地毯图加到x轴和y轴的每个标签上,如图中的青绿色和蓝色短线条。panel.rug(x, FALSE)panel.rug(FALSE, y)将分别把地毯加到横轴和纵轴。panel.lmline()函数添加了被渲染成红色(col="red")、标准厚度(lwd=2)的虚线(lty=2)回归曲线。

posted @ 2021-08-17 21:37  zhang-X  阅读(530)  评论(0)    收藏  举报