备注:学习备忘
在R中使用函数par()或layout()可以容易地组合多幅图形为一幅总括图形。
你可以在par()函数中使用图形参数mfrow=c(nrows, ncols)来创建按行填充的、行数为
nrows、列数为ncols的图形矩阵。另外,可以使用nfcol=c(nrows, ncols)按列填充矩阵。
> attach(mtcars) > opar<-par(no.readonly=T) > par(mfrow=c(2,2)) > plot(wt,mpg,main="Main Title") > plot(wt,disp,main="Main Tile1") > hist(wt,main="main tile2") > boxplot(wt,main="main title3") > par(opar) > detach(mtcars)
函数layout()的调用形式为layout(mat),其中的mat是一个矩阵,它指定了所要组合的
多个图形的所在位置。在以下代码中,一幅图被置于第1行,另两幅图则被置于第2行:
attach(mtcars) layout(matrix(c(1,1,2,3),2,2,byrow=T)) hist(wt) hist(mpg) hist(disp) detach(mtcars)
精确地控制每幅图形的大小,可以有选择地在layout()函数中使用widths=和
heights=两个参数。其形式为:
widths = 各列宽度值组成的一个向量
heights = 各行高度值组成的一个向量
相对宽度可以直接通过数值指定,绝对宽度(以厘米为单位)可以通过函数lcm()来指定。
detach(mtcars) > attach(mtcars) > layout(matrix(c(1,1,2,3)2,2,byrow=T),widths=c(3,1),heights=c(1,2)) 错误: 意外的数值量在"layout(matrix(c(1,1,2,3)2"里 > layout(matrix(c(1,1,2,3),2,2,byrow=T),widths=c(3,1),heights=c(1,2)) > hist(wt) 错误于plot.new() : 图版边太大 > par(mfrow=c(1,1)) > layout(matrix(c(1,1,2,3),2,2,byrow=T),widths=c(3,1),heights=c(1,2)) > hist(wt) 错误于plot.new() : 图版边太大 > layout(matrix(c(1,1,2,3),2,2,byrow=T),widths=c(3,1),heights=c(1,2)) > hist(wt) 错误于plot.new() : 图版边太大 > par(mar=c(5,4,4,2)+0.1) > layout(matrix(c(1,1,2,3),2,2,byrow=T),widths=c(3,1),heights=c(1,2)) > hist(wt) 错误于plot.new() : 图版边太大 > hist(wt) 错误于plot.new() : 图版边太大 > par(mar=c(5,4,4,2)+0.1) > hist(wt) 错误于plot.new() : 图版边太大 > par(mar=c(2,2,2,2)+0.1) > hist(wt) > hist(mpg) > hist(disp) > detach()