在保持树形图的同时重新排序heatmap.3中的列节点

时间:2016-05-30 04:34:09

标签: heatmap dendrogram

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.3中调用这个更新的树形图?

1 个答案:

答案 0 :(得分:0)

您的问题缺少一个自包含的可重复示例。所以我将使用mtcars数据。由于我现在正在使用heatmaply软件包,我将使用它给出答案(但您可以将热映射更改为所需的函数,代码也可以正常工作)。< / p>

# 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