HomeTutorialsR Programming

# Combining Plots

Learn how to combining multiple plots in R into one graph with either the par() or layout() functions. This page includes coding examples.
Jan 2024  · 4 min read

R makes it easy to combine multiple plots into one overall graph, using either thepar( ) or layout( ) function.

With the par( ) function, you can include the option mfrow=c(nrowsncols) to create a matrix of nrows x ncols plots that are filled in by row. mfcol=c(nrowsncols) fills in the matrix by columns.

# 4 figures arranged in 2 rows and 2 columns
attach(mtcars)
par(mfrow=c(2,2))
plot(wt,mpg, main="Scatterplot of wt vs. mpg")
plot(wt,disp, main="Scatterplot of wt vs disp")
hist(wt, main="Histogram of wt")
boxplot(wt, main="Boxplot of wt")

# 3 figures arranged in 3 rows and 1 column
attach(mtcars)
par(mfrow=c(3,1))
hist(wt)
hist(mpg)
hist(disp)

The layout( ) function has the form layout(mat) where mat is a matrix object specifying the location of the N figures to plot.

# One figure in row 1 and two figures in row 2
attach(mtcars)
layout(matrix(c(1,1,2,3), 2, 2, byrow = TRUE))
hist(wt)
hist(mpg)
hist(disp)

Optionally, you can include widths= and heights= options in the layout( ) function to control the size of each figure more precisely. These options have the form:

• widths= a vector of values for the widths of columns
• heights= a vector of values for the heights of rows

Relative widths are specified with numeric values. Absolute widths (in centimetres) are specified with the lcm() function.

# One figure in row 1 and two figures in row 2
# row 1 is 1/3 the height of row 2
# column 2 is 1/4 the width of the column 1
attach(mtcars)
layout(matrix(c(1,1,2,3), 2, 2, byrow = TRUE),
widths=c(3,1), heights=c(1,2))
hist(wt)
hist(mpg)
hist(disp)

See help(layout) for more details.

## Creating a figure arrangement with fine control

In the following example, two box plots are added to scatterplot to create an enhanced graph.

# Add boxplots to a scatterplot
par(fig=c(0,0.8,0,0.8), new=TRUE)
plot(mtcars\$wt, mtcars\$mpg, xlab="Car Weight",
ylab="Miles Per Gallon")
par(fig=c(0,0.8,0.55,1), new=TRUE)
boxplot(mtcars\$wt, horizontal=TRUE, axes=FALSE)
par(fig=c(0.65,1,0,0.8),new=TRUE)
boxplot(mtcars\$mpg, axes=FALSE)
mtext("Enhanced Scatterplot", side=3, outer=TRUE, line=-3)

To understand this graph, think of the full graph area as going from (0,0) in the lower left corner to (1,1) in the upper right corner. The format of the fig= parameter is a numerical vector of the form c(x1, x2, y1, y2). The first fig= sets up the scatterplot going from 0 to 0.8 on the x axis and 0 to 0.8 on the y axis. The top boxplot goes from 0 to 0.8 on the x axis and 0.55 to 1 on the y axis. I chose 0.55 rather than 0.8 so that the top figure will be pulled closer to the scatter plot. The right hand boxplot goes from 0.65 to 1 on the x axis and 0 to 0.8 on the y axis. Again, I chose a value to pull the right hand boxplot closer to the scatterplot. You have to experiment to get it just right.

fig= starts a new plot, so to add to an existing plot use new=TRUE.

You can use this to combine several plots in any arrangement into one graph.

## To Practice

Try the free first chapter of this interactive data visualization course, which covers combining plots.

This content is taken from statmethods.net.

Topics
Related

tutorial

### Merging Datasets in R

In this tutorial, you'll learn to join multiple datasets in R.

Tom Jeon

8 min

tutorial

### Scatterplot in R

Learn how to create a scatterplot in R. The basic function is plot(x, y), where x and y are numeric vectors denoting the (x,y) points to plot.

DataCamp Team

tutorial

### 15 Questions All R Users Have About Plots

There are different types of R plots, ranging from the basic graph types to complex types of graphs. Here we discover how to create these.

Karlijn Willems

39 min

tutorial

### Multiple Linear Regression in R: Tutorial With Examples

A complete overview to understanding multiple linear regressions in R through examples.

Zoumana Keita

12 min

tutorial

### Merging Data in R

Merging data is a common task in data analysis, especially when working with large datasets. The merge function in R is a powerful tool that allows you to combine two or more datasets based on shared variables.

DataCamp Team

4 min

tutorial

### Facets for ggplot2 in R

In this tutorial, you'll learn how to make the most of ggplots facetting functions.

DataCamp Team

8 min

See MoreSee More