colorRamp返回0

colorRamp返回0,r,colors,color-palette,R,Colors,Color Palette,我试着根据这种联系的可能性来画线和给线上色。给定一个概率向量,我使用: colfunc <- colorRamp(c("white", "red")) colors <- colfunc(probs) 我定义颜色函数的方式有错误吗?我有点搞不清楚您想做什么…col2rgb函数返回rgb值,所以如果您已经有了这些值,那么您想要什么 或者,如果您想要rgb,为什么不使用: col2rgb(c("white", "red")) 我认为,您的函数工作得很好,但它不会返回可用于plot的颜

我试着根据这种联系的可能性来画线和给线上色。给定一个概率向量,我使用:

colfunc <- colorRamp(c("white", "red"))
colors <- colfunc(probs)

我定义颜色函数的方式有错误吗?

我有点搞不清楚您想做什么…col2rgb函数返回rgb值,所以如果您已经有了这些值,那么您想要什么

或者,如果您想要rgb,为什么不使用:

col2rgb(c("white", "red"))

我认为,您的函数工作得很好,但它不会返回可用于
plot
的颜色,因为
plot
需要的是颜色,而不是矩阵中的RGB值

可能有更好的方法,但您可以简单地隐藏矩阵:

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