在一个图的子集之间添加额外间距
我试图在一个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)
下面是该代码的输出:
这里就是我想要它像输出(我修改了这个形象e在外部编辑器中)。请注意顶行和底行之间的额外空间。
layout()
功能是你的朋友。你可以例如定义一个阴谋矩阵
1 2
3 4
5 6
7 8
然后为第三个和第四个放置空白图。或者只是坚持六,并致电par
在底部添加额外的空间。
我能想到的方式有三种:
1)使用mar
图形参数来设置情节保证金
您可以检索当前的利润率与
currmar <- par()$mar
您可以
par("mar"=c(5, 4, 4, 2))
与设置新的页边距数字是底部,左,上,右页边距(见?par
)
您可以多次调用par
每个情节,这样你就可以只更改顶部图的底部边距。
2)使用布局产生不均匀布局网格(见?layout
的例子)
3)除.SVG或.pdf格式的情节,然后使用Inkscape中(或任何软件,你喜欢)移动的地块。
我认为去mar
是我会这样做的。然而,就像它看起来,你想要所有的地块都是一样的。因此,您需要在每一个顶部和底部的图上都有相同的金额。
在你的情况下,人们可以使用下列号码:
1行:par(mar=c(7,4,4,2))
2行:par(mar=c(5,4,6,2))
3。行:par(mar=c(7,4,4,2))
这样所有的地块占据相同的高度。修改第一个和第三个数字,使它们对于每个情节都是相同的,以实现这一点。 但是,请注意:最下面的一排地块下方有一些额外的白色空间。
不错。我已经使用layout()编写了我的解决方案,但是这也会起作用。谢谢。 – chrisamiller 2010-09-03 21:37:20
谢谢 - layout()对我来说是新的。像这样的东西似乎做我想要的:a = layout(矩阵(c(1,2,0,0,3,4,5,6),4,2,byrow = TRUE),widths = c(1, 1),高度= c(4,1,4,4)) – chrisamiller 2010-09-03 19:46:13
是的,布局是美好的,而且非常有用。现在的孩子们谈论的只是ggplot2,所以它往往会被遗忘:)良好的捕获重零0来省略重复,而且你的宽度和高度恰到好处。 – 2010-09-03 19:59:00