Graphical User Interface for Choosing HCL Color Palettes

Share:

Description

A graphical user interface (GUI) for viewing, manipulating, and choosing HCL color palettes.

Usage

1
2
choose_palette(pal = diverge_hcl, n = 7L, parent = NULL, gui = "tcltk")
hclwizard(n = 7L, gui = "shiny", shiny.trace = FALSE)

Arguments

pal

function; the initial palette, see ‘Value’ below. Only used if gui="tcltk".

n

integer; the initial number of colors in the palette.

parent

tkwin; the GUI parent window. Only used if gui="tcltk".

gui

character; GUI to use. Available options are tcltk and shiny, see ‘Details’ below.

shiny.trace

boolean, default FALSE. Used for debugging if gui="shiny".

Details

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).

Value

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.

Author(s)

Jason C. Fisher, Reto Stauffer, Achim Zeileis

References

Zeileis A, Hornik K, Murrell P (2009). Escaping RGBland: Selecting Colors for Statistical Graphics. Computational Statistics & Data Analysis, 53, 3259–3270. \Sexpr[results=rd,stage=build]{tools:::Rd_expr_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. \Sexpr[results=rd,stage=build]{tools:::Rd_expr_doi("10.1175/BAMS-D-13-00155.1")}

See Also

rainbow_hcl

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
if(interactive()) {
## Using tcltk GUI
## Analog to: hclwizard(gui="tcltk")
pal <- choose_palette()
## Using shiny GUI
## Analog to: choose_palette(gui = "shiny")
pal <- hclwizard()

## use resulting palette function
filled.contour(volcano, color.palette = pal, asp = 1)
}