r - 使用 ggdendrogram 创建树状图

标签 r ggplot2 dendrogram ggdendro

我正在进行聚类分析并创建树状图。我使用了 ggdendrogram 包,并希望在 ggplot2 中使用它的输出。我想知道如何获得与叶子标签相同的 x 标签。谢谢

D1 <- as.dist(
  matrix(
    data=
    c(   0,  9, 3, 6, 11
      ,  9,  0, 7, 5, 10
      ,  3,  7, 0, 9,  2
      ,  6,  5, 9, 0,  8
      , 11, 10, 2, 8,  0)
    , nrow= 5
    , ncol = 5
    , byrow=TRUE
    ))

HCD1 <- hclust(d = D1, method="single", members=NULL)
library(ggdendro)
ggdendrogram(HCD1, theme_dendro=FALSE)

enter image description here

HCD1Data <- dendro_data(as.dendrogram(HCD1))

library(ggplot2)
p1 <-
    ggplot(data = HCD1Data$segments) +
    geom_segment(aes(x=x, y=y, xend=xend, yend=yend))
print(p1)

enter image description here

最佳答案

您可以使用scale_x_discrete()并设置您自己的标签。与树状图中相同的标签位于对象 HCD1Data 部分 labels 和列 label 中。

HCD1Data$labels
  x y label
1 1 0     1
2 2 0     3
3 3 0     5
4 4 0     2
5 5 0     4

p1+scale_x_discrete(labels=HCD1Data$labels$label)

enter image description here

关于r - 使用 ggdendrogram 创建树状图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16432746/

相关文章:

r - 使用 ggplot geom_text 的 wordlayout 结果

r - 无法让 alpha 与 ggplot2::geom_sf 在 sf linestring 对象上一起使用

r - 如何添加不同大小和颜色的 ggplot2 字幕?

matlab - Matlab 中的凝聚聚类

r - 如何将 data.frame 转换为树状结构对象,例如树状图

regex - 如何从相反方向在R中执行模式匹配?

r - 编写用户函数以返回每个变量的列位置、列名、模式和类

R:删除向量中的重复元素

r - 如何使用 `rstudioapi::insertText` 缩进

python - 聚类热图(带树状图)/Python