Skip to contents

Applies a Duke branded and accessible discrete color palette to ggplot geometric objects using color argument. It prioritizes high contrast colors aligned with Web Content Accessibility Guidelines (WCAG).

Usage

scale_duke_color_discrete(..., na.value = "#B5B5B5")

scale_duke_colour_discrete(..., na.value = "#B5B5B5")

Arguments

...

Arguments passed on to discrete_scale.

na.value

Color used for NA values

Value

a visualization with discrete duke color scale

Details

Partial code for this function can be attributed to ggthemes.

Examples

library(ggplot2)
library(dplyr)
#> 
#> Attaching package: ‘dplyr’
#> The following objects are masked from ‘package:stats’:
#> 
#>     filter, lag
#> The following objects are masked from ‘package:base’:
#> 
#>     intersect, setdiff, setequal, union
library(palmerpenguins)

# default
ggplot(penguins, aes(x = bill_depth_mm, y = bill_length_mm, color = species)) +
  geom_point()
#> Warning: Removed 2 rows containing missing values (`geom_point()`).


# vs. with Duke scale
ggplot(penguins, aes(x = bill_depth_mm, y = bill_length_mm, color = species)) +
  geom_point() +
  scale_duke_color_discrete()
#> Warning: Removed 2 rows containing missing values (`geom_point()`).


# vs. with shape and Duke scale
ggplot(penguins, aes(x = bill_depth_mm, y = bill_length_mm, shape = species, color = species)) +
  geom_point() +
  scale_duke_color_discrete()
#> Warning: Removed 2 rows containing missing values (`geom_point()`).


# vs. with Duke scale, UK spelling
ggplot(penguins, aes(x = bill_depth_mm, y = bill_length_mm, colour = species)) +
  geom_point() +
  scale_duke_colour_discrete()
#> Warning: Removed 2 rows containing missing values (`geom_point()`).


# Make some species NAs to demonstrate na.value usage
penguins_with_NAs <- penguins |>
  mutate(species = if_else(species == "Gentoo", NA, species))

# with default na.value
ggplot(penguins_with_NAs, aes(x = body_mass_g, color = species)) +
  geom_density() +
  scale_duke_color_discrete()
#> Warning: Removed 2 rows containing non-finite values (`stat_density()`).


# with custom na.value
ggplot(penguins_with_NAs, aes(x = body_mass_g, color = species)) +
  geom_density() +
  scale_duke_color_discrete(na.value = "pink")
#> Warning: Removed 2 rows containing non-finite values (`stat_density()`).