我一直在尝试使用 R 中的包绘制带有颜色编码的分支和提示的树。这是使用Anolis蜥蜴ggtree
树的示例代码。
library(ggtree);library(tidyverse);library(ape)
anole.tree<-read.tree("http://www.phytools.org/eqg2015/data/anole.tre")
svl <- read.csv("http://www.phytools.org/eqg2015/data/svl.csv",row.names=1)
cls<-list(clade1=c("baleatus","barahonae","ricordii","eugenegrahami","christophei","cuvieri"),
clade2=subset(anole.tree$tip.label,!(anole.tree$tip.label %in% c("baleatus","barahonae","ricordii","eugenegrahami","christophei","cuveri"))))
anole.tree_new<-groupOTU(anole.tree,.node=cls)
ggtree(anole.tree_new,layout="circular",ladderize=TRUE)+
geom_tree(aes(color=group))+
scale_color_manual(values=c("blue","red"))+
geom_tiplab(size=0.8,aes(color=group))+
theme(legend.position = c(0.9, 1),
legend.justification = c(0,1),
legend.title=element_text(size=7),legend.text=element_text(size=7))
我遇到的问题是生成的图包含一个文本元素(一个小的“a”)作为图例的一部分。我一直无法弄清楚如何从图例中省略这个文本元素。我想保留图例本身,但我不希望在上例中与红线和蓝线一起绘制的红色和蓝色“a”。
通常它就像不将颜色参数设置为元素标签 (geom_tiplab) 中的 aes 一样简单。但是,如果我不调用 aes 下的组颜色...
ggtree(anole.tree_new,layout="circular",ladderize=TRUE)+
geom_tree(aes(color=group))+
scale_color_manual(values=c("blue","red"))+
geom_tiplab(size=0.8,color=group)+
theme(legend.position = c(0.9, 1),
legend.justification = c(0,1),
legend.title=element_text(size=7),legend.text=element_text(size=7))
我收到一条错误消息,提示找不到对象“组”。所以它似乎不像普通的ggplot那么简单。