如何在簇树形图中对分支进行着色?

2 r data-visualization cluster-analysis

如果你们中的任何人向我展示如何为Fan群集上的主要分支着色,我将非常感激.

请使用以下示例:

library(ape)
library(cluster) 
data(mtcars)
plot(as.phylo(hclust(dist(mtcars))),type="fan")
Run Code Online (Sandbox Code Playgroud)

42-*_*42- 7

您需要通过"为主要分支着色"更具体地说明您的意思,但这可能会给您一些想法:

 phyl <-as.phylo(hclust(dist(mtcars))) 
 plot(phyl,type="fan", edge.col=c("black", "green")[1+(phyl$edge.length >40) ])
Run Code Online (Sandbox Code Playgroud)

奇数边缘是扇形图中的径向臂,所以这个稍微丑陋(或者可能是非常聪明的?)黑客的颜色只有长度大于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) ])
Run Code Online (Sandbox Code Playgroud)


小智 7

如果你要的颜色主要分支,表明样品属于哪一类,那么你可能会发现功能ColorDendrogram在R包SPARCL有用的(可以从下载这里).这是一些示例代码:

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)
Run Code Online (Sandbox Code Playgroud)

这将生成树状图,其中叶子根据它们来自哪两个样品着色.