首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ggtree中基于外部数据集的颜色标注

ggtree中基于外部数据集的颜色标注
EN

Stack Overflow用户
提问于 2018-11-02 10:03:53
回答 1查看 605关注 0票数 0

我有一个.tre格式的系统发育树和伴随的数据集。这棵树的确切形式并不重要,它只是一个随机的系统发育树。数据集有两列:names、和。

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

代码语言:javascript
复制
ggtree(RANDOMTREE) + geom_tippoint(pch=16, col=RANDOMDATA$color) + geom_tiplab(offset=0.1)

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

但是我想将基于树中物种的名称的颜色与数据集中的颜色进行匹配(它们是相同的格式,但顺序不同)。我还没弄明白呢。你能帮帮我吗?

非常感谢。

示例代码:

代码语言:javascript
复制
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))

我得到了什么:错标树

我想要的是:正确标记树

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-02 11:45:54

我可以得到正确的分组,但不能从球棒上得到正确的颜色

代码语言:javascript
复制
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来实现你想要的。

它采取排序的颜色,并使它与一个内置的颜色刻度。因此,如果标度以(红色,蓝色)开头,而你的系列是(蓝色,红色),那么它就按照这个顺序进行匹配。讲得通?

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53116424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档