【发布时间】:2020-06-27 15:12:56
【问题描述】:
我在使用 ggtree 标记树中的单个提示时遇到问题。我正在尝试使用 geom_hilight 和 geom_cladelabel 突出显示和标记树中的节点。这似乎适用于具有超过 1 个树尖的节点,但是当我尝试标记单个提示时,我收到一条警告消息并且该提示没有被标记。
例子:
library(dplyr)
library(ggtree)
library(dplyr)
library(ggtree)
#Create tree
set.seed(123)
tree <- rtree(30)
ggtree(tree)
#Highlight and label clade
ggtree(tree) + geom_text(aes(label=node)) + geom_tiplab(size=3, offset=0.1) +
geom_hilight(node=3, fill="steelblue", alpha=0.5) +
geom_hilight(node=38, fill="pink", alpha=0.5) +
geom_cladelabel(node=38, label="clade 2", align=T,
color='black', fontsize=4)
如您所见,我可以使用 geom_hilight 突出显示节点 38 和 3。我还将节点 38 标记为带有 geom_cladelabel 的文本“Clade 2”。
但是,当我尝试使用 geom_cladelabel 标记节点 3 时,我收到一条警告消息:
#Highlight and label single tip
ggtree(tree) + geom_text(aes(label=node)) + geom_tiplab(size=3, offset=0.1) +
geom_hilight(node=3, fill="steelblue", alpha=0.5) +
geom_hilight(node=38, fill="pink", alpha=0.5) +
geom_cladelabel(node=3, label="clade 1", align=T,
color='black', fontsize=4) +
geom_cladelabel(node=38, label="clade 2", align=T,
color='black', fontsize=4)
Warning messages:
1: In max(sp.df$x, na.rm = TRUE) :
no non-missing arguments to max; returning -Inf
2: In min(y) : no non-missing arguments to min; returning Inf
3: In max(y) : no non-missing arguments to max; returning -Inf
4: In max(sp.df$x, na.rm = TRUE) :
no non-missing arguments to max; returning -Inf
5: In min(y) : no non-missing arguments to min; returning Inf
6: In max(y) : no non-missing arguments to max; returning -Inf
有没有一种方法可以像 clade_geomlabel 对常规节点一样标记单个提示?
感谢任何帮助。
【问题讨论】:
-
嗨..我尝试时实际上没有这样的错误。此外,您应该设置一个种子,以便可以重现数据和错误。我在单个节点上尝试过它并且它有效,我在 R 3.6.1 中的 ggtree_1.16.6 dplyr_0.8.3
-
嗨,SW,我更新了我的问题。我也运行与您相同的版本。我现在设置了一个种子,所以你可以尝试复制我的问题。
-
感谢您的更新。我仍然没有得到错误。我在下面放置了我的会话信息,并检查了一些通过命名空间加载的包。这些可能会给您带来问题
标签: r ggplot2 dplyr geom-text ggtree