Аннотируйте расстояние в узлах дендрограммы

Рассмотрим простую дендрограмму вроде

dend <- 1:5 %>% dist %>% hclust %>% as.dendrogram

Как я могу аннотировать расстояние (высоту) на узлах? Я просмотрел пакет dendextend, но он не предлагает такой возможности. Однако я знаю, что могу составить список этих расстояний от

heights <- as.list(dend %>% get_nodes_attr("height"))

Любая помощь высоко ценится.


person Sepehr    schedule 21.03.2016    source источник
comment
Чтобы аннотировать узлы, вы можете использовать with(pvclust:::hc2axes(as.hclust(dend)), text(x.axis, y.axis, y.axis, pos = 1)) .   -  person lukeA    schedule 21.03.2016


Ответы (2)


Вот простой пример использования hc2axes из пакета pvclust:

# install.packages("pvclust") # install package if needed
plot(hc <- hclust(dist( mtcars[1:10, ])))
with(pvclust:::hc2axes(hc), 
     text(x.axis, y.axis, round(y.axis, 2), adj = c(.5, 1))
)

введите описание изображения здесь

person lukeA    schedule 21.03.2016
comment
Как я могу аннотировать узлы произвольным текстом или числами, не обязательно с расстояниями hclust? - person sam; 01.05.2019
comment
@sam изменяет аргумент меток вызова text. - person lukeA; 01.05.2019

С помощью комментария одно решение:

heights <- get_nodes_attr(HC[[i]], "height")
heights <- as.list(sort(heights))
heights[which(heights ==0)] <- NULL
for (node in 1: length(heights)){
  with(pvclust:::hc2axes(as.hclust(dend)),
    text(x.axis[node], y.axis[node], pos = 1, sprintf("%.2f", heights[node]))) 
}
person Sepehr    schedule 21.03.2016
comment
Рад, что помог. Однако я не думаю, что нужны петли и heights аранжировки - взгляните на мой пример. - person lukeA; 21.03.2016