前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R中极树状图实现

R中极树状图实现

作者头像
生信编程日常
发布2020-06-28 15:52:39
1.4K0
发布2020-06-28 15:52:39
举报

极树状图类似于系统发育图或者环形的聚类图,其效果如下图所示:

查了一下相关资料,可以通过以下两种方法实现。以下用mtcars数据为例。

1. ape包
代码语言:javascript
复制
library(ape)
data('mtcars')

new_mtcars <- mtcars[,1:7]
plot(as.phylo(hclust(dist(new_mtcars))),type="fan")
2. circlize和dendextend

用circlize_dendrogram画图,可以比上一种方法更精细的画图。

代码语言:javascript
复制
hc = hclust(dist(new_mtcars), method = 'complete') %>% as.dendrogram %>% set('labels_cex', c(0.8))

# 根据分支设置颜色
dend <- dend %>% 
   color_branches(k=4) %>% 
   color_labels

pdf('~/test.pdf', width=8, height = 8)
circlize_dendrogram(dend, labels_track_height = NA, dend_track_height = .4) 
dev.off()

根据数据某一列分组指定颜色:

代码语言:javascript
复制
hc = hclust(dist(new_mtcars), method = 'complete') %>% as.dendrogram %>% set('labels_cex', c(0.8))
test_colors <- c('#B1F100', '#FF7400', '#FFAA00', '#1240AB', '#009999')
labels_colors(hc) = test_colors[mtcars$gear[order.dendrogram(hc)]]

pdf('~/test2.pdf', width=8, height = 8)
circlize_dendrogram(hc, labels_track_height = NA, dend_track_height = .4)
dev.off
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. ape包
  • 2. circlize和dendextend
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档