Package 'colorplane'

Title: Basic S4 Classes and Methods for Mapping Between Numeric Values and Colors
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.
Authors: Bradley R Buchsbaum [aut, cre]
Maintainer: Bradley R Buchsbaum <[email protected]>
License: MIT + file LICENSE
Version: 0.5.0
Built: 2024-11-05 02:40:14 UTC
Source: https://github.com/bbuchsbaum/colorplane

Help Index


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

rgb


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


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

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


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


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

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


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