如何将 0 到 1 之间的值向量映射到 R 中的彩色条?

How to map a vector of values between 0 and 1 to a colorful bar in R?

我想将 p 值向量映射到彩色条。因为它们是 p 值,所以我对那些小于 0.05 或 0.1 的值非常感兴趣。所以,我希望值越小颜色越深,值越大颜色越浅

我尝试了以下代码:

COL = c(0.01,0.02,0.05,0.1,0.2,0.3,0.5,0.8)
plot(NULL, xlim=c(0,length(COL)), ylim=c(0,1), xaxt="n", yaxt="n")
# rect(0:(length(COL)-1), 0, 1:length(COL), 1, col=COL) 
rect(0:(length(COL)-1), 0, 1:length(COL), 1, col=10-10*COL) 

我得到了一个五颜六色的酒吧,从某种意义上说,它是不完美的,因为它们太五颜六色了。我希望他们能属于同一个颜色系列。我不介意对我的矢量进行对数变换或任何其他类型的变换。谢谢!

获得更连续变化的一种方法可能是使所有颜色都变成同一种颜色,但强度不同,具体取决于您的矢量。例如,这里有一堆不同的蓝调。

COL2 = rgb(0.1+COL*0.3, 0.1+COL*0.3, COL*0.8+0.2)
plot(NULL, xlim=c(0,length(COL)), ylim=c(0,1), xaxt="n", yaxt="n")
rect(0:(length(COL)-1), 0, 1:length(COL), 1, col=COL2)