簡體   English   中英

增加R heatmap()函數中的行高

[英]Increasing row height in R heatmap() function

我有一個包含數百行和數十列的矩陣,並希望繪制熱圖。 如果我使用本機R函數:

heatmap(matrix(sample(1:10000),nrow=1000,ncol=10))

我得到了一個難以辨認的行標題的數字。 我假設生成的圖像符合當前繪圖設備的規格。 我想控制行的高度,即使這不能在我當前的設備上顯示。 只需寫入高大的PNG,只需在圖像上方/下方添加空白即可:

png( '/looks_the_same_with_whitespace.png', width=500, height=1500)
heatmap(matrix(sample(1:10000),nrow=1000,ncol=10))
dev.off()

有沒有一個干凈的方法來做到這一點,也許是通過欺騙R認為我有一個非常高的顯示器? 來自一個支持良好的庫的功能也是一個很好的答案。

不久前,我也遇到了同樣的問題。 來自gplots包的heatmap.2函數解決了這個問題。 但是,我不太清楚如何看待這么多基因(或者rowlabs)是有益的。 但正如你所要求的那樣你會做這樣的事情:關鍵是改變熱圖的layout (參見?heatmap.2,?layout),它在繪圖設備上的2x2網格上繪制熱圖(示例中的?布局解釋了這么多更好)。 之后,您可能希望通過相應地更改cexRow來更改cexrowlabs 您的情況可能需要稍微使用值來獲得所需的結果。

library(gplots)

row.scaled.expr <- matrix(sample(1:10000),nrow=1000,ncol=10)

png( 'heatmap_without_whitespace_smaller_row_lab.png', width=500, height=1500)
heatmap.2(row.scaled.expr, dendrogram ='row',
                 Colv=FALSE, col=greenred(800), 
                 key=FALSE, keysize=1.0, symkey=FALSE, density.info='none',
                 trace='none', colsep=1:10,
                 sepcolor='white', sepwidth=0.05,
                 scale="none",cexRow=0.2,cexCol=2,
                 labCol = colnames(row.scaled.expr),                 
                 hclustfun=function(c){hclust(c, method='mcquitty')},
                 lmat=rbind( c(0, 3), c(2,1), c(0,4) ), lhei=c(0.25, 4, 0.25 ),                 
                 )
dev.off()

暫無
暫無

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

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