gpt4 book ai didi

r - 树状图边缘(分支)颜色匹配尖端(叶)颜色(猿包)

转载 作者:行者123 更新时间:2023-12-04 10:45:30 27 4
gpt4 key购买 nike

我正在尝试使用 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 值的顺序,但我自己无法弄清楚。谢谢。

最佳答案

正如@maj 在评论中建议的那样,dendextend如果您不介意使用该软件包,可以帮助您。它非常灵活,有大量的文档和小插曲。

这是一个从 denextend FAQ 最小化改编的示例.

# install.packages("dendextend")
# install.packages("circlize")

library(dendextend)
library(circlize)

hc <- hclust(dist(USArrests))
dend <- as.dendrogram(hc)

num_clades <- 5

dend <- dend %>%
color_branches(k=num_clades, col=rainbow) %>%
color_labels(k=num_clades, col=rainbow)

par(mar = rep(0, 4))
circlize_dendrogram(dend, dend_track_height = 0.8)

它输出

enter image description here

关于r - 树状图边缘(分支)颜色匹配尖端(叶)颜色(猿包),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32438158/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com