ggtree 尖端和树枝着色的问题

问题描述 投票:0回答:2

我正在尝试使用 ggtree 绘制绘图 - 但是当我尝试将尖端点和分支着色时遇到一些问题。树独立地与这两个一起工作,但是当我一起尝试它们时,节点的

fill
被分支中的
color
参数覆盖,并且它们显示为灰色(或者它一起忽略它们并默认为相同的
NA
颜色?)。

这是产生该问题所需的最少代码:

p <- ggtree(rerooted_tree, aes(color = support))
p <- p %<+% my_DF + 
  geom_tippoint(aes(fill = as.factor(domains.present)))
p

变量

domains.present
是数据框中的一个字符列,如果它是
color
而不是像下面的代码中那样的
fill
,则可以完美工作。但是,在上面的代码中,如果
domains.present
未在
as.factor
中写入
aes
,我会收到一条错误消息,指出
Continuous value supplied to discrete scale

q <- ggtree(rerooted_tree)
q <- q %<+% All.my_DF + 
  geom_tippoint(aes(color = domains.present), size = 1)
q

我希望这只是一个语法问题,但我正在努力将一个 reprex 放在一起以在需要时添加。这是一个与this post非常相似的问题,但是那里的OP没有使用ggtree解决了这个问题(如果可能的话,我宁愿保持简单)。预先感谢您!

r ggplot2 ggtree
2个回答
1
投票

我最近遇到了同样的问题,在 aes() 之外定义分支颜色对我有用:

p <- ggtree(rerooted_tree, color = support)
p <- p %<+% my_DF + 
  geom_tippoint(aes(fill = as.factor(domains.present)))
p

0
投票

这是一篇旧帖子,但对于那些也偶然发现此线程寻找答案的人来说,请尝试一下 ggnewscale。在此示例中,用途为:

library(ggnewscale)  
p <- ggtree(rerooted_tree, aes(color = support))
p <- p %<+% my_DF + new_scale_color() +
geom_tippoint(aes(fill = as.factor(domains.present)))
p
© www.soinside.com 2019 - 2024. All rights reserved.