【发布时间】:2015-12-02 23:30:14
【问题描述】:
我正在尝试使用 ape 包中的 plot.phylo 命令为 R 中系统发育类型图的边缘(线)添加颜色。此示例适用于“扇形”类型图,但我希望该方法与“系统图类型”或其他类型相同。
library('ape')
hc <- hclust(dist(USArrests), "ave")
plot(as.phylo(hc), type="fan")
tip.color 选项结合 cutree 命令可以根据一组组为提示(标签)添加颜色。
hc.cuts <- cutree(hc, k=5)
plot(as.phylo(hc), type="fan", tip.color=rainbow(5)[hc.cuts])
edge.color 选项定义边缘的颜色,但在需要多种颜色时不以登录方式。
plot(as.phylo(hc), type="fan", tip.color=rainbow(5)[hc.cuts], edge.color=rainbow(5)[hc.cuts])
但是,一旦树状图的该分支用于给定组,我希望边缘与终端尖端颜色匹配。在给定的示例中,对于红色和蓝色组,第一级边缘将保持黑色(因为它朝向两个组:红色和蓝色),但超出此范围的边缘将与最终的尖端颜色相同。
我怀疑关键在于找出 as.phylo 对象中 $edge 值的顺序,但我自己无法弄清楚。谢谢。
【问题讨论】:
-
如果您不太可能得到满意的答案,我想让您知道还有dendextend 包和ggdendro 包,可能是其中之一这两个可以帮助你。它们也都很新。
-
嗨 Maj,Andrie 的 ggdendro 是第一个帮助在 ggplot2 中绘制树状图的软件包。它的局限性在于它没有考虑树的分支/节点/叶子的各种图形参数。 dendextend 有一个名为“as.ggdend”的函数(它实际上是 ggdendro 的一个分支),它确实考虑了树的更多图形参数。您可以在这里查看更多信息:cran.r-project.org/web/packages/dendextend/vignettes/…
标签: r dendrogram phylogeny dendextend