'daki ek bir faktör değişkeni ile renklendirilmesi Aşağıda, aşağıdaki kodu kullanarak R'de hiyerarşik kümeleme analizi yürüttükten sonra bir dendrogram ürettim. Şimdi etiketleri bir vektör olarak kaydedilen başka bir faktör değişkenine göre renklendirmeye çalışıyorum. Bunu gerçekleştirmeye geldiğim en yakın nokta, sparcl
paketindeki ColourDendrogram
işlevini kullanarak dalları renk kodlaması yapmaktır. Mümkünse etiketleri renklendirmeyi tercih ederim. Benzer sorulara aşağıdaki bağlantılarda Color branches of dendrogram using an existing column & Colouring branches in a dendrogram in R yanıtlarını buldum, ancak amacım için örnek kodun nasıl dönüştürüleceğini bilemedim. Aşağıda bazı örnek veriler ve kod bulunmaktadır.Bir dendrogramın etiketlerinin 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="")
Bunun nasıl yapılacağı konusunda herhangi bir öneri çok takdir edilecektir.
@ luke: cevabınız için teşekkürler. Bu, doğru renkler verir, ancak kullanıcıya özgü etiketlere (yukarıdaki 'laboratuvarlarla belirtilenler) izin vermez. Http://stackoverflow.com/questions/14118033/horizontal-dendrogram-in-r-with-labels/14118735#14118735 adresinde bulunan kodu takip ederek aşağıdakileri ekledim: attr (n, "label") < - Laboratuarlar ama daha sonra okunaksız etiketlerle bir dendrogram ile sona erdi (R, bir grup farklı etiketin üzerine üst üste yazmış gibi görünüyordu). – jjulip
Ayrıca hfust çalıştırmadan önce df satır adlarını değiştirmeyi denedim ve bu çalışmadı. Kullanıcıya özel etiketlere nasıl sahip olabileceğimiz hakkında bir fikrin var mı? yardım ettiğin için teşekkür ederim. – jjulip
@jjulip 'attr (n," label ") <- labs' yerine attr (n," label ") <- labs [a $ label]' i kullanmayı deneyin. – lukeA