Как наложить нормальную кривую на гистограмму в R (примеры 2)


Часто вы можете захотеть наложить нормальную кривую на гистограмму в R.

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

Пример 1: Наложение кривой нормали на гистограмму в базе R

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

#make this example reproducible
set. seed ( 0 )

#define data
data <- rnorm( 1000 )

#create histogram
hist_data <- hist(data)

#define x and y values to use for normal curve
x_values <- seq(min(data), max(data), length = 100 )
y_values <- dnorm(x_values, mean = mean(data), sd = sd(data)) 
y_values <- y_values \* diff(hist_data$mids[1:2]) \* length(data) 

#overlay normal curve on histogram
lines(x_values, y_values, lwd = 2 )

Черная кривая на графике представляет собой нормальную кривую.

Не стесняйтесь использовать аргументы col , lwd и lty для изменения цвета, ширины и типа линии соответственно:

#overlay normal curve with custom aesthetics
lines(x_values, y_values, col='red', lwd= 5 , lty='dashed')

Пример 2: Наложение нормальной кривой на гистограмму в ggplot2

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

library (ggplot2) 

#make this example reproducible
set. seed ( 0 )

#define data
data <- data.frame(x=rnorm( 1000 ))

#create histogram and overlay normal curve
ggplot(data, aes(x)) +
 geom_histogram(aes(y = ..density..), fill='lightgray', col='black') +
 stat_function(fun = dnorm, args = list(mean=mean(data$x), sd=sd(data$x)))

Черная кривая на графике представляет собой нормальную кривую.

Не стесняйтесь использовать аргументы col , lwd и lty для изменения цвета, ширины и типа линии соответственно:

#overlay normal curve with custom aesthetics
ggplot(data, aes(x)) +
 geom_histogram(aes(y = ..density..), fill='lightgray', col='black') +
 stat_function(fun = dnorm, args = list(mean=mean(data$x), sd=sd(data$x)),
 col='red', lwd= 2 , lty='dashed'))

Примечание : Вы можете найти полную документацию по stat_functionздесь .

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

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

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