Een normale curve over een histogram in r leggen (2 voorbeelden)


Vaak wilt u misschien een normale curve over een histogram in R leggen.

De volgende voorbeelden laten zien hoe u dit kunt doen in base R en ggplot2 .

Voorbeeld 1: superponeer een normale curve op een basis R-histogram

We kunnen de volgende code gebruiken om een histogram in basis R te maken en een normale curve over het histogram heen te leggen:

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

leg de normale curve over het histogram in R

De zwarte curve in de grafiek geeft de normale curve weer.

Voel je vrij om de argumenten col , lwd en lty te gebruiken om respectievelijk de kleur, breedte en lijntype te wijzigen:

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

Voorbeeld 2: Plaats de normale curve over het histogram in ggplot2

We kunnen de volgende code gebruiken om een histogram in ggplot2 te maken en een normale curve over het histogram te leggen:

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

overlayhistogram in ggplot2 in R

De zwarte curve in de grafiek geeft de normale curve weer.

Voel je vrij om de argumenten col , lwd en lty te gebruiken om respectievelijk de kleur, breedte en lijntype te wijzigen:

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

Opmerking : u kunt de volledige documentatie voor stat_functionhier vinden.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in R kunt uitvoeren:

Hoe maak je een relatief frequentiehistogram in R
Histogramonderbrekingen opgeven in R

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert