Как построить несколько гистограмм в R (с примерами)


Вы можете использовать следующий синтаксис для построения нескольких гистограмм на одном графике в базе R :

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

И вы можете использовать следующий синтаксис для построения нескольких гистограмм в ggplot2 :

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

В следующих примерах показано, как использовать каждый из этих методов на практике.

Метод 1: построить несколько гистограмм в базе R

В следующем коде показано, как построить несколько гистограмм на одном графике в базе 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')) 

Метод 2: построение нескольких гистограмм в ggplot2

В следующем коде показано, как построить несколько гистограмм на одном графике в R с помощью 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')

Вы можете быстро изменить цвета гистограмм с помощью функции scale_fill_manual() :

Дополнительные ресурсы

В следующих руководствах объясняется, как создавать другие распространенные диаграммы в R:

Как создать гистограмму относительной частоты в R
Как построить несколько блочных диаграмм на одной диаграмме в R
Как построить несколько линий на одном графике в R