Как перевернуть узлы иерархической кластеризации в тепловую карту

У меня есть следующий код:

pheatmap::pheatmap(mtcars, clustering_method = "ward.D2")

Что создает сюжет, как показано ниже.

введите здесь описание изображения

Я хотел бы сделать это:

  1. Переместите узлы mpg и qsec после wt.
  2. Переместите узлы disp и hp в крайнее левое положение.

Это верный поступок? Если да, то как я могу этого добиться?

Обновить

Следуя предложению Марко Сандри ниже и с небольшими изменениями. Я придумал этот код, который выполняет эту работу:

phtmap <- pheatmap::pheatmap(mtcars)
col_dend <- phtmap[[2]]
col_dend <- dendextend::rotate(col_dend, order = c("hp", "disp",   "vs", "am", "cyl", "drat", "gear", "carb","wt", "mpg","qsec") )
pheatmap(mtcars, cluster_cols=as.hclust(col_dend))

person scamander    schedule 11.08.2020    source источник


Ответы (1)


Может быть, это то, что вы ищете.

library(pheatmap)
library(seriation)
library(dendextend)

phtmap <- pheatmap(mtcars)
col_dend <- phtmap[[2]]
col_dend <- rotate(col_dend, order = rev(names(mtcars)[get_order(col_dend)]))

# The pheatmap with the same clustering of heatmaply
pheatmap(mtcars, cluster_cols=as.hclust(col_dend))

введите здесь описание изображения

person Marco Sandri    schedule 11.08.2020
comment
@Marco_Sandri Спасибо. Но я не могу найти пакет, который дает функцию rotate(). library(seriation), похоже, этого не делает. Пожалуйста посоветуй. - person scamander; 12.08.2020
comment
@Marco_Sandri Спасибо. Нужен ли там пакет seriation? - person scamander; 12.08.2020