R语言layout()函数绘图指定复杂的图形布局
Posted Z.Q.Feng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言layout()函数绘图指定复杂的图形布局相关的知识,希望对你有一定的参考价值。
描述
layout() 函数将一张图片划分为矩阵中的尽可能多的行和列,列宽和行高在各自的参数中指定。
用法
layout(mat, widths = rep.int(1, ncol(mat)),
heights = rep.int(1, nrow(mat)))
layout.show(n = 1)
lcm(x)
参数及其含义
mat
参数 | 含义 |
---|---|
mat | 一个矩阵对象,指定输出设备上下N个图形的位置。矩阵中的每个值必须为0或正整数。如果N是矩阵中最大的正整数,则整数1,…,N-1也必须在矩阵中至少出现一次。 |
举例:
一个这样的矩阵会被按照相同的元素划为3个区域:
根据上述矩阵画出 layout 布局如下:
nf <- layout(matrix(c(1,1,2,
1,1,2,
3,3,3),3,3,byrow = TRUE))
layout.show(nf)
widths、heights
参数 | 含义 |
---|---|
widths | 设备上列宽度的值向量。相对宽度由数值指定。绝对宽度(以厘米为单位)由 lcm() 函数指定(参见示例)。 |
heights | 设备上行高度的值向量。可以指定相对高度和绝对高度,请参见上面的宽度。 |
当使用相对宽度\\高度时,weights 和 heights 传入的时一组向量,分别是第 1,2,...n
列的宽度(高度)比,以下述代码为例:
nf <- layout(matrix(c(1,1,2,1,1,2,3,3,3),3,3,byrow = TRUE),
c(2, 2, 5), # 第1,2,3列宽度比为2:2:5
c(3, 3, 4)) # 第1,2,3行高度比为3:3:4
layout.show(nf)
下图中,因为区域1占据了前两列,总宽比为 2 + 2 = 4
,所以区域1的宽度 :区域2的宽度 = 4 :5
,区域1占据了前两行,总高比为 3 + 3 = 6
,所以区域1的高度 :区域3的高度 = 6 :4
同理,使用绝对宽度\\高度时,也传入一组向量,对应的分别是第 1,2,...n
列的宽度\\高度(cm),以下述代码为例:
nf <- layout(matrix(c(1,1,2,1,1,2,3,3,3),3,3,byrow = TRUE),
c(lcm(5), lcm(4), lcm(3)), # 第1,2,3列宽度分别为5cm,4cm,3cm
c(lcm(3), lcm(3), lcm(5))) # 第1,2,3行高度分别为3cm,3cm,5cm
layout.show(nf)
n, x
参数 | 含义 |
---|---|
n | 要绘制的图形数(只绘制图形的前n部分) |
x | 解释为厘米数的尺寸 |
例子
attach(mtcars)
layout(matrix(c(1,1,2,3), 2, 2, byrow = TRUE),
widths = c(3, 2), # 第1,2列宽度比为3:2
heights = c(2, 3)) # 第1,2行高度比为2:3
hist(wt)
hist(mpg)
hist(disp)
detach(mtcars)
绘制效果如下:
以上是关于R语言layout()函数绘图指定复杂的图形布局的主要内容,如果未能解决你的问题,请参考以下文章