| Type: | Package | 
| Title: | Basic S4 Classes and Methods for Mapping Between Numeric Values and Colors | 
| Version: | 0.5.0 | 
| Date: | 2023-02-18 | 
| Encoding: | UTF-8 | 
| Maintainer: | Bradley R Buchsbaum <brad.buchsbaum@gmail.com> | 
| Description: | A simple set of classes and methods for mapping between scalar intensity values and colors. There is also support for layering maps on top of one another using alpha composition. | 
| License: | MIT + file LICENSE | 
| RoxygenNote: | 7.2.3 | 
| Imports: | assertthat, methods | 
| Collate: | 'all_class.R' 'all_generic.R' 'color_plane.R' 'color_scale.R' | 
| NeedsCompilation: | no | 
| Packaged: | 2023-03-03 12:36:24 UTC; bbuchsbaum | 
| Author: | Bradley R Buchsbaum [aut, cre] | 
| Repository: | CRAN | 
| Date/Publication: | 2023-03-03 18:10:06 UTC | 
ColorPlane
Description
ColorPlane
Slots
- clr
- a field of colors 
ColorScale
Description
ColorScale
Slots
- irange
- the intensity range of the scale 
- threshold
- the alpha thresholding range 
- clr
- a vector of hex colors 
ConstantColorPlane
Description
ConstantColorPlane constructor taking a single hex 'character' vector defining a constant color plane.
Usage
ConstantColorPlane(clr)
Arguments
| clr | a single hex color as a 'character' vector of length 1 defining the constant color. | 
Value
a new ConstantColorPlane instance
Slots
- clr
- the constant color as hex value 
Examples
cp <- ConstantColorPlane(clr="#FF0000")
DiscreteColorPlane
Description
DiscreteColorPlane constructor taking list with names mapping to color values in hex representation. This object is used when one has a one to one mapping between discrete set of strings/values to discrete set of colors.
Usage
DiscreteColorPlane(lookup)
Arguments
| lookup | a "lookup table", which is a named list mapping discrete values to hex colors | 
Value
a new DiscreteColorPlane instance
Slots
- lookup
- a lookup table mapping values to hex colors 
Examples
lookup <- as.list(col2hex(c("red", "blue", "green")))
names(lookup) <- c("a", "b", "c")
cp <- DiscreteColorPlane(lookup)
values <- c("a", "b", "c", "a", "c")
HexColorPlane
Description
HexColorPlane constructor taking a 'character' vector of colors to define a color plane.
Usage
HexColorPlane(clr)
Arguments
| clr | a vector of hex colors | 
Value
a new HexColorPlane instance
IntensityColorPlane
Description
An association of intensities and colors
IntensityColorPlane constructor
Usage
IntensityColorPlane(intensity, cols = rainbow(255), alpha = 1)
Arguments
| intensity | a numeric vector of intensity values | 
| cols | a vector of hex character codes | 
| alpha | a vector of alpha values ranging from 0 to 1 | 
Value
a new IntensityColorPlane instance
Slots
- intensity
- a vector of intensity values 
- alpha
- a vector of alpha values 
- colmap
- a color map containing a vector of hex character codes 
RGBColorPlane
Description
RGBColorPlane constructor taking a 3- or 4-column numeric matrix of RGB(A) colors in the 0-255 range.
Usage
RGBColorPlane(clr)
Arguments
| clr | a matrix of colors where the first column is red, second column is green, third column is blue, and optional fourth column is alpha. | 
Value
a new RGBColorPlane instance
Examples
rgba_cmat <- rbind(c(255,0,0,255),
              c(0, 255, 0, 255),
              c(0, 0, 255, 0))
