温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

R语言ggtree如何按照指定的节点旋转树

发布时间:2021-11-22 15:24:18 来源:亿速云 阅读:279 作者:柒染 栏目:大数据

这篇文章给大家介绍R语言ggtree如何按照指定的节点旋转树,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

R语言里的ggtree这个包可视化进化树有一个默认的顺序,如果想要改变枝的相对位置应该如何实现呢?通过查找ggtree作者写的帮助文档找到了对应的办法,可以使用rotate()函数


 首先我们使用R语言内置的数据集mtcars做一个层次聚类
mtcars
df<-mtcars[,c(1,3:6)]
df
df.hclust<-hclust(dist(df))
   接下来使用ggtree对层次聚类的结果进行展示
library(ggtree)
ggtree(df.hclust)+
  geom_tiplab(offset = 2)+
  xlim(NA,280)+
  geom_highlight(node = 34,fill="blue")
 
R语言ggtree如何按照指定的节点旋转树  
image.png

我们看到图上标记蓝色的一个分支默认是在最底下的,如果想要把这个分支放到顶上应该如何修改呢?可以直接用ggtree中的rotate()函数。rotate()接受两个参数,一个是需要旋转的节点。另外一个就是树

 先通过geom_text()函数给每个节点添加上文字标签
ggtree(df.hclust)+
  geom_tiplab(offset = 2)+
  xlim(NA,280)+
  geom_text(aes(label=node))
 
R语言ggtree如何按照指定的节点旋转树  
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")
 
R语言ggtree如何按照指定的节点旋转树  
image.png

这样就把这一大块放到上面去了。

细心的读者可能发现了,这里在使用rotate()这个函数的时候写法是ggtree::rotate(p1,33),这样是为了使用指定包里的某个函数,因为R语言里的函数很多,有可能会重名,有时候你用到的函数可能并不是想实现功能的那个函数,所以比较保险的做法还是加上包的命名然后用两个冒号链接函数

 还有一个知识点是如果想要这个树的开口朝下(现在是开口朝又),可以加
ggtree(df.hclust)+
  geom_tiplab(angle=90,offset = -70)+
  layout_dendrogram()
 
R语言ggtree如何按照指定的节点旋转树

关于R语言ggtree如何按照指定的节点旋转树就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI