2

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

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

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

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

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

4

1 回答 1

4

有一种选择:

  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 链接。因此,当您单击叶子名称时,您会导航到它的图像。我认为这并不难做到。

于 2012-12-13T02:42:02.823 回答