2016-05-17 3 views
1

Я хотел бы объединить 2 круговых диаграммы и 3 квадрата в одну фигуру. Я хочу, чтобы 2 круговые диаграммы в верхней и 3 ящиках в нижней части. Я получаю 2 круговых диаграммы и один квадрат в первом ряду, когда использовал par(mfrow=c(2,3)).объединить несколько фигур в один

ответ

1

Вы можете использовать макет

как

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 участка)

Вам нужна такая матрица (где различные number- различные участки)

 [,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)

+0

хмм .. что вы имеете в виду? можете ли вы объяснить немного больше? – Batanichek

+0

Я хотел бы обозначить первый сюжет как «A», второй сюжет как «B» и третий сюжет как «C» и т. Д. – munna

+0

Название сюжета (отредактируйте 'main =' of plot)? или что-то другое? – Batanichek

0

Вы можете использовать grid концепцию R построить несколько фигуру в одну строку или строки и столбцы, пожалуйста, проверьте следующее для справки:

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

Смежные вопросы