2012-12-13 60 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