A faster implementation of grDevices::colorRamp for linear interpolation.
Source:R/color-paletts.R
colorRamp2.RdA faster implementation of grDevices::colorRamp for linear interpolation.
Arguments
- x
A vector of colors.
- alpha
Logical scalar. When
TRUEThis implementation ofcolorRampcan be 2 or more times faster than thegrDevicesversion. It is intended for consecutive calls (i.e. in a loop) to improve performance. It is equivalent to the linear interpolation of the functioncolorRamp.- 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)
)