在R中如何绘制漂亮的树状图?

5

我的树状图非常丑陋,几乎难以阅读,通常看起来像这样:

输入图片描述

library(TraMineR)
library(cluster)
data(biofam)
lab <- c("P","L","M","LM","C","LC","LMC","D")
biofam.seq <- seqdef(biofam[1:500,10:25], states=lab)

ccost <- seqsubm(biofam.seq, method = "CONSTANT", cval = 2, with.missing=TRUE)
sequences.OM <- seqdist(biofam.seq, method = "OM", norm= TRUE, sm = ccost,     
with.missing=TRUE)

clusterward <- agnes(sequences.OM, diss = TRUE, method = "ward")
plot(clusterward, which.plots = 2)

我想要创建的东西类似于以下内容,即一个圆形树状图,在其中可以仔细控制标签的大小,以便它们实际上可见: enter image description here 我该如何在R中实现这个功能?

为什么有人会对这个问题点踩,我真的不理解。 - Rich Scriven
@RichardScriven - 你怎么看出它被踩了?我只能看到总票数。 - histelheim
我认为特权随着1k声望而来。 - Rich Scriven
1个回答

9
以下方案可能不是最优解,但值得一试:
library(ape)
CL1 <- as.hclust(clusterward)
CL2 <- as.phylo(CL1)
plot(CL2, type="fan", cex=0.5)

在此输入图片描述

显然主要问题是有太多的对象,因此有太多的标签。要关闭标签,请使用参数show.tip.label=FALSE。您还可以通过使用no.margin=TRUE来消除边距,以占用整个设备:

plot(CL2, type="fan", show.tip.label=FALSE, no.margin=TRUE)

enter image description here


你能否也关闭标签?鉴于重叠情况,它们对图表的信息贡献不大。 - histelheim
这可能超出了范围,但是有没有简单的方法来剪枝树?我已经尝试过 cutree 以及 as.hclustmembers 参数,但似乎无法使其工作。 - histelheim
@histelheim,你最好提出一个新问题,这样更多的人就能回答你了。现在我还不确定最好的方法是什么。 - plannapus
你还有很多巧妙的解决方案适用于这个问题,这可能会对你有所帮助。 - plannapus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接