1

我正在使用 R 包 ggtree 研究系统发育树,并希望突出显示节点。

我的树存储在 p 中,我要突出显示的节点在 G10 中。

p <- ggtree(tree, right=T, layout="circular")
G10 <- findMRCA(tree, c("genome1","genome2","genome3","genome4"), type=c("node")) 

我像这样突出显示节点:

p + geom_hilight(node=G10, fill="forestgreen", extendto = 0.6, alpha=1)

我想用它alpha=1来获得漂亮、强烈的颜色,但是这种颜色会覆盖/隐藏树中的尖端,所以你看不到它们(见图)。有没有办法绘制这个,所以突出显示在树后面,这样我仍然可以看到提示?

这是现在的样子

编辑:我还没有找到一个好的解决方案,但我想出了一个暂时的修复方法:

创建两个图:树的透明图p + theme_transparent()和带有突出显示的树,并将p + geom_hilight(node=G10, fill="forestgreen", extendto = 0.6, alpha=1)透明图覆盖在 powerpoint 中突出显示的图上并保存。

4

1 回答 1

0

您可以调整树层和高光层的顺序。ggtree 继承了 ggplot2 的特性。您可以使用ggtree(tr)ggplot(tr) + geom_tree()来绘制您的树。所以你可以参考下面的代码。

library(ggtree)
library(ggplot2)

set.seed(1024)

tr <- rtree(20)

p <- ggplot(tr) +
     geom_hilight(node=24,alpha=1,fill="forestgreen") +
     geom_tree(layout="roundrect") +
     geom_tiplab(size=4, hjust=0)
p

在此处输入图像描述

于 2020-10-09T06:31:31.837 回答