基于 ggtree 中的外部数据集的着色标签
Colouring labels based on external dataset in ggtree
我有一个 .tre
格式的系统发育树和随附的数据集。树的确切形式并不重要,它只是一个随机的系统发育树。数据集有两列:names 和 colours.
绘制这样的树时,我很可能会从随附的数据集中向树添加彩色点(两种不同的颜色)。问题是当我使用以下代码时:
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))
我得到的:
wrongly labeled tree
我想得到什么:
correctly labeled tree
我可以得到正确的分组,但不能马上得到正确的颜色
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。
包有错误的文档。你可以通过切换 "red" 和 "blue" 来实现你想要的:p
它采用颜色顺序并将其与内置色标配对。因此,如果比例以(红色,蓝色)开头,而您的系列是(蓝色,红色),则它会按该顺序匹配。有道理吗?
编辑:安装这个软件包是一场噩梦,如果有像 https://cran.r-project.org/web/packages/data.tree/vignettes/data.tree.html 这样更简单的软件包,我建议您尝试其他软件包。它卸载了我的许多核心包,例如dplyr 和 data.table,它有大量的依赖项
我有一个 .tre
格式的系统发育树和随附的数据集。树的确切形式并不重要,它只是一个随机的系统发育树。数据集有两列:names 和 colours.
绘制这样的树时,我很可能会从随附的数据集中向树添加彩色点(两种不同的颜色)。问题是当我使用以下代码时:
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))
我得到的: wrongly labeled tree
我想得到什么: correctly labeled tree
我可以得到正确的分组,但不能马上得到正确的颜色
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。 包有错误的文档。你可以通过切换 "red" 和 "blue" 来实现你想要的:p
它采用颜色顺序并将其与内置色标配对。因此,如果比例以(红色,蓝色)开头,而您的系列是(蓝色,红色),则它会按该顺序匹配。有道理吗?
编辑:安装这个软件包是一场噩梦,如果有像 https://cran.r-project.org/web/packages/data.tree/vignettes/data.tree.html 这样更简单的软件包,我建议您尝试其他软件包。它卸载了我的许多核心包,例如dplyr 和 data.table,它有大量的依赖项