cp <- RGBColorPlane(rgba_cmat)
stopifnot(all(cp@clr[1,] == c(255,0,0,255)))
alpha_channel
Description
extract the alpha channel
Usage
alpha_channel(x, ...)
## S4 method for signature 'HexColorPlane'
alpha_channel(x, normalize = TRUE)
## S4 method for signature 'ConstantColorPlane'
alpha_channel(x, normalize = TRUE)
## S4 method for signature 'RGBColorPlane'
alpha_channel(x, normalize = TRUE)
Arguments
| x | the object to extract alpha channel from | 
| ... | extra args | 
| normalize | divide by 255 | 
Value
a numeric vector of alpha channel values
Examples
cp <- IntensityColorPlane(seq(1,5), cols=rainbow(25))
cl <- map_colors(cp, irange=c(0,50))
stopifnot(length(alpha_channel(cl)) == 5)
convert to hex colors
Description
convert to hex colors
Usage
as_hexcol(x, ...)
## S4 method for signature 'RGBColorPlane'
as_hexcol(x)
## S4 method for signature 'HexColorPlane'
as_hexcol(x)
Arguments
| x | the object to convert | 
| ... | extra args | 
Value
a character vector of ex colors
See Also
convert to rgb colors
Description
convert to rgb colors
Usage
as_rgb(x, ...)
## S4 method for signature 'RGBColorPlane'
as_rgb(x)
## S4 method for signature 'HexColorPlane'
as_rgb(x)
## S4 method for signature 'ConstantColorPlane'
as_rgb(x)
Arguments
| x | the object to convert | 
| ... | extra args | 
Value
a numeric matrix of rgb components
Examples
cp <- IntensityColorPlane(seq(1,100), cols=rainbow(25))
cl <- map_colors(cp, irange=c(0,50))
rgbcols <- as_rgb(cl)
blend two color planes
Description
given two color planes, generate a new color plane by blending the colors using the supplied alpha multiplier.
Usage
blend_colors(bottom, top, alpha)
## S4 method for signature 'ColorPlane,ColorPlane,numeric'
blend_colors(bottom, top, alpha = 1)
## S4 method for signature 'ColorPlane,ColorPlane,missing'
blend_colors(bottom, top)
## S4 method for signature 'HexColorPlane,RGBColorPlane,numeric'
blend_colors(bottom, top, alpha)
## S4 method for signature 'HexColorPlane,ConstantColorPlane,numeric'
blend_colors(bottom, top, alpha = 1)
Arguments
| bottom | the bottom color plane | 
| top | the top color plane | 
| alpha | the alpha overlay value. | 
Details
The functions in this package blend colors based on the "over" operator where 'top' if foreground and 'bottom' is background.
Value
a new ColorPlane instance with 'top' and 'bottom' alpha-blended.
References
https://en.wikipedia.org/wiki/Alpha_compositing
Examples
top <- IntensityColorPlane(1:5, cols=rainbow(5))
bottom <- IntensityColorPlane(1:5, cols=rev(rainbow(5)))
top <- map_colors(top)
bottom <- map_colors(bottom)
bc <- blend_colors(bottom, top, .5)
convert color name to hex character string
Description
convert color name to hex character string
Usage
col2hex(cname, alpha = 1)
Arguments
| cname | one or more color names, e.g. "red" | 
| alpha | the value of the alpha channel, ranging from 0 to 1 (default is 1) | 
Value
a vector of hex color values, one per color name
get_color
Description
get the color associated with one or more values
Usage
get_color(x, v, ...)
Arguments
| x | the color lookup table | 
| v | the intensity value(s) | 
| ... | extra args | 
Value
a color value
map data values to a set of colors
Description
instantiate a vector of colors from a ColorPlane specification.
Usage
map_colors(x, ...)
## S4 method for signature 'ConstantColorPlane'
map_colors(x)
## S4 method for signature 'HexColorPlane'
map_colors(x)
## S4 method for signature 'DiscreteColorPlane'
map_colors(x, values, ...)
## S4 method for signature 'IntensityColorPlane'
map_colors(x, alpha = 1, threshold = NULL, irange = NULL)
Arguments
| x | the object to map over | 
| ... | extra args | 
| values | the values to map to colors via the discrete lookup table | 
| alpha | alpha multiplier from 0 to 1. | 
| threshold | two-sided threshold as a 2-element vector, e.g. 'threshold=c(-3,3)' indicating two-sided transparency thresholds. | 
| irange | the intensity range defining min and max of scale. | 
Value
a HexColorPlane instance containing the mapped colors
Examples
cp <- IntensityColorPlane(seq(1,100), cols=rainbow(25))
cl <- map_colors(cp, irange=c(0,50))
stopifnot(cl@clr[50] == rainbow(25)[25])
multiply rgb matrix with alpha channel
Description
multiply rgb matrix with alpha channel
Usage
multiply_alpha(rgb, alpha)
Arguments
| rgb | matrix of colors | 
| alpha | channel | 
convert rgb colors to hex colors
Description
convert rgb colors to hex colors
Usage
rgb2hex(r, g, b, alpha)
Arguments
| r | the red color component | 
| g | the green color component | 
| b | the blue color component | 
| alpha | the alpha component | 
Value
a hex color represenation as 'character' vector