如何将 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)
我想将 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)