R语言 如何在pheatmap中的主标题中的表达式中添加两个或多个新行

qxgroojn  于 2023-07-31  发布在  其他
关注(0)|答案(1)|浏览(133)

当我在pheatmap中使用它时,我有一个关于表达的小问题。
例如,我想在pheatmap图的主标题中添加一些详细信息。下面是我的可复制代码:

# main <- expression(bold(paste(
#   atop(CD4_CD69^"+", 
#        "\nReported human signature core methylation genes"~n[tiles]~" = 1999;
#        "~n[genes]~"= 89")
#   )))

main <- expression(bold(paste(
  CD4_CD69^"+", 
  "\nReported human signature core methylation genes", 
  "\n", n[tiles], " = 1999;", n[genes], "= 89"
  )))   

test <- matrix(rnorm(200), 20, 10)
test[1:10, seq(1, 10, 2)] <- test[1:10, seq(1, 10, 2)] + 3
test[11:20, seq(2, 10, 2)] <- test[11:20, seq(2, 10, 2)] + 2
test[15:20, seq(2, 10, 2)] <- test[15:20, seq(2, 10, 2)] + 4
colnames(test) <- paste("Test", 1:10, sep="")  
rownames(test) <- c(paste("CGene", 6:10, sep=""), 
                    paste("AGene", 1:5, sep=""), 
                    paste("BGene", 11:15, sep=""), 
                    paste("DGene", 16:20, sep=""))

library(pheatmap)

p1 <- pheatmap(test, main="pheatmap")

p2 <- pheatmap((test), cluster_row=FALSE, 
               main=expression(bold(paste(
                 atop(CD4_CD69^"+", 
                      "Reported human signature core methylation genes"~n[tiles]~" = 1999;
                      "~n[genes]~"= 89")
                 ))))

字符串
它工作得很好,虽然有一点错误信息。

但是这里的主标题信息比较长,所以似乎添加两行新的行,将句子拆分成三行比较好。

然而,众所周知,“\n”在表达式中不起作用。我可以在这里删除expression
但是我不知道还有什么更好的方法来解决我的问题。
我希望有人或Maven能给予我一些建议或解决方案。
先谢谢你。

gj3fmq9x

gj3fmq9x1#

一种方法是使用以下解决方法:
使用gridgridExtra软件包创建无标题图,然后添加多行文本:

library(pheatmap)
library(grid)
library(gridExtra)

# heatmap without a main title
p2 <- pheatmap(test, cluster_row = FALSE)

# multiline title
title_grob <- textGrob(label = "CD4_CD69+\nReported human signature core methylation genes\nn[tiles] = 1999; n[genes] = 89",
                       gp = gpar(fontsize = 14))

grid.newpage()
grid.draw(arrangeGrob(title_grob, p2$gtable, heights = c(1, 10)))

字符串


的数据

相关问题