p <-
show_colors() +
theme_void() +
labs(subtitle = NULL) +
facet_wrap(~facet, nrow = 1)
p$layers[[1]]$aes_params$colour <- "black"
p$layers[[2]] <- NULL
p
Trying to find a good color palette in R is difficult. I think most people search google for ggplot colors
and end up looking at some funky image of all the color names that work in R. These colors are from the X11 colors that were developed in the 1980s. Unfortunately, they have inconsistent names and the lightness/saturation are all over the place. Using simplecolors
gies you access to a smaller, consistent set of colors. It is similar to the palette tool you might be used to with Microsoft Word or Tableau.
To get started there are 8 hues, 4 types of saturation, and 5 levels of lightness plus a greyscale. To use a color, just combine the 3 parts:
#f03c15
For example, the following code will return the corresponding colors
sc("blue")
= sc("blue5")
= sc("dullblue3")
= sc()
functionThis function stands for simplecolors. You can specify base colors
#> [1] "#E44444" "#9444E4" "#E444E4"
or add modifiers
#> [1] "#003CB3" "#4D3C19" "#949494"
There are multiple ways to access palettes
sc_within()
- within 1 hue, the default is a lightness of 2:6, and no modifier (sat == "")sc_across()
- holding light and saturation constant (at your choosing), a palette will be built across hues in the order you specify. The palette order is created using the first letter (uppercase) of each color, or “Gy” for “grey”.sc_[color]()
there is a shortcut of sc_within()
for each of the hues, for example sc_teal()
, sc_red()
, etc.#> [1] "#29FFFF" "#00B3B3" "#006666"
#> [1] "#86682D" "#2D8686" "#592D86" "#595959"
There are 3 main outputs for these palettes that can be specified via return =
sc_within()
#> [1] "#9DB9F1" "#4479E4" "#16439C" "#0D2659"
color_name | hex |
---|---|
blue2 | #9DB9F1 |
blue3 | #4479E4 |
blue4 | #16439C |
blue5 | #0D2659 |
sc_across()
#> [1] "#E44444" "#E4AF44" "#E4E444"
color_name | hex |
---|---|
red3 | #E44444 |
orange3 | #E4AF44 |
yellow3 | #E4E444 |
Here is a list of all colors abbreviations you can use in the palette
color | letter |
---|---|
red | R |
orange | O |
yellow | Y |
green | G |
teal | T |
blue | B |
violet | V |
pink | P |
grey | Gy |
sc_red()
, sc_blue()
, etc…There is also a sc_within()
palette defaulted for each color
#> [1] "#FFCCCC" "#FF8F8F" "#FF2929" "#B30000"
color_name | hex |
---|---|
blue5 | #0D2659 |
blue4 | #16439C |
blue3 | #4479E4 |
blue2 | #9DB9F1 |
And here’s an example where you might use it in a ggplot
blue_and_red <- c(
sc_blue(4:2, "bright"),
sc_red(2:4, "bright")
)
iris %>%
mutate(cut = ntile(Sepal.Length, 6)) %>%
ggplot(aes(Sepal.Width, Sepal.Length, color = factor(cut))) +
geom_count(size = 5) +
#setting your custom gradients
scale_color_manual(values = blue_and_red) +
theme_minimal()