【问题标题】:hierarchical cluster labeling with plots带图的层次聚类标签
【发布时间】:2012-12-13 10:42:02
【问题描述】:

我有一个大约 20 个元素的距离矩阵,我用它在 R 中进行层次聚类。有没有办法用绘图或图片来标记元素,而不仅仅是数字、字符等?

因此,叶节点不会有数字,而是有小图或图片。

这就是我对这个功能感兴趣的原因。我有像这样的二维散点图(颜色表示密度)

http://www.pnas.org/content/108/51/20455/F2.large.jpg(注意这不是我自己的数据)

我必须分析数百个这样的二维散点图,并尝试将各种距离指标提供给 hclust。这个想法是快速(虽然粗略地)对二维图进行聚类以找出更大的模式,这样我们就可以最大限度地减少耗时的后续实验的数量。因此,最好用适当的二维图标记树状图叶。

【问题讨论】:

  • 你试过什么?你能添加一个可重现的例子吗?这可以帮助你stackoverflow.com/questions/5963269/…
  • @flodel 如果您阅读了这个问题,我想用图标记叶子。我不想使用字符串或颜色,而是想要小图片,因为我按模式对二维散点图进行聚类。
  • @agstudy 谢谢,不幸的是,我以前没有在 R 中看到过这个,这就是我问的原因。基本上,我的数据看起来像这样(这不是我的数据,顺便说一句):pnas.org/content/108/51/20455/F2.large.jpg 颜色表示密度...除了我有数百个,我正在尝试对这些进行聚类,以便我可以快速评估不同的行为类别......并且用适当的图标记树状图会非常有帮助
  • 也许这可以帮助你作为第一次尝试gastonsanchez.wordpress.com/2012/10/03/…

标签: r plot label cluster-analysis hierarchical


【解决方案1】:

有一个选择:

  1. 使用 as.dendrogram 转换您的 hclust
  2. 使用 dendrapply 通过树应用函数。该函数自定义叶子。

这里有一个例子,我给集群上色并更改节点的结构。

hc = hclust(dist(mtcars[1:10,]))
hcd <- as.dendrogram(hc)
mycols <- grDevices::rainbow(attr(hcd,"members"))
i <- 0 
colLab <- function(n) {
    if(is.leaf(n)) {
      i <<- i + 1
      a <- attributes(n)
      attr(n, "nodePar") <-
        c(a$nodePar, list(lab.col = mycols[i],lab.bg='grey50',pch=sample(19:25,1)))
      attr(n, "frame.plot") <- TRUE
    }
    n
  }
clusDendro = dendrapply(hcd, colLab)
# make plot
plot(clusDendro, main = "Customized Dendrogram", type = "triangle")

想法:

如果您尝试自定义节点标签以将其映射到 url 链接。因此,当您单击叶子名称时,您会导航到它的图像。我认为这并不难。

【讨论】:

    猜你喜欢
    • 2018-06-04
    • 1970-01-01
    • 2020-06-28
    • 1970-01-01
    • 2021-02-11
    • 2013-05-08
    • 2018-10-04
    • 2014-06-28
    • 2020-08-27
    相关资源
    最近更新 更多