r - colorRamp returns 0 -
i'm trying plot lines , color lines based on probability of connection. given vector of probabilities, use:
colfunc <- colorramp(c("white", "red")) colors <- colfunc(probs)
colors nx3 matrix of rgb values. however, colfunc quite returns 0 value, when attempt plot using these colors, r complains
error in col2rgb(colors) : numerical color values must positive
is there error in way defining color function?
your function works fine, think, doesn't return colors can use plot
, because plot
wants color, not rgb values in matrix.
there's better way, can covert matrix:
probs <- runif(10) colors <- colfunc(probs) my_col = apply(colors, margin = 1, function(x) rgb(x[1]/255, x[2]/255, x[3]/255)) plot(1:10, 1:10, col = my_col) # should work fine
or wrap function
better_colfunc <- function(x, ramp = colorramp(c("white", "red"))) { colors <- ramp(x) colors = apply(colors, margin = 1, function(x) rgb(x[1]/255, x[2]/255, x[3]/255)) return(colors) } plot(1:10, 1:10, col = better_colfunc(probs, ramp = colfunc))
as "colfunc quite returns 0 value", , other issues, you'll need share both data (what probs
like?) perhaps actual plotting code. see here tips on making reproducible questions.
Comments
Post a Comment