微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。