如果我更改文本的颜色,有没有办法让pheatmap(在 R 中)不使用新的彩色文本覆盖 row_names?默认情况下,行或列文本的颜色为黑色,但稍作调整,就可以更改文本的颜色,正如我在这篇文章中了解到的那样:pheatmap: change text color。但是,它只是用新颜色覆盖了黑色文本,当行数很多时,这是有问题的。此外,如果想将字体更改为粗体或字体大小,这个问题确实很明显。
这是一个可重现的示例:
library(pheatmap) ; library(grid)
data <- replicate(16, rnorm(16))
rownames(data) <- paste0("OTU", c(1:nrow(data)))
colnames(data) <- paste("Sample", c(1:ncol(data)))
data = as.data.frame(data)
data$regulation = rep(c("up", "down"), each = 8)
data$colors = ifelse(data$regulation == "up", "green", "red")
#Graphing
p = pheatmap(data[, 1:15])
cols = data[order(match(rownames(data), p$gtable$grobs[[5]]$label)), ]$colors #Assuming row labels are in grob 5
p$gtable$grobs[[5]]$gp = gpar(col = cols, fontsize = 20, fontface = "bold")
p
这是结果图:
有没有办法避免要写的原文(如背景中所见)?在尝试这样做时,我设置了show_rownames = FALSE并且所有这一切都覆盖了代码并且没有写入任何行名。
