R - попытка сделать тепловую карту из матрицы (все значения в матрице одинаковы), используя тепловую карту. - PullRequest
1 голос
/ 15 марта 2012

Я пытался использовать heatmap.2, чтобы сделать тепловую карту из матрицы.Моя проблема заключается в том, что я использую его внутри цикла, и время от времени все значения в матрице совпадают (например, все значения являются нулями), и я получаю сообщение об ошибке: «Ошибка на оси (1, в= xv, метки = lv): ни одно местоположение не является конечным "

Есть ли способ избежать этого?

Ответы [ 2 ]

1 голос
/ 15 марта 2012

Вы можете проверить, все ли значения идентичны, и пропустить график тепловой карты, если это так.

m <- matrix(...)
if(!all(m[1,1] == m){
  plot...
}
0 голосов
/ 10 апреля 2015

Определите свои собственные разрывы для гистограммы.

x <- matrix(0, nrow = 5, ncol = 5)   
datarange <- range(c(x)) + c(-0.1, 0.1)
mybreaks <- seq(datarange[1], datarange[2], length = 10)   
heatmap.2(x, breaks = mybreaks, 
          key.xtickfun=function() {
                    breaks <- parent.frame()$breaks
                    return(list(
                                at=parent.frame()$scale01(c(breaks[1],
                                  breaks[length(breaks)])),
                                labels=c(as.character(breaks[1]),
                                  as.character(breaks[length(breaks)]))
                                ))
                  })

Или удалите цветовой ключ:

heatmap.2(x, key = FALSE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...