|
函数split.screen分割当前的绘图设备,例如:
> split.screen(c(1, 2))
划分设备为两部分,可以用screen(1)或者screen(2)选择;erase.screen()
删除最后绘制的图形。设备的一部分也可以被split.screen() 划分,可以作
出复杂的布局。
这些函数和其他的函数是不兼容的(比如layout()或者coplot()),不
可以用于多个绘图设备。它们的使用应局限于象图形式探索性数据分析这样
的问题。
函数layout把当前的图形窗口分割为多个部份,图形将一次显示在各
部分中。它主要的自变量是一个元素都是整数值的矩阵,元素指示子窗口
(\sub-windows")的编号。例如,把设备划分为4个相等的部分:
> layout(matrix(1:4, 2, 2))
当然也可以先产生这个矩阵,以更好的显现设备是如何划分的:
> mat <- matrix(1:4, 2, 2)
> mat
[,1] [,2]
[1,] 1 3
[2,] 2 4
> layout(mat)
为了看到创建的分割,我们可以使用函数layout.show,其自变量是子窗
口的个数(这里是4)。在这个例子中,我们有:
> layout.show(4)
在下面的例子里,我们将看到layout()提供的各种可能性:
> layout(matrix(1:6, 3, 2))
> layout.show(6)
> layout(matrix(1:6, 2, 3))
> layout.show(6)
> m <- matrix(c(1:3, 3), 2, 2)
> layout(m)
> layout.show(3)
在以上各个例子中,我们没有用matrix()的选项byrow,子窗口按列编
号;我们可以指定matrix(..., byrow=TRUE),则窗口将按行编号。在矩阵
中的编号可以用任何次序,例如matrix(c(2, 1, 4, 3), 2,2)。
缺省情况下,layout()用等间隔分配子窗口:可以用选项widths 和
heights修改分割的宽和高。这些尺寸是相对给定的(也可以用厘米,详
见?layout),例如:
> m <- matrix(1:4, 2, 2)
> layout(m, widths=c(1, 3),
heights=c(3, 1))
> layout.show(4)
> m <- matrix(c(1,1,2,1),2,2)
> layout(m, widths=c(2, 1),
heights=c(1, 2))
> layout.show(2)
最后,矩阵里面的编号可以包括0,使得复杂的(甚至怪异的)分割成为
可能。
> m <- matrix(0:3, 2, 2)
> layout(m, c(1, 3), c(1, 3))
> layout.show(3)
> m <- matrix(scan(), 5, 5)
1: 0 0 3 3 3 1 1 3 3 3
11: 0 0 3 3 3 0 2 2 0 5
21: 4 2 2 0 5
26:
Read 25 items
> layout(m)
> layout.show(5)
|
|