我想创建一个颜色矢量,然后将其应用于条形图。我创建了一个颜色范围:
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
但似乎只是在我的调色板上给出了每次休息的颜色。
感谢任何帮助!
答案 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"