Join Multiple Plots in R

Join Multiple Plots in R, Data visualization is a crucial aspect of data analysis and interpretation.

In the R programming language, ggplot2 is one of the most common data visualization libraries, offering a wide range of customizable graphs and charts.

When working with ggplot2, there may be instances where you need to display multiple plots on the same page.

This article demonstrates how to use the multiplot() function from the scater package to achieve this.

The multiplot() Function

The multiplot() function allows you to display multiple ggplot2 plots on the same page. It uses a basic syntax:

multiplot(p1, p2, p3, col=1, …)

Here, p1, p2, and p3 represent the names of various plots created using ggplot2, and col denotes the number of columns to use when displaying the plots. If you leave out the col argument, the function will use one column to display each of the charts in a vertical format.

How to read a stock chart pattern Chart Reading Technique

Example: Using multiplot() to Display Multiple Scatterplots

To illustrate the usage of multiplot(), let’s consider an example where we want to create multiple scatterplots using the built-in mtcars dataset in R and display each plot on the same page.

First, we need to load the necessary packages:


Next, we create two scatterplots:

# First Scatterplot
p1 <- ggplot(mtcars, aes(x=disp, y=qsec)) +
   geom_point() +
   ggtitle("disp vs. qsec")

# Second Scatterplot
p2 <- ggplot(mtcars, aes(x=disp, y=mpg)) +
   geom_point() +
   ggtitle("disp vs. mpg")

We can then display both plots on the same page using two columns:

multiplot(p1, p2, cols=2)

This will produce a result with the plots displayed side-by-side in two columns.

Alternatively, if we leave out the col argument, the plots will be displayed in a vertical format in one column:

multiplot(p1, p2)

Manually Defining the multiplot() Function

In case the multiplot() function is not working or if you’re unable to load the scater package, you can manually define the multiplot() function as follows:

multiplot <- function(..., plotlist=NULL, file=NULL, cols=1, layout=NULL) {
  plots <- c(list(...), plotlist)
  numPlots <- length(plots)
  if (is.null(layout)) {
    layout <- matrix(seq(1, cols * ceiling(numPlots/cols)),
                     ncol = cols, nrow = ceiling(numPlots/cols))
  if (numPlots == 1) {
  } else {
    pushViewport(viewport(layout = grid.layout(nrow(layout), ncol(layout))))
    for (i in 1:numPlots) {
      matchidx <- which(layout == i, arr.ind = TRUE)
      print(plots[[i]], vp = viewport(layout.pos.row = matchidx[1],
                                      layout.pos.col = matchidx[2]))
multiplot(p1, p2)

You can then skip loading the scater package and directly use the multiplot() function to plot multiple ggplot2 plots on the same page.


The multiplot() function from the scater package is a convenient tool for displaying multiple ggplot2 plots on the same page in R.

By understanding its basic syntax and incorporating it into your workflow, you can efficiently visualize and compare various plots side-by-side, streamlining your data analysis process.

If needed, you can also manually define the multiplot() function to overcome any potential issues with loading the scater package or using the function directly.

glm function in r-Generalized Linear Models » Data Science Tutorials

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *

12 + 18 =