Retrieve/assign colors to the labels of a dendrogram. Note that usually dend objects come without any color assignment (and the output will be NULL, until colors are assigned).
labels_colors(dend, labels = TRUE, ...)
labels_col(dend, labels = TRUE, ...)
labels_colors(dend, ...) <- value
Heavily inspired by the code in the example of dendrapply, so credit should go to Martin Maechler. I also implemented some ideas from Gregory Jefferis's dendroextras package (having the "names" of the returned vector be the labels).
A vector with the dendrogram's labels colors (or a colored dendrogram, in case assignment is used). The colors are labeled.
# define dendrogram object to play with:
hc <- hclust(dist(USArrests[1:3, ]), "ave")
dend <- as.dendrogram(hc)
# Defaults:
labels_colors(dend)
#> NULL
plot(dend)
# let's add some color:
labels_colors(dend) <- 2:4
labels_colors(dend)
#> Arizona Alabama Alaska
#> 2 3 4
plot(dend)
# doesn't work...
# get_nodes_attr(dend, "nodePar", include_branches = FALSE)
# changing color to black
labels_colors(dend) <- 1
labels_colors(dend)
#> Arizona Alabama Alaska
#> 1 1 1
plot(dend)
# removing color (and the nodePar completely - if it has no other attributed but lab.col)
suppressWarnings(labels_colors(dend) <- NULL)
labels_colors(dend)
#> NULL
plot(dend)