A basic histogram can be created with the hist
function. In order to add a normal curve or the density line you will need to create a density histogram setting prob = TRUE
as argument.
# Sample data
set.seed(3)
x <- rnorm(200)
# Histogram
hist(x, prob = TRUE)
If you want to overlay a normal curve over your histogram you will need to calculate it with the dnorm
function based on a grid of values and the mean and standard deviation of the data. Then you can add it with lines
.
# X-axis grid
x2 <- seq(min(x), max(x), length = 40)
# Normal curve
fun <- dnorm(x2, mean = mean(x), sd = sd(x))
# Histogram
hist(x, prob = TRUE, col = "white",
ylim = c(0, max(fun)),
main = "Histogram with normal curve")
lines(x2, fun, col = 2, lwd = 2)
If you prefer adding the density curve of the data you can make use of the density
function as shown in the example below.
# Sample data
set.seed(3)
x <- rnorm(200)
# Histogram
hist(x, prob = TRUE, ylim = c(0, max(fun)),
main = "Histogram with density curve")
lines(density(x), col = 4, lwd = 2)
See also