Цвета тепловой карты, соответствующие данным в R - PullRequest
0 голосов
/ 03 января 2012

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

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

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

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

Спасибо!

1 Ответ

6 голосов
/ 04 января 2012

Немного прибегнув к поиску, я нашел следующую функцию на эту ссылку :

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
}

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

...