Цветовой ключ тепловой карты с пятью разными цветами

У меня есть следующий код, и я не знаю, как его использовать для отображения тепловой карты с цветовым ключом, отображающим пять разных цветов, представляющих определенные значения:

hm <- heatmap.2(data_matrix, scale="none",Rowv=NA,Colv=NA,col = rev(brewer.pal(11,"RdBu")),margins=c(5,5),cexRow=0.5, cexCol=1.0,key=TRUE,keysize=1.5, trace="none")

Требуется цветовой ключ:

<0.3 (blue)

0.3-1 (green)

1-1.3 (yellow)

1.3-3.0 (orange)

>3.0 (red)

Буду рад, если кто-нибудь поможет. Спасибо!

Джеймс


person James Johnson    schedule 29.07.2012    source источник
comment
Это Р. Я не уверен, что ему разрешено редактировать или комментировать с представлением 1 ...   -  person Johan Lundberg    schedule 30.07.2012
comment
@JohanLundberg Я не верю, что эти ограничения на репутацию применимы к вашим собственным вопросам (или ответам на ваши собственные вопросы).   -  person joran    schedule 30.07.2012
comment
Кстати, я не узнал функцию heatmaps.2, поэтому искал ее на RSeek. первое обращение наверное ответил бы на ваш вопрос.   -  person Gregor Thomas    schedule 30.07.2012
comment
@joran, я думаю, что за комментарии они делают ...   -  person Johan Lundberg    schedule 30.07.2012
comment
@JohanLundberg Нет, не.   -  person joran    schedule 30.07.2012


Ответы (1)


require(gplots)
require(RColorBrewer)

## Some fake data for you
data_matrix <- matrix(runif(100, 0, 3.5), 10, 10)

## The colors you specified.
myCol <- c("blue", "green", "yellow", "orange", "red")
## Defining breaks for the color scale
myBreaks <- c(0, .3, 1, 1.3, 3, 3.5)

hm <- heatmap.2(data_matrix, scale="none", Rowv=NA, Colv=NA,
                col = myCol, ## using your colors
                breaks = myBreaks, ## using your breaks
                dendrogram = "none",  ## to suppress warnings
                margins=c(5,5), cexRow=0.5, cexCol=1.0, key=TRUE, keysize=1.5,
                trace="none")

Это должно сработать и дать вам некоторые идеи о том, как отредактировать его дальше, если хотите. Чтобы получить легенду с вашими точными значениями, я бы не стал беспокоиться о встроенной гистограмме и вместо этого просто использовал бы legend:

hm <- heatmap.2(data_matrix, scale="none", Rowv=NA, Colv=NA,
                col = myCol, ## using your colors
                breaks = myBreaks, ## using your breaks
                dendrogram = "none",  ## to suppress warnings
                margins=c(5,5), cexRow=0.5, cexCol=1.0, key=FALSE,
                trace="none")
legend("left", fill = myCol,
    legend = c("0 to .3", "0.3 to 1", "1 to 1.3", "1.3 to 3", ">3"))
person Gregor Thomas    schedule 29.07.2012
comment
Спасибо за помощь, шуджа. Каким-то образом цвета в цветовом ключе не соответствовали ожидаемым значениям; желтый цвет вообще не появлялся в цветовом ключе. - person James Johnson; 30.07.2012
comment
Большое спасибо, Шуджа. Это было идеальное решение. legend () отлично подходит для моих нужд. Ваша помощь очень ценится !!! - person James Johnson; 02.08.2012