Histogram with density in ggplot2

Histogram with kernel density estimation

In order to overlay a kernel density estimate over a histogram in ggplot2 you will need to pass aes(y = ..density..) to geom_histogram and add geom_density as in the example below.

# install.packages("ggplot2")
library(ggplot2)

# Data
set.seed(5)
x <- rnorm(1000)
df <- data.frame(x)

# Histogram with kernel density
ggplot(df, aes(x = x)) + 
  geom_histogram(aes(y = ..density..),
                 colour = 1, fill = "white") +
  geom_density()

Histogram with kernel density estimate in ggplot

Curve customization

The color, line width and line type of the kernel density curve can be customized making use of colour, lwd and linetype arguments.

Histogram with density in ggplot2

# install.packages("ggplot2")
library(ggplot2)

# Data
set.seed(5)
x <- rnorm(1000)
df <- data.frame(x)

# Histogram with kernel density
ggplot(df, aes(x = x)) + 
  geom_histogram(aes(y = ..density..),
                 colour = 1, fill = "white") +
  geom_density(lwd = 1.2,
               linetype = 2,
               colour = 2)

Density curve with shaded area

You can also shade the area behind the curve, specifying a fill color with the fill argument of the geom_density function. It is recommended to set a level of transparency (between 0 and 1) with alpha argument, so the histogram will keep visible.

# install.packages("ggplot2")
library(ggplot2)

# Data
set.seed(5)
x <- rnorm(1000)
df <- data.frame(x)

# Histogram with kernel density
ggplot(df, aes(x = x)) + 
  geom_histogram(aes(y = ..density..),
                 colour = 1, fill = "white") +
  geom_density(lwd = 1, colour = 4,
               fill = 4, alpha = 0.25)

Histogram and density area in ggplot2

Storytelling with Data

A Data Visualization Guide for Business Professionals

Buy on Amazon
ggplot2

Elegant Graphics for Data Analysis

Buy on Amazon
Better Data Visualizations

A Guide for Scholars, Researchers, and Wonks

Buy on Amazon
Data Sketches

A journey of imagination, exploration, and beautiful data visualizations

Buy on Amazon

See also