R语言里的ggtree这个包可视化进化树有一个默认的顺序,如果想要改变枝的相对位置应该如何实现呢?通过查找ggtree作者写的帮助文档找到了对应的办法,可以使用
rotate()
函数
ggtree的帮助文档链接
http://yulab-smu.top/treedata-book/index.html
mtcars
df<-mtcars[,c(1,3:6)]
df
df.hclust<-hclust(dist(df))
library(ggtree)
ggtree(df.hclust)+
geom_tiplab(offset = 2)+
xlim(NA,280)+
geom_highlight(node = 34,fill="blue")
image.png
我们看到图上标记蓝色的一个分支默认是在最底下的,如果想要把这个分支放到顶上应该如何修改呢?可以直接用ggtree中的
rotate()
函数。rotate()
接受两个参数,一个是需要旋转的节点。另外一个就是树
ggtree(df.hclust)+
geom_tiplab(offset = 2)+
xlim(NA,280)+
geom_text(aes(label=node))
image.png
通过上图我们看到需要旋转的是33节点
p1<-ggtree(df.hclust)+
geom_tiplab(offset = 2)+
xlim(NA,280)
#geom_highlight(node = 34,fill="blue")
p2<-ggtree::rotate(p1,33)
p2+
geom_hilight(node=34,fill="blue")
image.png
这样就把这一大块放到上面去了。
细心的读者可能发现了,这里在使用rotate()这个函数的时候写法是
ggtree::rotate(p1,33)
,这样是为了使用指定包里的某个函数,因为R语言里的函数很多,有可能会重名,有时候你用到的函数可能并不是想实现功能的那个函数,所以比较保险的做法还是加上包的命名然后用两个冒号链接函数
ggtree(df.hclust)+
geom_tiplab(angle=90,offset = -70)+
layout_dendrogram()
image.png
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有