2012-01-03 3 views
0

У меня есть один размерный вектор данных в R, и я хочу найти цвета тепловой карты, соответствующие этим данным. Например:Цветовые карты цветов, соответствующие данным в R

data = c(12,32,33,41,5) 

я тогда хочу найти вектор HEX цвета, которые соответствуют этому вектору - что-то вроде более высоких значений имеют более темные цвета и более низкие значения имеют более светлые цвета или что-то в этом роде.

Есть ли какие-либо пакеты/функции, которые будут делать это?

Спасибо!

+0

Если вам нужны цвета для создания участков в R, все функции построения графика позаботятся об этом шаге. –

+0

пакет «весы», безусловно, может это сделать; он используется внутренне с помощью 'ggplot2' для сопоставления значений цветам между прочим. – baptiste

ответ

6

К немного прибегая к помощи, я нашел следующую функцию this link:

val2col<-function(z, zlim, col = heat.colors(12), breaks){ 
if(!missing(breaks)){ 
    if(length(breaks) != (length(col)+1)){stop("must have one more break than colour")} 
} 
if(missing(breaks) & !missing(zlim)){ 
    breaks <- seq(zlim[1], zlim[2], length.out=(length(col)+1)) 
} 
if(missing(breaks) & missing(zlim)){ 
    zlim <- range(z, na.rm=TRUE) 
    zlim[2] <- zlim[2]+c(zlim[2]-zlim[1])*(1E-3)#adds a bit to the range in both directions 
    zlim[1] <- zlim[1]-c(zlim[2]-zlim[1])*(1E-3) 
    breaks <- seq(zlim[1], zlim[2], length.out=(length(col)+1)) 
} 
colorlevels <- col[((as.vector(z)-breaks[1])/(range(breaks)[2]-range(breaks)[1]))*(length(breaks)-1)+1] # assign colors to heights for each point 
colorlevels 
} 

кажется, что это именно то, что вы ищете.

Смежные вопросы