R: создать цветовой вектор для определенных значений из диапазона - PullRequest
0 голосов
/ 06 июня 2018

Я хочу создать вектор цветов, чтобы затем применить его к барплоту.Я создал цветовой диапазон:

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 голосов
/ 06 июня 2018

Чтобы получить правильный цвет для вашего числового значения, вам нужно найти его 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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...