在图的子集之间添加额外的间距

chr*_*ler 11 graphics plot r spacing

我试图以3x2布局将6个数字输出到一个图像中.我想在顶行和底行两行之间留出额外的空间.这可能使用R吗?我查看了par和plot的文档,似乎无法找到合适的选项.

这是一些示例代码:

a = rnorm(100,100,10)
b = rnorm(100,100,10)

par(mfrow=c(3,2), oma=c(1,1,1,1), mar=c(2,2,2,2))
hist(a)
hist(b)
plot(a,b)
plot(a,b)
plot(a,b)
plot(a,b)
Run Code Online (Sandbox Code Playgroud)

这是代码输出的内容:


替代文字


这是我想要输出的内容(我在外部编辑器中修改了这个图像).请注意顶行和底行之间的额外空间.


替代文字


Dir*_*tel 9

这个layout()功能是你的朋友.例如,您可以定义绘图矩阵

1 2
3 4
5 6
7 8
Run Code Online (Sandbox Code Playgroud)

然后把空图放入第三和第四.或者只是坚持到6并呼叫par在底部添加额外的间距.

  • 是的,布局很精彩而且很有用.这些天孩子们只谈ggplot2,所以它往往会被遗忘:)很好的抓住0零点省略图,你有完全正确的宽度和高度. (2认同)

nic*_*ico 8

我可以想到三种方式:

1)使用mar图形参数设置绘图边距

您可以使用检索当前边距

currmar <- par()$mar
Run Code Online (Sandbox Code Playgroud)

您可以使用设置新的边距

par("mar"=c(5, 4, 4, 2))
Run Code Online (Sandbox Code Playgroud)

数字为底部,左侧,顶部和右侧边距(请参阅?par)

您可以par为每个绘图进行多次调用,因此您只能为顶部绘图更改底部边距.

2)使用布局生成不均匀的布局网格(参见?layout示例)

3)将图表保存在.svg或.pdf中,然后使用Inkscape(或任何您喜欢的软件)移动图表.