R:根据图中的百分比显示颜色
R: displaying color depending on percentage in plot
我有以下情节:
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))+
(...)
这是创建该函数的一种方法
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)]
舍入百分比输入并将其转换为索引值以供参考.
如果您不想自己制作,也可以使用一些默认的色带。例如尝试 rainbow
或 heat.colors
我有以下情节:
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))+
(...)
这是创建该函数的一种方法
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)]
舍入百分比输入并将其转换为索引值以供参考.
如果您不想自己制作,也可以使用一些默认的色带。例如尝试 rainbow
或 heat.colors