将多个数字合二为一

时间:2016-05-17 10:08:49

标签: r plot

我想将2个饼图和3个盒子图组合成一个图。我想在顶部有2个饼图,在底部有3个框图。当我使用par(mfrow=c(2,3))时,我在第一行得到2个饼图和一个箱图。

2 个答案:

答案 0 :(得分:2)

您可以使用布局

喜欢

layout(matrix(c(1,1,1,2,2,2,3,3,4,4,5,5), nrow = 2, ncol = 6, byrow = TRUE))
plot(1,main=1,ylab="A")
plot(2,main=2,ylab="B")
plot(3,main=3,ylab="C")
plot(4,main=4,ylab="D")
plot(5,main=5,ylab="E")

enter image description here

注意

在这里你需要创建不同大小的图,你需要在最小的部分划分你的布局矩阵(这里是图的1/6)

你需要这样的矩阵(不同的数字 - 不同的地块)

     [,1] [,2] [,3] [,4] [,5] [,6]
[1,]    1    1    1    2    2    2
[2,]    3    3    4    4    5    5

matrix(c(1,1,1,2,2,2,3,3,4,4,5,5), nrow = 2, ncol = 6, byrow = TRUE)

答案 1 :(得分:0)

您可以使用R中的grid概念将多个图形绘制成一行或行和列,请查看以下内容以供参考:

plot(1:3)
grid(NA, 5, lwd = 2) # grid only in y-direction

## maybe change the desired number of tick marks:  par(lab = c(mx, my, 7))
op <- par(mfcol = 1:2)
with(iris,
     {
     plot(Sepal.Length, Sepal.Width, col = as.integer(Species),
          xlim = c(4, 8), ylim = c(2, 4.5), panel.first = grid(),
          main = "with(iris,  plot(...., panel.first = grid(), ..) )")
     plot(Sepal.Length, Sepal.Width, col = as.integer(Species),
          panel.first = grid(3, lty = 1, lwd = 2),
          main = "... panel.first = grid(3, lty = 1, lwd = 2), ..")
     }
    )
par(op)

MULTIPLE-FIGURES-IN-ONE-ROW