pheatmap:更改轴上文本颜色时不打印文本

问题描述

如果我更改文本的颜色,有没有办法让 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

这是结果图:

pheatmap: rows being overwritten

有没有办法避免写入原始文本(如背景中所见)? 为了尝试这样做,我设置了 show_rownames = FALSE 并且所有这一切都是超越代码并且没有写入行名。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...