Como sobrepor uma curva normal em um histograma em r (2 exemplos)


Muitas vezes você pode querer sobrepor uma curva normal em um histograma em R.

Os exemplos a seguir mostram como fazer isso em base R e ggplot2 .

Exemplo 1: sobrepor uma curva normal em um histograma R de base

Podemos usar o seguinte código para criar um histograma na base R e sobrepor uma curva normal ao histograma:

 #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 )

sobrepor a curva normal no histograma em R

A curva preta no gráfico representa a curva normal.

Sinta-se à vontade para usar os argumentos col , lwd e lty para modificar a cor, largura e tipo de linha respectivamente:

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

Exemplo 2: Sobreponha a curva normal no histograma em ggplot2

Podemos usar o seguinte código para criar um histograma em ggplot2 e sobrepor uma curva normal no histograma:

 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)))

sobrepor histograma em ggplot2 em R

A curva preta no gráfico representa a curva normal.

Sinta-se à vontade para usar os argumentos col , lwd e lty para modificar a cor, largura e tipo de linha respectivamente:

 #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 '))

Nota : Você pode encontrar a documentação completa para stat_functionaqui .

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras operações comuns em R:

Como criar um histograma de frequência relativa em R
Como especificar quebras de histograma em R

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *