2012-12-13 59 views
2

我有一个约20个元素的距离矩阵,我正用它来在R中进行分层聚类。有没有一种方法可以用一个图或图片来标记元素,而不仅仅是数字,字符等?分层集群标记的情节

因此,代替具有数字的叶节点,它会有小块图或图片。

这就是为什么我对这个功能感兴趣。我有这样的2-d散点图(颜色表示密度)

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

我来分析几百个这样的2-d散点图,并正尝试了各种距离度量,我正在喂hclust。这个想法是快速(尽管粗略地)将2-D图分组以找出更大的图案,因此我们可以最小化耗时的后续实验的次数。因此,用适当的2-D图标记树状图叶子是理想的。

+0

你试过了什么?你可以添加一个可重复的例子。这可以帮助你http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – agstudy

+0

@ flodel如果你读了这个问题,我想标记叶子的情节。我不想使用字符串或颜色,因为我正在按照模式对二维散点图进行聚类,所以我想要小图片。 – Asker

+0

@agstudy谢谢,不幸的是,我之前没有在R中看到过这个,这就是为什么我问。基本上,我有这样的数据(这不是我的数据,顺便说一句):http://www.pnas.org/content/108/51/20455/F2.large.jpg颜色表明密度...除了我有数以百计的这些,我试图将它们聚类在一起,以便我可以快速评估不同类别的行为......并且将树状图标记为适当的地块非常有帮助。 – Asker

回答

4

有一个选项:

  1. 使用as.dendrogram
  2. 使用dendrapply在树中应用功能将您的hclust。该功能定制叶。

这里是一个例子,其中我为我的群集着色,并且改变了节点的chape。

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") 

enter image description here

想法:

如果试图自定义节点标签给它的地图的网址链接。所以当你点击叶子名称时,你可以导航到它的图像。我认为这并不难。

+0

非常感谢您的支持,我使用了您的链接中的A2R代码 – Asker