在R中以2-1布局绘制3个图形

use*_*517 5 plot r

是否有可能在R中的单个图中获得3个图,其分布如下图所示?图表必须具有相同的宽度,图表C应居中.

-----   -----
| A |   | B |
-----   -----
    -----
    | C |
    -----
Run Code Online (Sandbox Code Playgroud)

谢谢!

jlh*_*ard 6

是的,有了这个layout(...)功能.

layout(matrix(c(1,2,3,3), 2, 2, byrow = TRUE))
hist(mtcars$wt)
hist(mtcars$mpg)
hist(mtcars$disp)
Run Code Online (Sandbox Code Playgroud)

因此layout(...)需要一个矩阵,其中每个元素对应一个图号.在这种情况下,[1,1]对应于第一个图,[1,2]对应于第二个图,[2,1:2]对应于第三个图.

这个例子是从这里稍作修改的.

如果您希望底部图与上面两个图的"宽度"相同,则可以调整该图的边距.

par(mar=c(4,4,2,2))
layout(matrix(c(1,2,3,3), 2, 2, byrow = TRUE))
hist(mtcars$wt)
hist(mtcars$mpg)
par(mar=c(2,14,2,14))
hist(mtcars$disp)
Run Code Online (Sandbox Code Playgroud)