如何在ggtree中为分组的分支末端标签指定自定义颜色
指定ggtree分支末端标签的自定义颜色
嘿,这个问题我太熟了!你已经通过color=place实现了按分组给末端标签上色,但默认用的是ggplot2的随机调色板。要指定自定义颜色,只需要在你的绘图代码里加上scale_color_manual()函数,手动映射每个分组对应的颜色就行。
修改后的完整代码
library(ggtree) tree <- read.tree(text="(A,(B,C));") dd <- data.frame(taxa=c("A","B","C"), place=c("s1","s1","s2")) p <- ggtree(tree) p <- p %<+% dd + geom_tiplab(aes(color=place)) + # 手动指定分组对应的颜色 scale_color_manual(values = c(s1 = "black", s2 = "red")) p
关键说明
scale_color_manual()的values参数需要传入一个命名向量:向量的名字要和你的place列里的分组值(s1、s2)完全匹配,对应的值就是你想要的颜色。- 颜色可以用英文名称(比如
"black"、"red"),也可以用十六进制颜色码(比如"#000000"代表黑色,"#FF0000"代表红色),灵活性很高。 - 如果后续有更多分组,只需要在这个向量里继续添加
分组名 = "颜色值"的条目就可以了。
内容的提问来源于stack exchange,提问作者Calli
相关产品推荐
相关产品推荐

