3

Aus Frage Color branches of dendrogram using an existing column kann ich die Zweige in der Nähe des Blattes des Dendrogramms färben. Der Code:Farbe Dendrogramm Filialen basierend auf externen Etiketten in Richtung der Wurzel, bis die Bezeichnung übereinstimmt

x<-1:100 
dim(x)<-c(10,10) 
set.seed(1) 
groups<-c("red","red", "red", "red", "blue", "blue", "blue","blue", "red", "blue") 
x.clust<-as.dendrogram(hclust(dist(x))) 

x.clust.dend <- x.clust 
labels_colors(x.clust.dend) <- groups 
x.clust.dend <- assign_values_to_leaves_edgePar(x.clust.dend, value = groups, edgePar = "col") # add the colors. 
x.clust.dend <- assign_values_to_leaves_edgePar(x.clust.dend, value = 3, edgePar = "lwd") # make the lines thick 
plot(x.clust.dend) 

erzeugt ein Dendrogramm, wie gezeigt in: enter image description here Allerdings möchte ich in Richtung der Wurzel die Zweige färben, bis alle die Blätter in dem Stromzweig den gleichen Bezeichnungen haben. Auch wenn ein einzelner Mismatch-Schalter auf die Standardfarbe Schwarz gesetzt ist. Ich möchte die resultierende dendrogram aussehen enter image description here

Was ich will, ist etwas anders mit color_branches wie

x.clust.dend <-color_branches(x.clust.dend,k=3) 

weil es Farben auf der Basis seiner eigenen Cluster nicht auf einige externe Etiketten.

Antwort

1

Die Funktion, die Sie suchen, ist branches_attr_by_clusters. Hier ist, wie es zu benutzen:

library(dendextend) 

x <- 1:100 
dim(x) <- c(10, 10) 
set.seed(1) 
groups <- c("red","red", "red", "red", "blue", "blue", "blue","blue", "red", "blue") 
dend <- as.dendrogram(hclust(dist(x))) 

clusters <- as.numeric(factor(groups, levels = c("red", "blue"))) 
dend2 <- 
    branches_attr_by_clusters(dend , clusters, values = groups) 
plot(dend2) 

enter image description here

Diese Funktion wurde ursprünglich die Ergebnisse der dynamicTreeCut erstellt anzuzeigen. Siehe the vignette for another example.

+1

Vielen Dank! Genau das, was ich wollte und auch für den Link, sehr nützlich. – discipulus

+1

:) Mit Vergnügen. –