我使用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中调用这个更新的树形图?
答案 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")
我们得到以下美丽(和互动)的情节: