R: Arrange multiple grobs on a page

arrangeGrob {gridExtra} | R Documentation

## Arrange multiple grobs on a page

### Description

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

### Usage

    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, layout_matrix = matrix(seq_len(nrow *
      ncol), nrow = nrow, ncol = ncol), top = quote(paste("page", g, "of",
      npages)))

### 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

    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)

[Package gridExtra version 2.3 Index]