2
我是R新手,我試圖使用dist()和hclust()構建水平和垂直標記的樹狀圖。我已經構建了六種不同的類型,但似乎無法添加標籤。謝謝,如果有人有任何建議。標記垂直和水平樹狀圖
我試過用as.dendrogram(),colnames(),rownames()和label()來標記這些樹狀圖沒有成功的許多不同方法。但是,輸出樹狀圖具有無意義的標籤。我試圖用「家庭」 - 「X22」,「X4」,「X75」,「X87」來標記樹形圖。以下是應用的不同方法,無效。
這裏是數據幀:
Family SBI.CV.mean
1 X22 59.25926
2 X4 57.40741
3 X75 56.19918
4 X87 59.97886
library(dendextend)
family1$Family <- as.factor(family1$Family)
class(family1$Family)
str(family1)
family2 <- ddply(family1,.(Family), summarise,
SBI.CV.mean = mean(SBI.CV))
family2
class(family2)
par(mfrow = c(3,3))
x_dist <- dist(x=family2$SBI.CV, method="euclidean")
x_dist
class(x_dist)
x_dist <- read.table(header=T, text=c("X22", "X4", "X75", "X87"))
x_dist2=as.matrix(x_dist2, labels=TRUE,)
colnames(x_dist) <- rownames(x_dist) <- x_dist2[["X22","X4","X75","X87"]]
x_dist2
此代碼生成該矩陣。然而,它沒有標記
1 2 3
2 1.851852
3 3.060077 1.208225
4 0.719598 2.571450 3.779675
這是我的嘗試,據我瞭解,你問兩個問題添加標籤
require(graphics)
labs=paste(c("X22", "X4", "X75", "X87"), 1:4, sep="")
x_dist2 <- x_dist
x_dist2
colnames(x_dist2) <- labs
Dendro.data <- hclust(dist(x_dist2), "euclidean")
plot(as.dendrogram(Dendro.data), horiz=T)
require(graphics)
labs=paste(c("X22", "X4", "X75", "X87"), 1:4, sep="")
x_dist3 <- x_dist
colnames(x_dist3) <- labs
Dendro.data <- hclust(dist(x_dist3), "ave")
plot(as.dendrogram(x_dist3), hang=-1)
str(Dendro.data)
hc <- hclust(dist(family2$SBI.CV), "ave")
plot(hc)
plot(as.dendrogram(hc, hang=0.02), horiz = TRUE)
dend1 <- as.dendrogram(Dendro.data)
dend1
dend1_mod_01 <- dend1
dend1_mod_01 <- colour_branches(dend1_mod_01, k=2)
col_for_labels <- c("purple","purple","orange","purple",
"orange","dark green")
dend_mod_01 <- color_labels(dend1_mod_01,col=col_for_labels)
plot(Dendro.data)
plot(dend1_mod_01)
謝謝塔爾,你是一個很好的幫助。 –