ggplot2::geom_density()
get_help() docs
The geom_density() function is part of the {ggplot2} package, which is part of the {tidyverse}.
The geom_density() function is used within {ggplot2} plots to create a density plot, which shows the distribution of a numeric continuous variable with the appearance of a “smoothened histogram.” The x-axis shows values of the variable, and the y-axis shows the statistical density calculation (this is not a matched value in the dataset!).
x: The numeric variable whose distribution to visualize
y aesthetic instead of an x (but never both)color (colour): The outline color for the density plotfill: The fill for the density plotalpha: Transparency for the density plot fill, ranging from 0-1 where 0 is fully transparent and 1 is fully opaque.size: The width of the density plot outlineTo use this function, you need to either first load the {ggplot2} library, or always use the function with ggplot2::geom_density() notation.
# Load the library
library(ggplot2)
# Or, load the full tidyverse:
library(tidyverse)
# Or, use :: notation
ggplot2::geom_density()The examples below use the msleep dataset. Learn more about this dataset with get_help("msleep").
# Show the msleep dataset with head()
head(msleep)## # A tibble: 6 × 11
## name genus vore order conservation sleep_total sleep_rem sleep_cycle awake brainwt bodywt
## <chr> <chr> <chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Owl … Aotus omni Prim… <NA> 17 1.8 NA 7 0.0155 0.48
## 2 Moun… Aplo… herbi Rode… nt 14.4 2.4 NA 9.6 NA 1.35
## 3 Grea… Blar… omni Sori… lc 14.9 2.3 0.133 9.1 0.00029 0.019
## 4 Cow Bos herbi Arti… domesticated 4 0.7 0.667 20 0.423 600
## 5 Thre… Brad… herbi Pilo… <NA> 14.4 2.2 0.767 9.6 NA 3.85
## 6 Nort… Call… carni Carn… vu 8.7 1.4 0.383 15.3 NA 20.5
ggplot(msleep) +
aes(x = awake) +
geom_density()# Include custom fill and color
ggplot(msleep) +
aes(x = awake) +
geom_density(fill = "purple", color = "orange")# Include custom fill, color, and outline size
# When you have many arguments, placing on separate lines makes code easier to read and work with
ggplot(msleep) +
aes(x = awake) +
geom_density(fill = "purple",
color = "orange",
size = 2)# Show overlapping density plots in a single panel
# Important to use `alpha` (find a good one with trial/error) so data is not hidden
# Note: to remove NAs, you must manipulate the data first
ggplot(msleep) +
aes(x = awake, fill = vore) +
geom_density(alpha = 0.6)# A horizontal density plot using y instead of x aesthetic
ggplot(msleep) +
aes(y = awake) +
geom_density(fill = "purple")