圆形系统发育树上的节点标签

时间:2014-12-14 22:55:43

标签: r cluster-analysis data-visualization phylogeny ape-phylo

我正在尝试创建循环系统发育树。我有这部分代码:

fit<- hclust(dist(Data[,-4]), method = "complete", members = NULL)

nclus= 3
color=c('red','blue','green')
color_list=rep(color,nclus/length(color))
clus=cutree(fit,nclus)

plot(as.phylo(fit),type='fan',tip.color=color_list[clus],label.offset=0.2,no.margin=TRUE, cex=0.70, show.node.label = TRUE)

这是结果: enter image description here

此外,我正在尝试为每个节点和颜色分支显示标签。有什么建议怎么做?

谢谢!

1 个答案:

答案 0 :(得分:3)

当你说“颜色分支”时,我认为你的意思是边缘的颜色。这似乎有效,但我不得不认为有更好的方法。

此处使用内置mtcars数据集,因为您未提供数据。

plot.fan <- function(hc, nclus=3) {
  palette <- c('red','blue','green','orange','black')[1:nclus]
  clus    <-cutree(hc,nclus)
  X <- as.phylo(hc)
  edge.clus <- sapply(1:nclus,function(i)max(which(X$edge[,2] %in% which(clus==i))))
  order     <- order(edge.clus)
  edge.clus <- c(min(edge.clus),diff(sort(edge.clus)))
  edge.clus <- rep(order,edge.clus)
  plot(X,type='fan',
       tip.color=palette[clus],edge.color=palette[edge.clus],
       label.offset=0.2,no.margin=TRUE, cex=0.70)  
}
fit <- hclust(dist(mtcars[,c("mpg","hp","wt","disp")]))
plot.fan(fit,3); plot.fan(fit,5)

关于“标记节点”,如果您的意思是标记提示,看起来您已经这样做了。不幸的是,如果您想要不同的标签,与plot.hclust(...)不同,labels=...参数将被拒绝。您可以尝试tiplabels(....)函数,但它似乎与type="fan"无法很好地协作。标签来自Data的行名称,因此最好的选择IMO是在群集之前更改行名称。

如果您实际上是指标记节点(边缘之间的连接点,请查看nodelabels(...)。我没有提供一个工作示例,因为我无法想象您将放置哪些标签。< / p>