color_loon {loon} | R Documentation |
Create a palette with loon's color mapping
Description
Used to map nominal data to colors. By default these colors are chosen so that the categories can be well differentiated visually (e.g. to highlight the different groups)
Usage
color_loon()
Details
This is the function that loon uses by default to map values to colors. Loon's mapping algorithm is as follows:
if all values already represent valid Tk colors (see
tkcolors
) then those colors are takenif the number of distinct values is less than the number of values in loon's color mapping list then they get mapped according to the color list, see
l_setColorList
andl_getColorList
.if there are more distinct values than there are colors in loon's color mapping list then loon's own color mapping algorithm is used. See
loon_palette
and the details section in the documentation ofl_setColorList
.
For other mappings see the col_numeric
and
col_factor
functions from the scales package.
Value
A function that takes a vector with values and maps them to a vector of 6 digit hexadecimal encoded color representation (strings). Note that loon uses internally 12 digit hexadecimal encoded color values. If all the values that get passed to the function are valid color names in Tcl then those colors get returned hexencoded. Otherwise, if there is one or more elements that is not a valid color name it uses the loons default color mapping algorithm.
See Also
l_setColorList
, l_getColorList
,
loon_palette
, l_hexcolor
, l_colorName
,
as_hex6color
Examples
pal <- color_loon()
pal(letters[1:4])
pal(c('a','a','b','c'))
pal(c('green', 'yellow'))
# show color choices for different n's
if (requireNamespace("grid", quietly = TRUE)) {
grid::grid.newpage()
grid::pushViewport(grid::plotViewport())
grid::grid.rect()
n <- c(2,4,8,16, 21)
# beyond this, colors are generated algorithmically
# generating a warning
grid::pushViewport(grid::dataViewport(xscale=c(0, max(n)+1),
yscale=c(0, length(n)+1)))
grid::grid.yaxis(at=c(1:length(n)), label=paste("n =", n))
for (i in rev(seq_along(n))) {
cols <- pal(1:n[i])
grid::grid.points(x = 1:n[i], y = rep(i, n[i]),
default.units = "native", pch=15,
gp=grid::gpar(col=cols))
}
grid::grid.text("note the first i colors are shared for each n",
y = grid::unit(1,"npc") + grid::unit(1, "line"))
}