R:根据绘图中的百分比显示颜色

时间:2021-04-02 11:34:02

标签: r plot colors scale

我有以下情节:

p<- plot(c(0,1),c(0,1), type= "n", xlab = "", ylab = "", axes = FALSE)+
  rect(0,0,.5,.5, col = "green")+
  rect(.5,0,1,.5, col = "orange")+
  rect(0,.5,.5,1, col = "yellow")+
  rect(.5,.5,1,1, col = "red")

然而,不是手动将颜色输入矩形,我想要一个函数 [0,1] -> 颜色,其中我有一个介于 0 和 1 之间的值,它根据值为框着色。例如:

 (...)
 rect(0,0,.5,.5, col = function(0.3))+
 (...)

1 个答案:

答案 0 :(得分:1)

这是创建该函数的一种方法

PercentageColour <- function(x){colorRampPalette(c('green','orange','yellow','red'))(101)[round(x*100)+1]}

p<- plot(c(0,1),c(0,1), type= "n", xlab = "", ylab = "", axes = FALSE)+
   rect(0,0,.5,.5, col = PercentageColour(0.01))+
   rect(.5,0,1,.5, col = PercentageColour(0.25))+
   rect(0,.5,.5,1, col = PercentageColour(0.356))+
   rect(.5,.5,1,1, col = PercentageColour(0.95))

其中 colorRampPalette(colours) 创建斜坡,(100) 指定您想要的斜坡步数,[round(x*100)] 将您的百分比输入四舍五入并将其转换为索引值以供参考。< /p>

如果您不想制作自己的色带,也可以使用一些默认色带。例如尝试 rainbowheat.colors

Example