在 heatmap.2 中将行标签设置为斜体

Make row labels italic in heatmap.2

我正在尝试使用 R 函数 heatmap.2 将我的行标签设置为斜体。没有默认选项,我无法通过设置 par(font=3) 来解决问题。如何在 heatmap.2 中将行标签设置为斜体?

set.seed(123)
data = matrix(sample(100), nrow=10, ncol=10)
rownames(data) = c("A", "B", "C", "D", "E", "F", "G", "H", "I", "J")

library(gplots)

heatmap.2(data,
           Colv=TRUE,
           Rowv=TRUE,
           xlab=NA,
           ylab=NA)

您可以使用 labCollabRow 参数传递给 heatmap.2 来传递标签。我们只需要弄清楚如何将它们作为 plotmath 表达式列表传递。我总是觉得这很痛苦,因为我这样做的次数不够多,无法记住适当的咒语,但能够通过调整 this R-help answer 将代码放在一起。请注意,矩阵需要有列名,我在下面的代码中添加了这些名称

library(gplots)

# Fake data
set.seed(123)
data = matrix(sample(100), nrow=10, ncol=10)
rownames(data) = c("A", "B", "C", "D", "E", "F", "G", "H", "I", "J")
colnames(data) = 1:ncol(data)

heatmap.2(data,
          Colv=TRUE,
          Rowv=TRUE,
          labCol=as.expression(lapply(colnames(data), function(a) bquote(italic(.(a))))),
          labRow=as.expression(lapply(rownames(data), function(a) bquote(italic(.(a))))),
          xlab=NA,
          ylab=NA)