使用R绘制带有悬挂叶的水平树状图?

5
我想创建一个横向标签的树形图,但是让叶子节点按照高度来悬挂,而不仅仅是掉落到图的边缘。

示例:

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

有没有关于如何编写这个程序的建议?

谢谢。


我认为你可以使用?dendrogram中的最后一个示例来实现类似的功能。 - Ferdinand.kraft
嗨,费迪南德,我承认我不明白。你能详细说明一下你的想法吗? - Tal Galili
1
使用edgetext属性,通过dendrapply为每个边设置。这只是一个想法,我现在没有时间去追求它。 :-( - Ferdinand.kraft
你看过这个链接吗:https://dev59.com/cmw15IYBdhLWcg3wWqV0?它讲解了如何使用`lattice`和`ggplot2`绘制树状图。 - nograpes
2个回答

4
您可以在as.dendrogram函数中更改hang的值。
par(mfrow = c(1,2))
hc <- hclust(dist(USArrests), "ave")
plot(hc)
plot(as.dendrogram(hc, hang=0.02), horiz = TRUE)

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


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