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


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

Следующие примеры показывают, как это сделать в базе 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *