我正在尝试使用 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解决了这个问题(如果可能的话,我宁愿保持简单)。预先感谢您!
我最近遇到了同样的问题,在 aes() 之外定义分支颜色对我有用:
p <- ggtree(rerooted_tree, color = support)
p <- p %<+% my_DF +
geom_tippoint(aes(fill = as.factor(domains.present)))
p
这是一篇旧帖子,但对于那些也偶然发现此线程寻找答案的人来说,请尝试一下 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