0

我有一个.tre格式和随附数据集的系统发育树。树的确切形式无关紧要,它只是一个随机的系统发育树。数据集有两列:名称颜色

在绘制这样的树时,我很可能会从随附的数据集中向树中添加彩色点(两种不同的颜色)。问题是当我使用以下代码时:

ggtree(RANDOMTREE) + geom_tippoint(pch=16, col=RANDOMDATA$color) + geom_tiplab(offset=0.1)

当然,它会为点着色,但颜色具有它们在随附数据集中的顺序。

但是我想将基于树中物种名称的颜色与数据集中的颜色进行匹配(它们的格式相同,但顺序不同)。我还没有弄清楚。你能帮我解决这个问题吗?

非常感谢。

示例代码:

source("https://bioconductor.org/biocLite.R")
biocLite("ggtree")
library(ggtree)

tree<-read.tree(text="(spec1,((spec2,(spec9,(spec3,spec5))),spec8,(spec6,(spec7,spec4))));")
dataset1<-data.frame("name" = c("spec1","spec2","spec3","spec4","spec5","spec6","spec7","spec8","spec9"), "colour" = c("red","red","blue","red","red","blue","blue","red","blue"))

ggtree(tree) + geom_tiplab() + geom_tippoint(pch=16, col=as.factor(dataset1$colour))

我得到了什么: 错误标记的树

我想得到什么: 正确标记的树

4

1 回答 1

0

我可以得到正确的分组,但不是正确的颜色

p <- ggtree(tree) + geom_tiplab()
p <- p %<+% dataset1 + geom_tippoint(pch=16, aes(col=colour))
p

我将此用作参考:https ://aschuerch.github.io/posts/2017-04-24-blog-post-1 。包有错误的文档。你可以通过切换“红色”和“蓝色”来实现你想要的:p

它采用颜色排序并将其与内置色标配对。因此,如果刻度以 (red, blue) 开头,而您的系列是 (blue, red),则按该顺序匹配。说得通?

编辑:安装这个包是一场噩梦,如果有像https://cran.r-project.org/web/packages/data.tree/vignettes/data.tree.html这样更简单的包,我建议尝试其他的出去。它卸载了我的许多核心包,例如 dplyr 和 data.table,它有大量的依赖项

于 2018-11-02T11:45:54.340 回答