给定一棵树和一个数据框,将节点标签映射到浮点值,我想在节点顶部绘制带有彩色圆圈的树,其中颜色编码绝对值。不幸的是,ggtree
似乎完全忽略了注释。这是MCVE
> library(ggplot2)
> library(ggtree)
> library(phytools)
>
> tree.nwk <- '((seq140:0.13041945852,seq87:0.3002143527299996)n6:0.04491171,(seq163:0.21652831800000003,(seq28:0.0535884,seq34:0.060002925)n5:0.10335070999999998)n7:0.0963524)n8:0.11015875999999998;'
> tree <- read.newick(text=tree.nwk)
> tree
Phylogenetic tree with 5 tips and 4 internal nodes.
Tip labels:
[1] "seq140" "seq87" "seq163" "seq28" "seq34"
Node labels:
[1] "n8" "n6" "n7" "n5"
Rooted; includes branch lengths.
> tree.annotations <- data.frame(node=tree$node.label, value=rnorm(4))
> tree.annotations
node value
1 n8 2.15050556
2 n6 -0.04815265
3 n7 0.41109264
4 n5 0.42167331
> ggtree(tree) %<+% tree.annotations +
+ geom_nodepoint(aes(size=5, color=abs(value))) +
+ theme(legend.position="right")
如您所见,根本没有颜色。
答案 0 :(得分:0)
好像,ggtree不喜欢第一列称为node
> tree.annotations <- data.frame(name=tree$node.label, value=rnorm(4))
> ggtree(tree) %<+% tree.annotations +
+ geom_nodepoint(aes(size=5, color=value)) +
+ theme(legend.position="right")
这似乎是一个错误,因为docs没有指定此类限制。
我们已经演示了使用运算符%<%用新树更新树视图。在这里,我们将引入另一个运算符%<+%,该运算符将注释数据附加到树形视图。 唯一的要求是输入数据的第一列应与树的节点/提示标签匹配。
我advised的作者来解决这个问题