用挂叶绘制水平树状图? (R)

时间:2013-06-13 13:20:19

标签: r dendrogram hclust dendextend

我想创建一个带有水平标签的树状图,但是叶子根据它们的高度悬挂,而不是仅仅下降到图的边缘。

示例:

par(mfrow = c(1,2))
hc <- hclust(dist(USArrests), "ave")
plot(hc) # a plot with hanging branches
plot(as.dendrogram(hc), horiz = TRUE) # a horizontal plot, but the branches are not hanging

enter image description here

有关如何编程的任何建议吗?

感谢。

2 个答案:

答案 0 :(得分:3)

您可以更改hang功能中的as.dendrogram值。

par(mfrow = c(1,2))
hc <- hclust(dist(USArrests), "ave")
plot(hc)
plot(as.dendrogram(hc, hang=0.02), horiz = TRUE)

答案 1 :(得分:1)

为了记录,我实现了一个hang.dendrogram函数(在dendextend包中),允许在创建之后挂起树形图(并且不仅在从hclust更改为树形图时)。以下是如何使用它:

install.packages("dendextend")
library(dendextend)

dend <- as.dendrogram(hclust(dist(USArrests), "ave"))
par(mar = c(5,5,5,5))
plot(hang.dendrogram(dend), horiz = TRUE)

enter image description here