You can use the following syntax to plot multiple histograms on the same chart in **base R**:

hist(data1, col='red') hist(data2, col='blue', add=TRUE)

And you can use the following syntax to plot multiple histograms in **ggplot2**:

ggplot(df, aes(x = x_var, fill = grouping_var)) + geom_histogram(position = 'identity', alpha = 0.4)

The following examples show how to use each of these methods in practice.

**Method 1: Plot Multiple Histograms in Base R**

The following code shows how to plot multiple histograms in one plot in base R:

**#make this example reproducible
set.seed(1)
#define data
x1 = rnorm(1000, mean=0.8, sd=0.2)
x2 = rnorm(1000, mean=0.4, sd=0.1)
#plot two histograms in same graph
hist(x1, col='red', xlim=c(0, 1.5), main='Multiple Histograms', xlab='x')
hist(x2, col='green', add=TRUE)
#add legend
legend('topright', c('x1 variable', 'x2 variable'), fill=c('red', 'green'))**

**Method 2: Plot Multiple Histograms in ggplot2**

The following code shows how to plot multiple histograms in one plot in R using ggplot2:

**library(ggplot2)
#make this example reproducible
set.seed(1)
#create data frame
df <- data.frame(var = c(rep('x1', 1000), rep('x2', 1000) ),
value = c(rnorm(1000, mean=0.8, sd=0.1),
rnorm(1000, mean=0.4, sd=0.1)))
#view first six rows of data frame
head(df)
var value
1 x1 0.7373546
2 x1 0.8183643
3 x1 0.7164371
4 x1 0.9595281
5 x1 0.8329508
6 x1 0.7179532
#plot multiple histograms
ggplot(df, aes(x=value, fill=var)) +
geom_histogram( color='#e9ecef', alpha=0.6, position='identity')
**

You can quickly change the colors of the histograms by using the **scale_fill_manual()** function:

**Additional Resources**

The following tutorials explain how to create other common charts in R:

How to Create a Relative Frequency Histogram in R

How to Plot Multiple Boxplots in One Chart in R

How to Plot Multiple Lines in One Chart in R