R/multiplot.R

 
#' Create multiplot ggplot2 
#'
#' This function ....
#' @param plots and rest
#' @keywords ggplot
#' @export
#' @examples
#' # not run


multiplot <- function(..., plotlist=NULL, file, cols=1, layout=NULL) {
			require(grid)

			# Make a list from the ... arguments and plotlist
			plots <- c(list(...), plotlist)

			numPlots = length(plots)

			# If layout is NULL, then use 'cols' to determine layout
			if (is.null(layout)) {
			# Make the panel
			# ncol: Number of columns of plots
			# nrow: Number of rows needed, calculated from # of cols
			layout <- matrix(seq(1, cols * ceiling(numPlots/cols)),
			ncol = cols, nrow = ceiling(numPlots/cols))
			}

			if (numPlots==1) {
			print(plots[[1]])

			} else {
			# Set up the page
			grid.newpage()
			pushViewport(viewport(layout = grid.layout(nrow(layout), ncol(layout))))

			# Make each plot, in the correct location
			for (i in 1:numPlots) {
			# Get the i,j matrix positions of the regions that contain this subplot
			matchidx <- as.data.frame(which(layout == i, arr.ind = TRUE))

			print(plots[[i]], vp = viewport(layout.pos.row = matchidx$row,
			layout.pos.col = matchidx$col))
			}}}
zoevanhavre/Zmix_devVersion2 documentation built on May 4, 2019, 11:25 p.m.