[英]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
來更改cex
的rowlabs
。 您的情況可能需要稍微使用值來獲得所需的結果。
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.