R:为范围

时间:2018-06-06 19:36:47

标签: r

我想创建一个颜色矢量,然后将其应用于条形图。我创建了一个颜色范围:

color.function <- colorRampPalette(c("blue", "white", "red"))

然后我想获得范围中包含的特定值的特定颜色。例如,让我们说我希望颜色范围跨越-10到10.然后我想获得-7,-4.5和2的颜色(例如)。

我怎么能这样做?我试过这个:

col.seq <- seq(-10, 10, 0.1) 
cuts <- cut(c(-7,-4.5,2), breaks = length(col.seq)) 
colors <- colorRampPalette(c("blue", "white", "red"))(length(col.seq)) 
levels(colors) <- cuts 
colors

但似乎只是在我的调色板上给出了每次休息的颜色。

感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

要获得正确的数值,您需要在开始的序列向量中找到它的idex。

你可以通过舍入和which

来获得它
color.function <- colorRampPalette(c("blue", "white", "red"))

col.seq <- round(seq(-10, 10, 0.1), 1)
colors <- colorRampPalette(c("blue", "white", "red"))(length(col.seq)) 

x <- 6.5323
x.map <- round(x, 1)
x.index <- which(col.seq == x.map)
colors[x.index]
# [1] "#FF5959" 

x <- 1.7323
x.map <- round(x, 1)
x.index <- which(col.seq == x.map)
colors[x.index]
# [1] "#FFD3D3"