Выделите и раскрасьте определенный узел на дендрограмме, нанесенной на тепловую карту - PullRequest
4 голосов
/ 06 декабря 2011

У меня есть дендрограмма, нанесенная на тепловую карту. Как я могу выбрать и покрасить только один узел и соответствующие листья? Заранее спасибо!

Eleonora

1 Ответ

6 голосов
/ 06 декабря 2011

Используйте dendrapply для обхода узлов.В ?dendrapply есть рабочий пример, который иллюстрирует, как установить цвет узлов:

require(graphics)

## a smallish simple dendrogram
dhc <- as.dendrogram(hc <- hclust(dist(USArrests), "ave"))
(dhc21 <- dhc[[2]][[1]])

## too simple:
dendrapply(dhc21, function(n) utils::str(attributes(n)))

## toy example to set colored leaf labels :
local({
  colLab <<- function(n) {
      if(is.leaf(n)) {
        a <- attributes(n)
        i <<- i+1
        attr(n, "nodePar") <-
            c(a$nodePar, list(lab.col = mycols[i], lab.font= i%%3))
      }
      n
  }
  mycols <- grDevices::rainbow(attr(dhc21,"members"))
  i <- 0
 })
dL <- dendrapply(dhc21, colLab)
op <- par(mfrow=2:1)
 plot(dhc21)
 plot(dL) ## --> colored labels!
par(op)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...