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

Как наложить нормальную кривую на гистограмму в 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 )
наложить нормальную кривую на гистограмму в R

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

Не стесняйтесь использовать аргументы 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)))
наложение гистограммы в ggplot2 в R

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

Не стесняйтесь использовать аргументы 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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.