我正在twoway.expr.005使用heatmap.2()绘制一个759*12的双矩阵
library(gplots)
dist2 <- function(x, ...){as.dist(1-cor(t(x), method="pearson"))}
heatmap.2(x=twoway.expr.005,col=bluered(75), main="Heatmap:759 genes\nTwosided Pval<0.05",tracecol= NULL, cexCol=0.8,cexRow=0.5,labCol=labs,distfun=dist2,scale="row",key=F,dendrogram='row',Colv=F)
Run Code Online (Sandbox Code Playgroud)
但是因为我正在设置dendrogram='row'(关闭列树状图)key=F,当我尝试将其保存为PDF时,我的热图在绘图标题和实际绘图之间留下了一个巨大的空白.

我根据建议尝试设置lhei.我使用过lhei = c(1,4),但它仍然显示标题和情节之间有很多空格:
heatmap.2(x=twoway.expr.005,col=bluered(75), main="Heatmap:759 genes\nTwosided Pval<0.05",tracecol= NULL, cexCol=0.8,cexRow=0.5,labCol=labs,distfun=dist2,scale="row",key=F,dendrogram='row',Colv=F,lhei=c(1,4))
Run Code Online (Sandbox Code Playgroud)
设置lhei = c(1,5)完全抛弃标题:
heatmap.2(x=twoway.expr.005,col=bluered(75), main="Heatmap:759 genes\nTwosided Pval<0.05",tracecol= NULL, cexCol=0.8,cexRow=0.5,labCol=labs,distfun=dist2,scale="row",key=F,dendrogram='row',Colv=F,lhei=c(1,5))
Run Code Online (Sandbox Code Playgroud)

我认为Heatmap.2的设计方式使得标题始终位于列树形图之上.因此,如果禁用列树形图,则会留下空白空间,但标题的位置仍然位于"禁用"列树形图上方.有没有办法破解代码,以便标题不位于列树形图上方(可能是这个问题的解决方案)?除了标题和实际情节之间的空间还有什么可以做的?
heatmap.2 的 lhei 参数可用于解决此问题。它采用长度为 2 的向量,表示绘图布局的行的相对高度。
Heatmap.2 使用布局功能将绘图区域分为四个块。本质上,您想要控制第一个相对于第二个的高度。为此,请将 lhei 设置为 c(1, 10) 之类的值。这将使热图所在的底行的高度是顶行的 10 倍,顶行通常具有行树状图和颜色键。
布局文档有更多详细信息。