R中的热图如何调整列标签的大小?

Lay*_*yla 1 r heatmap

我有一个大约4000行和100列的data.matrix.我正在做一个数据热图,如:

data<-heatmap(data_matrix,Rowv=NA,Colv=NA,col=cm.colors(256),scale="column",margins=c(5,10))
Run Code Online (Sandbox Code Playgroud)

但我得到的问题是列中出现的标签太过分组,因此无法正确显示它们.如何调整热图的大小以便我可以看到列标签的值?我尝试用pdf打印它,但它只显示黑色条纹.谢谢

我包括热图的图形,我想要看的部分是右边部分的标签,但它们太靠近了. 在此输入图像描述

Ali*_*Ali 5

首先,最好将输出直接放到PDF文件中 - 您可以使用其他图像格式,但PDF是最好的,因为它是矢量输出,您可以根据需要进行缩放:

pdf("Your-file.pdf", paper="a4", width=8, height=8)
Run Code Online (Sandbox Code Playgroud)

然后最好使用pheatmap(=漂亮的热图)包.除了热图之外,它还可以使用颜色键制作更好的热图.最后,尽管pheatmap()函数尝试在有许多行时减小标签大小,但是对于非常多的行而言它会失败.所以我使用下面的代码真的很高 - 但不是太高 - 行数:

library(pheatmap)   
library(gplots)
if (nrow(table) > 100) stop("Too many rows for heatmap, who can read?!")
fontsize_row = 10 - nrow(table) / 15
pheatmap(table, col=greenred(256), main="My Heatmap", cluster_cols=F, 
         fontsize_row=fontsize_row, border_color=NA)
Run Code Online (Sandbox Code Playgroud)

您可以更改fontsize_col列标签.您有许多有趣的选项,比如display_numbers在热图的单元格中包含值.只要阅读?pheatmap.

这是由pheatmap()命令的默认参数生成的示例:

在此输入图像描述

最后请注意,显示屏上有太多行易于阅读,但无法用于打印.