我有以下情节:
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))+
(...)
答案 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>
如果您不想制作自己的色带,也可以使用一些默认色带。例如尝试 rainbow
或 heat.colors