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

Source

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).

Arguments

dend

a dendrogram object

labels

Boolean (default is TRUE), should the returned vector of colors return with the leaves labels as names.

...

not used

value

a vector of colors to be used as new label's colors for the dendrogram

Value

A vector with the dendrogram's labels colors (or a colored dendrogram, in case assignment is used). The colors are labeled.

Examples

# 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)