在基础 R 中排列奇数个图

问题描述 投票:0回答:2

我有 5 个地块(我们称它们为

p_1
p_5
)。我想将它们全部显示在一个网格中:其中三个位于第一行,两个位于第二行(也是最后一行)。当然,这可以通过
par(mfrow = c(2, 3))
来实现。但是,我希望底部的两个图居中,因此网格的右下角没有一大块空间。如何才能实现这一目标?

r plot
2个回答
0
投票

您可以使用 R 中的 layout 函数 您必须定义布局矩阵,并在不应该显示绘图的地方使用零,您的矩阵是顶部 3 和底部 2。该函数将根据矩阵中指定的索引排列绘图。

layout(matrix(c(1,2,3,0,4,5), nrow = 2, byrow = TRUE))

然后创建绘图,它们将填充布局矩阵中的下一个点

plot(1:10, rnorm(10), main = "p_1")
plot(1:10, rnorm(10), main = "p_2")
plot(1:10, rnorm(10), main = "p_3")
plot(1:10, rnorm(10), main = "p_4")
plot(1:10, rnorm(10), main = "p_5")

0
投票

您可以使用

layout

layout(matrix(c(1,1,2,2,3,3,
                0,4,4,5,5,0), 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)

© www.soinside.com 2019 - 2024. All rights reserved.