R 如何将颜色设置为相应的值

R 如何将颜色设置为相应的值,r,R,颜色的分布应根据数值 例如: colour.palette <- colorRampPalette(c("darkgreen","yellow","red"), space = "rgb") par(mfrow=c(1,2)) x1 <- c(0.1,0.2,0.3,0.4,0.5,0.6,0.65,0.70,0.725,0.750,0.775,0.80,0.825,0.85,0.875,0.9,1) x2 <- c(0.01,0.02,0.03,0.04,0.05,0.06

颜色的分布应根据数值

例如:

colour.palette <- colorRampPalette(c("darkgreen","yellow","red"), space = "rgb")

par(mfrow=c(1,2))
x1 <- c(0.1,0.2,0.3,0.4,0.5,0.6,0.65,0.70,0.725,0.750,0.775,0.80,0.825,0.85,0.875,0.9,1)
x2 <- c(0.01,0.02,0.03,0.04,0.05,0.06,0.065,0.070,0.225,0.350,0.475,0.50)
barplot(as.matrix(x1), horiz=FALSE, col=colour.palette(length(x1)))
barplot(as.matrix(x2), horiz=FALSE, col=colour.palette(length(x2)))

color.palete肯定有一种更简单的方法,但您可以做的是将数据放入垃圾箱并创建匹配的因子标签。我用了你的数据

# binning
x1b <- .bincode(x1,seq(0,1,0.1),T)
x2b <- .bincode(x2,seq(0,1,0.1),T)
# which "factor levels" also appear in the second vector?
a <- intersect(x2b,x1b)
# set factor labels
x1bf <- factor(x1b, labels = colour.palette(length(seq(0,1,0.1))-1))
x2bf <- factor(x2b, labels = colour.palette(length(seq(0,1,0.1))-1)[a])
# plot
par(mfrow=c(1,2))
barplot(as.matrix(x1), horiz=FALSE, col=as.character(x1bf))
barplot(as.matrix(x2), horiz=FALSE, col=as.character(x2bf)) 
#binning
x1b
x1b <- .bincode(x1,seq(0,1,1/length(x1)),T)
x2b <- .bincode(x2,seq(0,1,1/length(x1)),T)
x1bf <- factor(x1b, labels = colour.palette(length(x1))[unique(x1b)])
x2bf <- factor(x2b, labels = colour.palette(length(x1))[unique(x2b)])