千家信息网

R语言中怎么用ggtree画圆形的树状图展示聚类分析的结果

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,今天就跟大家聊聊有关R语言中怎么用ggtree画圆形的树状图展示聚类分析的结果,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。今天的主要内容是实
千家信息网最后更新 2026年11月03日R语言中怎么用ggtree画圆形的树状图展示聚类分析的结果

今天就跟大家聊聊有关R语言中怎么用ggtree画圆形的树状图展示聚类分析的结果,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

今天的主要内容是实现下面这幅图
image.png

做完聚类分析通常可以选择树形图来展示聚类分析的结果,之前公众号也分享过一篇文章 R语言聚类树图小例子 如果样本数不是很多,可以选择矩形的树状图。但是样本数如果比较多,比如今天一位公众号的读者留言说他有160多个样本,这样矩形的树状图就会比较宽或者比较长。这个时候就可以选择用圆形的柱形图来展示。

那么圆形的树状图如何实现呢?我查找了一下相关资料。R语言包dendextend这个包可以实现,利用help(package="dendextend")查看帮助文档,能够看到其中的一个小例子

iris2<-iris[,-5]
species_labels<-iris[,5]
library(colorspace)
species_col<-rev(rainbow_hcl(3))[as.numeric(species_labels)]
d_iris<-dist(iris2)
hc_iris<-hclust(d_iris,method="complete")
iris_species<-rev(levels(iris[,5]))
iris_species
library(dendextend)
dend<-as.dendrogram(hc_iris)
dend <- color_branches(dend, k=3)

labels(dend) <- paste(as.character(iris[,5])[order.dendrogram(dend)],
"(",labels(dend),")",
sep = "")
circlize_dendrogram(dend)
image.png

但是这个后期美化起来好像不太方便。

还找到了一个参考链接是 http://talgalili.github.io/dendextend/articles/dendextend.html

介绍的也是 dendextend这个包的用法。

Y叔开发的ggtree包时用来可视化进化树的,我隐约记得好像也可以用来画聚类分析的树状图。所以我搜索 ggtree show cluster result 找到 http://yulab-smu.top/treedata-book/chapter9.html 这个应该是Y叔专门为ggtree写的一本书。这里写到直接将聚类分析的结果传递给ggtree()就可以,比如

library(ggtree)
hc <- hclust(dist(mtcars))
ggtree(hc)

这里我先用了 我之前在3.6.1版本上安装的ggtree,是不可以的。应该是需要更新到最新的ggtree版本。如何更新R包这里我没有仔细研究。我直接安装了R4.0.3,然后在这个R版本里安装ggtree

install.packages("BiocManager")
BiocManager::install("ggtree")

这个时候再运行上面提到的例子就可以直接得到结果

library(ggtree)
hc <- hclust(dist(mtcars))
ggtree(hc)
image.png
基本的美化

把树的形状改为圆形,添加样本的名称

ggtree(hc,layout = "circular")+
geom_tiplab2(offset=10)+
xlim(0,300)
image.png
接下来我们用鸢尾花的数据集试一下

鸢尾花数据集是150个样本,用圆形的图看下效果

df<-iris[,1:4]  
rownames(df)<-paste(iris$Species,1:150,sep="_")

hc<-hclust(dist(df))
library(ggtree)
help(package="ggtree")
ggtree(hc,layout="circular")+
xlim(0,5)+
geom_tiplab2(offset=0.1,
size=2)+
#geom_text(aes(label=node))+
geom_highlight(node = 152,fill="red")+
geom_highlight(node=154,fill="steelblue")+
geom_highlight(node=155,fill="green")+
geom_cladelabel(node=152,label="virginica",
offset=1.2,barsize = 2,
vjust=-0.5,color="red")+
geom_cladelabel(node=154,label="versicolor",
offset=1.2,barsize = 2,
hjust=1.2,color="steelblue")+
geom_cladelabel(node=155,label="setosa",
offset=1.2,barsize = 2,
hjust=-1,color="green")

最终的结果是


看完上述内容,你们对R语言中怎么用ggtree画圆形的树状图展示聚类分析的结果有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

圆形 结果 分析 样本 语言 内容 例子 版本 选择 公众 数据 时候 样本数 矩形 篇文章 鸢尾 鸢尾花 更新 接下来 名称 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网佳科技有限公司 高科技互联网 盈实互联网科技 互联网科技媒体 掌上梦互联网科技 科技大学互联网专业好不好 江苏南京365互联网科技 世界互联网科技公司市值排名 和信科技工业互联网 互联网科技公司有风险吗 想开互联网科技公司怎么样 天津腾达互联网科技有限公司 广州新华互联网科技学校电竞方面 特约风豹互联网科技为什么扣费 互联网科技圈年度人物 北京市互联网新科技 兰石爱特工业互联网科技分公司 安徽零酒互联网科技有限公司 互联网金融金融科技 高科技和互联网的现代国家 云信互联网科技有限公司 互联网科技巨头监管 奇士达互联网科技 创业天下互联网科技有限公司 互联网还是高科技吗 成都互联网科技公司工作好不好 科技类公司包括互联网吗 从那以后互联网科技有限公司 互联网科技的前景 陕西彩京云互联网科技有限公司
0