10

以下に示すように、色付きの枝を持つ樹形図をRで作成したいと思います。 ここに画像の説明を入力

これまでのところ、次のコマンドを使用して標準のデンドログラムを作成しました。

d <- dist(as.matrix(data[,29]))   # find distance matrix 
 hc <- hclust(d)                # apply hirarchical clustering 
 plot(hc,labels=data[,1], main="", xlab="") # plot the dendrogram

目的の結果を得るには、このコードをどのように変更すればよいですか?

よろしくお願いします。

4

3 に答える 3

8

dendrapplyヘルプドキュメント)を使用する必要があります。

例えば:

# Generate data
set.seed(12345)
desc.1 <- c(rnorm(10, 0, 1), rnorm(20, 10, 4))
desc.2 <- c(rnorm(5, 20, .5), rnorm(5, 5, 1.5), rnorm(20, 10, 2))
desc.3 <- c(rnorm(10, 3, .1), rnorm(15, 6, .2), rnorm(5, 5, .3))

data <- cbind(desc.1, desc.2, desc.3)

# Create dendrogram
d <- dist(data) 
hc <- as.dendrogram(hclust(d))

# Function to color branches
colbranches <- function(n, col)
  {
  a <- attributes(n) # Find the attributes of current node
  # Color edges with requested color
  attr(n, "edgePar") <- c(a$edgePar, list(col=col, lwd=2))
  n # Don't forget to return the node!
  }

# Color the first sub-branch of the first branch in red,
# the second sub-branch in orange and the second branch in blue
hc[[1]][[1]] = dendrapply(hc[[1]][[1]], colbranches, "red")
hc[[1]][[2]] = dendrapply(hc[[1]][[2]], colbranches, "orange")
hc[[2]] = dendrapply(hc[[2]], colbranches, "blue")

# Plot
plot(hc)

これにより、次のことが得られます。

色付き樹形図

于 2013-08-03T16:51:44.140 に答える
0

FigTreeは、カラー デンドログラムを作成できます。たとえば、この論文を参照してください。

R 距離行列から FigTree にデータを取得するにはdm

library(ape)
z <- as.phylo(hclust(as.dist(dm)))
write.nexus(z, file="output.nex")
于 2013-08-03T16:41:37.497 に答える