我有5个地块(让我们称它们为p_1
到p_5
).我想将它们全部显示在网格中:其中三个在第一行,剩下两个在第二(也是最后)行.当然,这可以通过par(mfrow = c(2, 3))
来实现.然而,我希望底部的两个地块居中,这样网格右下角就没有一个大空间.如何才能实现这一目标?
我有5个地块(让我们称它们为p_1
到p_5
).我想将它们全部显示在网格中:其中三个在第一行,剩下两个在第二(也是最后)行.当然,这可以通过par(mfrow = c(2, 3))
来实现.然而,我希望底部的两个地块居中,这样网格右下角就没有一个大空间.如何才能实现这一目标?
在R基中,您可以使用layout
,这将创建一个矩阵供您将图形映射到-在这里,您需要2行,每行6个空间,以使事物均匀.matrix(...)
中的数字可以被概念化为地块号(1 =第一个地块,等等,请注意,0 =无地块),它们重复的次数就是它们占据的空间数:
layout(matrix(c(1,1, # first plot (covers top spaces 1-2)
2,2, # second plot (covers top spaces 3-4)
3,3, # third plot (covers top spaces 5-6)
0, # blank (covers bottom space 1 (0 = blank plot)
4,4,# fourth plot (covers bottom spaces 2-3)
5,5, # 5th plot (covers bottom spaces 4-5)
0), # blank (covers bottom space 6)
nrow = 2, byrow = TRUE))
plot(1:5, type = "p")
plot(1:5, type = "l")
plot(1:5, type = "b")
boxplot(runif(100))
hist(1:100)
数字翻倍的原因是因为你需要在行上留出偶数个"空间"-在这里,每一行有6个"空间"-
这允许您在底部分割"额外"空间,并将其放置在每个尺寸上(0表示没有绘图).
通过地块编号来看待它可能更有意义:
(1)显示所有12个空间(6x 2):
(2)五个地块布局,每个地块占用2个空间:
如果您在其中添加两个额外的图(总共7个)来查看它们的go 向(并看到那些只有一个数字的空间中的每个图只有一半大小),那么可视化可能会更容易:
layout(matrix(c(1,1, # first plot
2,2, # second plot
3,3, # third plot
6, # 6th plot
4,4,# fourth plot
5,5, # 5th plot
7), # 7th plot)
nrow = 2, byrow = TRUE))
plot(1:5, type = "p")
plot(1:5, type = "l")
plot(1:5, type = "b")
boxplot(runif(100))
hist(1:100)
boxplot(runif(100), col = "red")
boxplot(runif(100), col = "blue")