繁体   English   中英

系统发育树梢颜色

[英]Phylogenetic tree tip color

我有一棵在R上绘制的系统发育树。我想根据种的顺序为尖端边缘着色。 如何单独选择每个笔尖标签的颜色? 我首先尝试:

EdgeCols <- rep("black", Nedge(tree))
EdgeCols[which.edge(tree, tree$edge[1]) ] <- "red"
plot( tree, space = 30, assoc = AMat, 
            show.tip.label = T, gap = 1,  length.line = 0,  edge.color =EdgeCols1)

但是,此边缘的颜色不会改变。

谁能告诉我问题出在哪里?

我不确定您要做什么,但是这里是如何使用ape包装为系统发育的特定边缘着色的方法。 这是为所有边缘着色的代码:

library(ape)

# Simulate tree
ntax <- 20
tree <- rcoal(ntax)

# Color branches
colors <- rainbow(Nedge(tree))
plot(tree, edge.color=colors)

为所有终端分支着色:

# Color terminal branches
colors2 <- rep("black", Nedge(tree))
colors2[which(tree$edge[,2] %in% 1:20)] <- rainbow(ntax)
plot(tree, edge.color=colors2)

我还要指出,您的代码中存在明显的问题:

  1. 您有tree$edge[1] ,但是tree$edge是一个矩阵,因此不能使用一个值对其进行索引。
  2. which.edge函数需要尖端向量,并返回由这些尖端定义的单系进化枝中所有边缘的索引。 似乎您正在尝试给它一个单一的值,这没有任何意义。
  3. 您定义了EdgeCols ,但是在绘图函数中有了EdgeCols1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM