Arrange multiple grobs on a page

Description

Set up a gtable layout to place multiple grobs on a page.

Usage

1
2
3
4
5
6
7
8
9
arrangeGrob(..., grobs = list(...), layout_matrix, vp = NULL,
  name = "arrange", as.table = TRUE, respect = FALSE, clip = "off",
  nrow = NULL, ncol = NULL, widths = NULL, heights = NULL, top = NULL,
  bottom = NULL, left = NULL, right = NULL, padding = unit(0.5, "line"))

grid.arrange(..., newpage = TRUE)

marrangeGrob(grobs, ncol, nrow, ..., top = quote(paste("page", g, "of",
  pages)))

Arguments

...

grobs, gtables, ggplot or trellis objects

grobs

list of grobs

layout_matrix

optional layout

vp

viewport

name

argument of gtable

as.table

logical: bottom-left to top-right (TRUE) or top-left to bottom-right (FALSE)

respect

argument of gtable

clip

argument of gtable

nrow

argument of gtable

ncol

argument of gtable

widths

argument of gtable

heights

argument of gtable

top

optional string, or grob

bottom

optional string, or grob

left

optional string, or grob

right

optional string, or grob

padding

unit of length one, margin around annotations

newpage

open a new page

Details

Using marrangeGrob, if the layout specifies both nrow and ncol, the list of grobs can be split into multiple pages. On interactive devices print opens new windows, whilst non-interactive devices such as pdf call grid.newpage() between the drawings.

Value

arrangeGrob returns a gtable.

marrangeGrob returns a list of class arrangelist

Functions

  • arrangeGrob: return a grob without drawing

  • grid.arrange: draw on the current device

  • marrangeGrob: interface to arrangeGrob that can dispatch on multiple pages

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
library(grid)
grid.arrange(rectGrob(), rectGrob())
## Not run: 
library(ggplot2)
pl <- lapply(1:11, function(.x) qplot(1:10, rnorm(10), main=paste("plot", .x)))
ml <- marrangeGrob(pl, nrow=2, ncol=2)
## non-interactive use, multipage pdf
ggsave("multipage.pdf", ml)
## interactive use; open new devices
ml

## End(Not run)