使用Pheatmap时裁剪的列标签

Ada*_*ice 3 plot r pheatmap

我正在使用pheatmap文档)绘制热图。我正在以一种非常简单的方式绘制矩阵:

pheatmap(mat, annotation_col=df, labels_col=rld$Infection_Line, fontsize_row=5, fontsize_col=7) 
Run Code Online (Sandbox Code Playgroud)

我的图的底部被截断,因此我无法在底部看到列名称。看起来像这样:

在此处输入图片说明

请注意,这不是热图2。

我已经尝试过这个问题这个问题的解决方案,以及我可以通过google和此功能的文档找到的其他东西。

我尝试使用par()和oma()以及cexRow增加边距。

margins=(x,y); par(mar=c(1,2,3,4)); par(oma=c(1,2,3,4))  
Run Code Online (Sandbox Code Playgroud)

对情节没有影响。

我需要这样做,以便我可以看到这些长列名称而不会减小我的绘图大小。我只想扩大底部的边距。

Ada*_*ice 5

我已经弄清楚了,希望将来有人遇到这个问题会有所帮助。

当您使用pheatmap的labels_col =参数时,会发生这种情况。在我的场景中(这是一个使用DESeq2的RNA-seq项目),有一个目标文件标识了样本(列),但是对于我的列标签,我使用了不同的列,因此标签更易于理解,因此我使用了

labels_col=myThing$ThisOtherColumn
Run Code Online (Sandbox Code Playgroud)

另一列实际上是一个包含字符和数字的字符串,但由于某种原因,它被作为整数向量读取。所以解决办法是

as.character(myThing$ThisOtherColumn)
Run Code Online (Sandbox Code Playgroud)

只要给labels_col一个字符向量,它就会自动调整列。


rmf*_*rmf 5

pheatmap使用网格图形,因此基本图形功能par()不会产生影响。我发现调整参数cellheightcellwidth手动可以帮助调整页面上热图的整体大小。或者以某种方式调整边距。

library(pheatmap)
dfr <- as.data.frame(t(data.frame(x=runif(10),y=runif(10),z=runif(10))))
md <- data.frame(cat1=sample(x=letters[1:4],10,replace=T),cat2=sample(x=letters[6:7],10,replace=T))
rownames(md) <- colnames(dfr)
pheatmap(dist(as.data.frame(t(dfr))),annotation_col=md,annotation_row=md)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

pheatmap(dist(as.data.frame(t(dfr))),annotation_col=md,annotation_row=md,
         cellheight=15,cellwidth=15)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明