? Ich habe ein Dendrogramm erstellt, nachdem ich eine hierarchische Clusteranalyse in R unter Verwendung des folgenden Codes durchgeführt habe. Ich versuche nun, die Etiketten nach einer anderen Faktorvariablen zu färben, die als Vektor gespeichert wird. Am nächsten komme ich dazu, die Zweige unter Verwendung der ColourDendrogram
-Funktion in dem sparcl
-Paket farblich zu codieren. Wenn möglich, würde ich es vorziehen, die Etiketten farbig zu codieren. Ich habe Antworten auf ähnliche Fragen bei den folgenden Links Color branches of dendrogram using an existing column & Colouring branches in a dendrogram in R gefunden, aber ich konnte nicht herausfinden, wie Sie den Beispielcode für meinen Zweck konvertieren. Im Folgenden finden Sie einige Beispieldaten und -code.Wie beschriftet man die Bezeichnungen eines Dendrogramms mit einer zusätzlichen Faktorvariablen in R
> dput(df)
structure(list(labs = c("a1", "a2", "a3", "a4", "a5", "a6", "a7",
"a8", "b1", "b2", "b3", "b4", "b5", "b6", "b7"), var = c(1L,
1L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 2L, 2L), td = c(13.1,
14.5, 16.7, 12.9, 14.9, 15.6, 13.4, 15.3, 12.8, 14.5, 14.7, 13.1,
14.9, 15.6, 14.6), fd = c(2L, 3L, 3L, 1L, 2L, 3L, 2L, 3L, 2L,
4L, 2L, 1L, 4L, 3L, 3L)), .Names = c("labs", "var", "td", "fd"
), class = "data.frame", row.names = c(NA, -15L))
df.nw = df[,3:4]
labs = df$labs
d = dist(as.matrix(df.nw)) # find distance matrix
hc = hclust(d, method="complete") # apply hierarchical clustering
plot(hc, hang=-0.01, cex=0.6, labels=labs, xlab="") # plot the dendrogram
hcd = as.dendrogram(hc) # convert hclust to dendrogram
plot(hcd, cex=0.6) # plot using dendrogram object
Var = df$var # factor variable for colours
varCol = gsub("1","red",Var) # convert numbers to colours
varCol = gsub("2","blue",varCol)
# colour-code dendrogram branches by a factor
library(sparcl)
ColorDendrogram(hc, y=varCol, branchlength=0.9, labels=labs,
xlab="", ylab="", sub="")
Jede Beratung, wie dies zu tun wäre, würde sehr geschätzt werden.
@ luke: danke für deine antwort. Dies ergibt die richtigen Farben, erlaubt aber keine benutzerspezifischen Beschriftungen (die oben mit "Labs" angegeben wurden). Nach dem Code gefunden http://stackoverflow.com/questions/14118033/horizontal-dendrogram-in-r-with-labels/14118735#14118735 Ich habe versucht, Folgendes zur Funktion hinzufügen 'attr (n," Label ") < "Labs", aber dann endete mit einem Dendrogramm mit unleserlichen Etiketten (es sah so aus, als ob R eine Reihe verschiedener Etiketten übereinander überschrieben hätte). – jjulip
Ich habe auch versucht, die df Zeilennamen vor dem Ausführen von hclust zu ändern und das hat nicht funktioniert. Irgendwelche Ideen, wie ich farbige benutzerspezifische Etiketten bekommen kann? danke für Ihre Hilfe. – jjulip
@jjulip Probieren Sie 'attr (n," label ") <- labs [a $ label]' anstelle von 'attr (n," label ") <- labs'. – lukeA