问题描述
如果我更改文本的颜色,有没有办法让 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
并且所有这一切都是超越代码并且没有写入行名。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)