首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用引导值注释ggtree对象?

如何用引导值注释ggtree对象?
EN

Stack Overflow用户
提问于 2018-10-23 19:02:17
回答 1查看 3.7K关注 0票数 2

我有一个phylo类的系统发育树,有24个提示和23个内部节点。我使用boot.phylo对这棵树和数据进行了引导分析,其中返回了23个引导值的向量。我从原始树创建了一个ggtree对象,现在正在尝试将引导值添加到节点中。我做错了什么,但我不知道是什么。

以下是我所做的:

代码语言:javascript
复制
gg.tr <- ggtree(mp.tree)
gg.tr + geom_label2(aes(subset=!isTip, label=bphylo$BP))

bphylo$BP是23引导值的向量。当我运行这段代码时,我会得到以下错误:

代码语言:javascript
复制
Error: Aesthetics must be either length 1 or the same as the data (47): subset, label, x, y

我不明白这个错误,因为我只想将引导值放在23个可能的47个位置上。

当我调用以下函数时,得到的值为23:

代码语言:javascript
复制
length(which(gg.tr$data$isTip==FALSE))

如果gg.tr$data$isTip==FALSE的长度为23,而我有23个引导值,为什么我会收到一个错误的信息,告诉我标签的长度是错误的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-23 20:12:29

您可以用geom_text对树进行注释。如果没有看到您的数据,就很难知道发生了什么,但是下面是一个具有可复制数据集的示例。

代码语言:javascript
复制
library(devtools)
devtools::install_github("GuangchuangYu/ggtree")

bs <- data.frame(nodename = c("t30", "t12", "t22", "t26", "t6", "t17", "t4","t7", "t9", "t1", "t8", "t25","t23",
                          "t28", "t10", "t20", "t3",  "t11", "t19", "t29", "t2","t18", "t24",
                          "t27", "t15", "t13", "t14", "t16", "t5","t21"), bootstrap = c(runif(30, 85, 98)), stringsAsFactors = F)
bs$bootstrap <- round(bs$bootstrap, digits = 0)
rownames(bs) <- NULL
nodesupport = c(round(runif(59, 65, 80), digits = 0))

set.seed(0)
tree <- rtree(30)
p <- ggtree(tree)
p <- p %<+% bs + geom_tiplab()
p <- p + geom_text(aes(label = bootstrap), hjust = 1, vjust = -0.4, size = 3) + geom_nodelab(aes(label = nodesupport)) # specify your node label here, looks like BP
p

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

https://stackoverflow.com/questions/52956181

复制
相关文章

相似问题

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