Arrange multiple grobs on a page
arrangeGrob.Rd
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.
Functions
arrangeGrob
: return a grob without drawinggrid.arrange
: draw on the current devicemarrangeGrob
: interface to arrangeGrob that can dispatch on multiple pages
Examples
library(grid)
grid.arrange(rectGrob(), rectGrob())
if (FALSE) {
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
}