簡體   English   中英

R中的熱圖如何調整列標簽的大小?

[英]heatmap in R how to resize columns labels?

我有一個大約 4000 行和 100 列的 data.matrix。 我正在做數據的熱圖,例如:

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

但是我遇到的問題是列中出現的標簽過於分組,因此無法正確可視化它們。 如何調整熱圖的大小,以便查看列標簽的值? 我試圖用pdf打印它,但它只出現一條黑色條紋。 謝謝

我包括了一個熱圖圖,我想看到的部分是位於正確部分的標簽,但它們靠得太近了。在此處輸入圖片說明

首先,最好將您的輸出直接放入 PDF 文件 - 您可以使用其他圖像格式,但 PDF 是最好的,因為它是矢量輸出,您可以根據需要進行縮放:

pdf("Your-file.pdf", paper="a4", width=8, height=8)

那么最好使用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)

您可以更改列標簽的fontsize_col 您有許多有趣的選項,例如display_numbers ,可以在熱圖的單元格內設置值。 只需閱讀?pheatmap

這是pheatmap()命令的默認參數生成的示例:

在此處輸入圖片說明

最后請注意,太多的行在顯示器上很容易閱讀,但對打印毫無用處。

在 Rstudio 中,您可以輕松調整圖形窗口的大小,Rgui 也是如此。 或者,如果您將繪圖保存到文件,您可以為您的圖形使用更大的尺寸,例如在調用pdfpng時更大的widthheight

您可以使用 cexRow = 和 cexCol =。

您可以在??heatmap.2 中獲取更多信息

# Row/Column Labeling
margins = c(5, 5),
ColSideColors,
RowSideColors,
cexRow = 0.2 + 1/log10(nr),
cexCol = 0.2 + 1/log10(nc),
labRow = NULL,
labCol = NULL,
srtRow = NULL,
srtCol = NULL,
adjRow = c(0,NA),
adjCol = c(NA,0),
offsetRow = 0.5,
offsetCol = 0.5,
colRow = NULL,
colCol = NULL

如果您使用pheatmap ( https://www.rdocumentation.org/packages/COMPASS/versions/1.10.2/topics/pheatmap ),您可以通過調整cellheight參數來展開這些標簽。

如果您在 R notebook 中執行此操作,即使在運行代碼時整個熱圖不會顯示在您的輸出窗口中,當您使用filename參數將熱圖保存到您的計算機時,pheatmap 將自動計算最佳大小輸出文件,以便您的整個熱圖將顯示在您的輸出文件中。 如果此尺寸不符合您的喜好,您可以使用widthheight參數進行調整,但您不太可能想要這樣做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM