R ggplot2 Histogram with Overlaying Normal Density Curve (Example Code)

In this R tutorial you’ll learn how to overlay a normal density line on top of a ggplot2 histogram.

Setting up the Example

data(iris)                               # Loading example data
head(iris)
#   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# 1          5.1         3.5          1.4         0.2  setosa
# 2          4.9         3.0          1.4         0.2  setosa
# 3          4.7         3.2          1.3         0.2  setosa
# 4          4.6         3.1          1.5         0.2  setosa
# 5          5.0         3.6          1.4         0.2  setosa
# 6          5.4         3.9          1.7         0.4  setosa
install.packages("ggplot2")              # Install ggplot2 package
library("ggplot2")                       # Load ggplot2 package
ggplot(iris, aes(x = Sepal.Length)) +    # Default histogram without normal curve
  geom_histogram()

r graph figure 1 r ggplot2 histogram overlaying normal density curve

Example: Overlaying Normal Density Curve on Top of ggplot2 Histogram in R

ggplot(iris, aes(x = Sepal.Length)) +    # Adding normal curve to histogram
  geom_histogram(aes(y = ..density..)) +
  stat_function(fun = dnorm,
                args = list(mean = mean(iris$Sepal.Length),
                            sd = sd(iris$Sepal.Length)),
                col = "red",
                size = 3)

r graph figure 2 r ggplot2 histogram overlaying normal density curve

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.
You need to agree with the terms to proceed

Menu
Top