R 如何给聚类树状图中的分支着色?

R 如何给聚类树状图中的分支着色?,r,data-visualization,cluster-analysis,R,Data Visualization,Cluster Analysis,如果你们中的任何人告诉我如何给风扇组上的主要分支着色,我将不胜感激 请使用以下示例: library(ape) library(cluster) data(mtcars) plot(as.phylo(hclust(dist(mtcars))),type="fan") 您需要更具体地说明“为主要分支着色”的含义,但这可能会给您一些想法: phyl <-as.phylo(hclust(dist(mtcars))) plot(phyl,type="fan", edge.col=c("b

如果你们中的任何人告诉我如何给风扇组上的主要分支着色,我将不胜感激

请使用以下示例:

library(ape)
library(cluster) 
data(mtcars)
plot(as.phylo(hclust(dist(mtcars))),type="fan")

您需要更具体地说明“为主要分支着色”的含义,但这可能会给您一些想法:

 phyl <-as.phylo(hclust(dist(mtcars))) 
 plot(phyl,type="fan", edge.col=c("black", "green")[1+(phyl$edge.length >40) ])
<代码>物理40)]) 奇数编号的边是扇形图中的放射状臂,因此这种稍微难看(或者可能非常聪明?)的hack只为长度大于40的臂着色:

phyl <-as.phylo(hclust(dist(mtcars)))
plot(phyl,type="fan", edge.col=c("black", "black", "green")[
                                        c(TRUE, FALSE) + 1 + (phyl$edge.length >40) ])
<代码>物理40)])
如果您想给主要分支着色以指示该样本属于哪个类,那么您可能会发现R包sparcl中的函数colorderndrogram很有用(可从下载)。下面是一些示例代码:

library(sparcl)

# Create a fake two sample dataset
set.seed(1)
x <- matrix(rnorm(100*20),ncol=20)
y <- c(rep(1,50),rep(2,50))
x[y==1,] <- x[y==1,]+2

# Perform hierarchical clustering
hc <- hclust(dist(x),method="complete")

# Plot
ColorDendrogram(hc,y=y,main="My Simulated Data",branchlength=3)
库(sparcl)
#创建一个伪双样本数据集
种子(1)

非常好。可能值得使用
edgelabels()
查看边编号与边的对应关系。。。