2016-05-30 49 views
1

enter image description here重新排序列節點,同時保持樹狀

我已經生成使用heatmap.3此熱圖。聚類是基於樹形圖執行的,但爲了演示的目的,我想重新排列節點,使得在保持樹狀圖的同時保留深藍色並保持深紅色。我讀過有關重新排序: newdendro < -reorder(as.dendrogram(myclust(mydist(heatdata.scaled))),10:1,agglo.FUN = colSums)

但colSums(heatdata.scaled )未存儲在樹狀圖中。我如何 1)使用colSums(heatdata.scaled)重新排序節點 2)在heatmap中調用此更新的樹狀圖。

回答

0

你的問題是缺少一個自包含可重複的例子。所以我會使用mtcars數據。因爲我現在正在研究heatmaply包,所以我會給出一個使用它的答案(但是您可以將heatmaply更改爲所需的功能,並且代碼的工作原理也是一樣)。

# get data 
x <- mtcars 
# row dend: 
hc_r <- as.dendrogram(hclust(dist(x))) 
# col dend: 
hc_c <- as.dendrogram(hclust(dist(t(x)))) 

# weights and reordering 
wts_r <- rowSums(x) 
wts_c <- colSums(x) # apply(x, 2, mean) 

hc_r <- rev(reorder(hc_r,wts_r)) 
hc_c <- reorder(hc_c,wts_c) 

x2 <- x[order.dendrogram(hc_r), 
     order.dendrogram(hc_c)] 

# plot 
library(heatmaply) 
heatmaply(x2, dendrogram = "none") 

,我們得到以下美麗(和互動)劇情:

enter image description here