Jason C. Fisher, Reto Stauffer, Achim Zeileis
A graphical user interface (GUI) for viewing, manipulating, and choosing HCL color palettes.
Computes palettes based on the HCL (hue-chroma-luminance) color
model (as implemented by polarLUV
). The GUIs interface
the palette functions
rainbow_hcl
for qualitative palettes,
sequential_hcl
for sequential palettes with a single hue,
heat_hcl
for sequential palettes with multiple hues, and
diverge_hcl
for diverging palettes (composed from two single-hue
sequential palettes).
Two different GUIs are implemented and can be selected using the
function input argument gui
("tcltk"
or "shiny"
).
Both GUIs allows for interactive modification of the arguments of the respective
palette-generating functions, i.e.,
starting/ending hue (wavelength, type of color),
minimal/maximal chroma (colorfulness),
minimal maximal luminance (brightness, amount of gray), and
a power transformations that control how quickly/slowly chroma and/or
luminance are changed through the palette. Subsets of the parameters
may not be applicable depending on the type of palette chosen. See
rainbow_hcl
and Zeileis et al. (2009) for a more detailed
explanation of the different arguments. Stauffer et al. (2015) provide
more examples and guidance.
Optionally, active palette can be illustrated by using a range of examples such as a map, heatmap, scatter plot, perspective 3D surface etc.
To demonstrate different types of deficiencies, the active palette may
be desaturated (emulating printing on a grayscale printer) and, if the
dichromat
package is available, collapsed to
emulate different types of color-blindness (without red-green or green-blue
contrasts).
Returns a palette-generating function with the selected arguments. Thus, the returned function takes an integer argument and returns the corresponding number of HCL colors by traversing HCL space through interpolation of the specified hue/chroma/luminance/power values.
Color palettes based on the HCL and HSV color spaces.
All functions compute palettes based on either the HCL (polarLUV
)
or the HSV (HSV
) color space.
rainbow_hcl
computes a rainbow of colors (qualitative palette)
defined by different hues given a single value of each chroma and luminance.
It corresponds to rainbow
which computes a rainbow in
HSV space.
sequential_hcl
gives a sequential palette starting at the full
color HCL(h
, c[1]
, l[1]
) through to a light color
HCL(h
, c[2]
, l[2]
) by interpolation.
diverge_hcl
and diverge_hsv
, compute
a set of colors diverging from a neutral center (gray or white, without
color) to two different extreme colors (blue and red by default). This
is similar to cm.colors
. For the diverging HSV colors,
two hues h
are needed, a maximal saturation s
and a
fixed value v
. The saturation is then varied to obtain the
diverging colors. For the diverging HCL colors, again two hues h
are needed, a maximal chroma c
and two luminances l
.
The colors are then created by an interpolation between the
full color HCL(h[1]
, c
, l[1]
), a neutral color HCL(h
, 0, l[2]
)
and the other full color HCL(h[2]
, c
, l[1]
).
The palette heat_hcl
gives an implementation of heat.colors
in HCL space. By default, it goes from a red to a yellow hue, while
simultaneously going to lighter colors (i.e., increasing luminance)
and reducing the amount of color (i.e., decreasing chroma).
The terrain_hcl
palette simply calls heat_hcl
with different
parameters, providing colors similar in spirit to terrain.colors
.
The lighter colors are not strictly HCL colors, though.
A character vector with (s)RGB codings of the colors in the palette.
Visualization of color palettes (given as hex codes) in RGB and/or HCL coordinates.
The function specplot
transforms a given color palette in hex
codes into their RGB (sRGB
) or
HCL (polarLUV
) coordinates. As the hues for
low-chroma colors are not (or poorly) identified, by default a smoothing
is applied to the hues (fix = TRUE
). Also, to avoid jumps from
0 to 360 or vice versa, the hue coordinates are shifted suitably.
By default (plot = TRUE
) the resulting RGB and HCL coordinates
are visualized by simple line plots along with the color palette x
itself.
specplot
invisibly returns a list with components
RGB |
a matrix of sRGB coordinates, |
HCL |
a matrix of HCL coordinates, |
hex |
original color palette |
Zeileis A, Hornik K, Murrell P (2009). Escaping RGBland: Selecting Colors for Statistical Graphics. Computational Statistics & Data Analysis, 53, 3259–3270. doi: 10.1016/j.csda.2008.11.033 Preprint available from https://eeecon.uibk.ac.at/~zeileis/papers/Zeileis+Hornik+Murrell-2009.pdf.
Stauffer R, Mayr GJ, Dabernig M, Zeileis A (2015). Somewhere over the Rainbow: How to Make Effective Use of Colors in Meteorological Visualizations. Bulletin of the American Meteorological Society, 96(2), 203–216. doi: 10.1175/BAMS-D-13-00155.1