Come sovrapporre una curva normale su un istogramma in r (2 esempi)


Spesso potresti voler sovrapporre una curva normale a un istogramma in R.

Gli esempi seguenti mostrano come eseguire questa operazione in base R e ggplot2 .

Esempio 1: sovrapporre una curva normale ad un istogramma di base R

Possiamo usare il seguente codice per creare un istogramma in base R e sovrapporre una curva normale all’istogramma:

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

sovrapporre la curva normale all'istogramma in R

La curva nera nel grafico rappresenta la curva normale.

Sentiti libero di utilizzare gli argomenti col , lwd e lty per modificare rispettivamente il colore, la larghezza e il tipo di linea:

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

Esempio 2: sovrapponi la curva normale all’istogramma in ggplot2

Possiamo usare il seguente codice per creare un istogramma in ggplot2 e sovrapporre una curva normale all’istogramma:

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

istogramma sovrapposto in ggplot2 in R

La curva nera nel grafico rappresenta la curva normale.

Sentiti libero di utilizzare gli argomenti col , lwd e lty per modificare rispettivamente il colore, la larghezza e il tipo di linea:

 #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 : puoi trovare la documentazione completa per stat_functionqui .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre operazioni comuni in R:

Come creare un istogramma di frequenza relativo in R
Come specificare le interruzioni dell’istogramma in R

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *