Граничит с группами участков - PullRequest
8 голосов
/ 28 сентября 2011

У меня есть 16 графиков на странице, расположенных в сетке 4х4. Я хотел бы иметь рамку вокруг каждого набора 2х2, но не могу понять, как это сделать.

Первоначально я использовал layout(matrix(c(1,2,5,6,3,4,7,8,9,10,13,14,11,12,15,16), 4, 4, byrow=TRUE)) для создания правильного макета, но, насколько мне известно, нет способа создать поля, которые выходят за пределы как текущего графика, так и любого последующего графика, на котором поле будет перекрываться.

Второй подход, который я попробовал, состоял в том, чтобы использовать split.screen(), полагая, что любые настройки oma() будут применяться только к текущему экрану, однако, похоже, что это применимо ко всему окну; например, следующий код создает границу за пределами всей области отображения, а не screen(1):

depths <- c(1:10)
split.screen(c(2,2))
screen(1)
par(oma=c(1,1,1,1))
plot(depths)
box("inner", lty="dotted", col="green")

Попытка различных вещей с помощью box("inner") или box("outer") после установки oma настроек не приводит к желаемому результату.

Есть ли другие очевидные подходы, которые я должен попробовать?

Спасибо
Chris

Ответы [ 2 ]

8 голосов
/ 28 сентября 2011

Попробуйте использовать box("figure"):

depths <- c(1:10)
split.screen(c(2,2))
screen(1)
box("figure")
split.screen(c(2,2))
par(cex=0.5)
screen(5)
plot(depths)
6 голосов
/ 28 сентября 2011

Вот способ использования макета:

layout(matrix(c(1,2,5,6,3,4,7,8,9,10,13,14,11,12,15,16), 4, 4, byrow=TRUE))
replicate(16, hist(rnorm(100)))
par(xpd=NA)
rect( grconvertX(0.005, from='ndc'), grconvertY(0.505, from='ndc'),
     grconvertX(0.495, from='ndc'), grconvertY(0.995, from='ndc'))
rect( grconvertX(0.005, from='ndc'), grconvertY(0.005, from='ndc'),
     grconvertX(0.495, from='ndc'), grconvertY(0.495, from='ndc'))
rect( grconvertX(0.505, from='ndc'), grconvertY(0.505, from='ndc'),
     grconvertX(0.995, from='ndc'), grconvertY(0.995, from='ndc'))
rect( grconvertX(0.505, from='ndc'), grconvertY(0.005, from='ndc'),
     grconvertX(0.995, from='ndc'), grconvertY(0.495, from='ndc'))

Настройте его в соответствии со своими предпочтениями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...