![4be22f33d0416a068ad2877da5b58c21.png](https://i-blog.csdnimg.cn/blog_migrate/6f3d6eab2624d9f7409b3253800eb2f4.jpeg)
在前面小编带领大家学会了如何使用par()函数把多个图放在一个页面上。lattice函数不能辨别par()函数设置,所以我们需要学习其他的方法使图形绘制在一个单独的图中。
最简单的方法是把lattice图形保存成对象并使用带有split=或position=选项的plot()函数来保存成单个图片。
下面我们来看看split选项。
split选项将一个页面分成指定数量的行和列,并把图放到结果矩阵的特定单元格中。split选项的格式如下:
split=c(x,y,nx,ny)
它表示在包括nx乘ny个图形的正规数组中,把当前图形放在x和y的位置上,并把图形放在左上角。
我们一起来看个例子:
install.packages("lattice")library(lattice)graph1
我们一起来解释一下吧,第一个plot函数将页面分为一列两行(nx=1,ny=2),并把图放置在第一行第一列,第二个plot同理,不过是将图形放在第一列第二行。
plot()函数默认从一个新的页面开始,可以通过newpage=FALSE选项抑制新的页面生成。来看看结果。
![d62d13e6b0f55de8cc1b94455fb68776.png](https://i-blog.csdnimg.cn/blog_migrate/7c9f94eb91a8d5a478b49e3819020350.jpeg)
如果不满意图形的尺寸和位置,可以使用position=选项来设置,来看个例子吧。
graph1
仔细一看,代码里添加了position函数,值得一提的是position=c(xmin,ymin,xmax,ymax),页面的坐标系是x轴和y轴都从0到1的矩阵,原点是(0,0),结果如下图所示。
![fa4b8c4558f80aab5b86a9c2c7b71a2f.png](https://i-blog.csdnimg.cn/blog_migrate/77bb3862260c2a09f89ea4e5d8ad149f.jpeg)
有些人可能觉得这样的图形看着有些死板,我们也可以改变lattice图中面板的顺序。在高水平图像函数中的index.cond选项就能够指定调节变量水平的顺序。
那我们以voice.part因子为例,一起来看一下。
levels(singer$voice.part)
histogram(~height | voice.part,data=singer,
index.cond=list(c(2,4,6,8,1,3,5,7)))
![c2cccd401200f16bae9629651ba1ef2e.png](https://i-blog.csdnimg.cn/blog_migrate/412fa5d0e257042b2b5be821806b98ad.jpeg)
通过index.cond选项就可以将声部1和声部2放在一起,当有两个调节变量时,在列表中就包含两个向量。如果大家还想继续学习关于index.cond选项的详细信息,可以通过help(xyplot)来了解。
今天就到这里啦,大家好好练习哟。关于R的绘图我们就告一段落啦,希望大家能够有所收获,期待我们的再次相遇。