A faster implementation of grDevices::colorRamp for linear interpolation.

colorRamp2(x, alpha = TRUE, thresholds = NULL)

Arguments

x

A vector of colors.

alpha

Logical scalar. When TRUE This implementation of colorRamp can be 2 or more times faster than the grDevices version. It is intended for consecutive calls (i.e. in a loop) to improve performance. It is equivalent to the linear interpolation of the function colorRamp.

thresholds

A numeric vector of length length(x). Optional threshold levels so that the mixing can be different that even.

Value

A function as in grDevices::colorRamp.

Examples

# Creating a function for 2 colors myf <- colorRamp2(c("black", "steelblue")) f <- colorRamp(c("black", "steelblue")) plot.new()
plot.window(xlim = c(0,2), ylim = c(1, 11)) # These should be the same colors rect( xleft = 0, xright = 1, ybottom = 1:10, ytop = 2:11, col = rgb(myf((1:10)/10), maxColorValue = 255) )
rect( xleft = 1, xright = 2, ybottom = 1:10, ytop = 2:11, col = rgb(f((1:10)/10), maxColorValue = 255) )
# Another example setting different thresholds myf <- colorRamp2(c("black", "steelblue")) myf2 <- colorRamp2(c("black", "steelblue"), thresholds=c(0, .7)) plot.new()
plot.window(xlim = c(0,2), ylim = c(1, 11)) # These should be the same colors rect( xleft = 0, xright = 1, ybottom = 1:10, ytop = 2:11, col = rgb(myf((1:10)/10), maxColorValue = 255) )
rect( xleft = 1, xright = 2, ybottom = 1:10, ytop = 2:11, col = rgb(myf2((1:10)/10), maxColorValue = 255) )