R - Как мне добавить строки и текст в pheatmap?

Я создаю тепловые карты, используя pheatmap() использовать следующий код:

library(pheatmap)
pheatmap((data_matrix[,1:11]), cluster_rows = F, cluster_cols = F, scale="none",
     show_rownames=F, treeheight_row = F, 
     color=colorRampPalette(rev(c("red","white")))(50),
     main="values", cex.main=1.2)

Я хотел бы добавить текст и строки в некоторых позициях, чтобы указать группы и проценты.

abline() а также text() не работаю и с оверплоттингом я пока не добился успеха.

Каков наилучший способ сделать это?

Спасибо филипп

2 ответа

Решение

Если вы посмотрите на исходный код для pheatmap Функция вы увидите, что после некоторого возни с данными он вызывает heatmap_motor функция.

Глядя на эту функцию (она не экспортируется, поэтому вам придется набрать pheatmap:::heatmap_motor чтобы увидеть его исходный код) вы увидите, что он использует функции из grid пакет для построения тепловой карты, следовательно, используя abline или же text не сработает, но grid.abline или же grid.text будут!

Например (обратите внимание, что координаты были найдены методом проб и ошибок):

library(pheatmap)
library(grid)

a <- matrix(rnorm(100), 10, 10)
pheatmap(a, cluster_rows = F, cluster_cols = F)

grid.text(1:100, x=rep(seq(0.05, 0.91, length.out=10), 10), 
          y=rep(seq(0, 1, 0.1)+0.05, each=10))

Ты можешь использовать display_numbers вариант в pheatmap, Например,

library(pheatmap)

a <- matrix(rnorm(90), 9, 10)
txt <- matrix(sample(letters, replace = TRUE, 90), 9, 10)
pheatmap(a, cluster_rows = F, cluster_cols = F, display_numbers = txt)

Результат рисунок: pheatmap с текстами

Другие вопросы по тегам