【问题标题】:Node labels on circular phylogenetic tree循环系统发育树上的节点标签
【发布时间】:2015-02-13 00:30:48
【问题描述】:

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

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)

这是结果:

我还试图为每个节点显示标签并为分支着色。有什么建议吗?

谢谢!

【问题讨论】:

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


    【解决方案1】:

    当您说“颜色分支”时,我假设您的意思是为边缘着色。这似乎可行,但我必须认为有更好的方法。

    在这里使用内置的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(...)。我没有提供工作示例,因为我无法想象您会在那里放置什么标签。

    【讨论】:

    • 这太棒了。这正是我所需要的。此外, nodelabels() 完美地工作。非常感谢!
    • 谢谢。现在我已经绘制了我的树状图,但是树在图的中心分离太多,所以连接标签的边很长。有办法控制吗?
    猜你喜欢
    • 2014-03-01
    • 1970-01-01
    • 2014-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-17
    • 1970-01-01
    相关资源
    最近更新 更多