Кажется, вы путали дендрограмму с данными дендрограммы.Это будет работать:
dend <- as.dendrogram(hc)
dict <- setNames(names(treeList), 1:length(names(treeList)))
hc$labels$label <- sapply(hc$labels$label, function(x) dict[[as.character(x)]])
ggdendrogram(dend, rotate = TRUE, theme_dendro = FALSE)
d5=color_branches(dend)
plot(d5)
d5g=color_branches(dend,4,groupLabels=TRUE)
plot(d5g)
d5gr=color_branches(dend,4,groupLabels=as.roman)
plot(d5gr)
Результат:
![enter image description here](https://i.stack.imgur.com/2gFEd.png)
Редактировать:
Поскольку @ maxatSOflow указал , мы можем использовать usedist::dist_setNames()
, чтобы установить имена для объекта "dist"
.Итак, чтобы, наконец, пометить дендрограмму как положено, вы можете сделать следующее:
library(IncDTW)
result <- dtw_dismat(treeList, dist_method="norm2", return_matrix=FALSE)
distMatrixResult <- result$dismat
# install.packages("usedist")
library(usedist)
distMatrixResult <- dist_setNames(distMatrixResult, LETTERS[1:4])
hc <- hclust(distMatrixResult, method="average")
library(ggdendro)
ggdendrogram(hc, rotate=TRUE, theme_dendro=FALSE)
dend <- as.dendrogram(hc)
library(dendextend)
d5=color_branches(dend)
plot(d5)
d5g=color_branches(dend,4,groupLabels=TRUE)
plot(d5g)
d5gr=color_branches(dend,4,groupLabels=as.roman)
plot(d5gr)
Дает:
![enter image description here](https://i.stack.imgur.com/Evz6B.png)
Данные:
A <- matrix(1:50, nrow=50, ncol=1)
B <- matrix(1:75, nrow=75, ncol=1)
C <- matrix(25:49, nrow=25, ncol=1)
D <- matrix(1:50, nrow=50, ncol=1)
treeList <- setNames(list(A, B, C, D), LETTERS[1:4])