4be22f33d0416a068ad2877da5b58c21.png

在前面小编带领大家学会了如何使用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

如果不满意图形的尺寸和位置,可以使用position=选项来设置,来看个例子吧。

graph1

仔细一看,代码里添加了position函数,值得一提的是position=c(xmin,ymin,xmax,ymax),页面的坐标系是x轴和y轴都从0到1的矩阵,原点是(0,0),结果如下图所示。

fa4b8c4558f80aab5b86a9c2c7b71a2f.png

有些人可能觉得这样的图形看着有些死板,我们也可以改变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

通过index.cond选项就可以将声部1和声部2放在一起,当有两个调节变量时,在列表中就包含两个向量。如果大家还想继续学习关于index.cond选项的详细信息,可以通过help(xyplot)来了解。

今天就到这里啦,大家好好练习哟。关于R的绘图我们就告一段落啦,希望大家能够有所收获,期待我们的再次相遇。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