Assign colors to vector of group labels
Usage
group2colors(
x,
alpha = 1,
colorFunc = rainbowJam,
colorSub = NULL,
sortFunc = jamba::mixedSort,
useGradient = FALSE,
verbose = FALSE,
...
)
Arguments
- x
character or factor vector representing group membership.
- alpha
numerical value indicating the alpha transparency to apply to the output colors, scaled from 0 (fully transparent) to 1 (no transparency).
- colorFunc
function whose first parameter is the number of colors to return, and where
...
is passed for additional parameters as needed. By default it usescolorjam::rainbowJam()
.- colorSub
optional named vector of colors, whose names must match all entries in
x
. This vector is used to re-apply colors which have already been assigned to the labels inx
.- sortFunc
function to use when sorting character or numeric input in
x
, by defaultjamba::mixedSort()
. When inputx
is a factor, the factor levels are maintained in the same order.- useGradient
logical indicating whether to apply a light-to-dark gradient to repeated colors, for example to distinguish multiple replicates of a group.
- verbose
logical indicating whether to print verbose output.
- ...
additional parameters are passed to
colorFunc
Details
This function takes a character or factor vector as input, then
assigns categorical colors to each label using colorFunc
, by
default rainbowJam()
.
If a previous set of colors has already been defined, the parameter
colorSub
is intended to maintain that same set of colors. However,
all input values in x
must be present in the names(colorSub)
otherwise all colors are reassigned.
In future, this function will maintain a partial set of colors, while assigning colors with maximum visible differences from the existing colors.
See also
Other colorjam core:
blend_colors()
,
closestRcolor()
,
closest_named_color()
,
color_complement()
,
colors_to_df()
,
rainbowJam()
,
sort_colors()
,
subset_colors()
Other colorjam assignment:
col_div_xf()
,
col_linear_xf()
,
matrix2heatColors()
,
rainbowJamMulti()
,
vals2colorLevels()
,
vibrant_color_by_hue()
Examples
abcde <- group2colors(letters[1:5]);
aabbccddee <- group2colors(rep(letters[1:5], each=2));
aaabbcccccdeeee <- group2colors(rep(letters[1:5], c(3,2,5,1,4)));
aaabbcccccdeeee2 <- group2colors(rep(letters[1:5], c(3,2,5,1,4)), useGradient=TRUE);
jamba::showColors(list(abcde=abcde,
aabbccddee=aabbccddee,
aaabbcccccdeeee=aaabbcccccdeeee,
aaabbcccccdeeee2=aaabbcccccdeeee2));