我正在使用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)
对情节没有影响。
我需要这样做,以便我可以看到这些长列名称而不会减小我的绘图大小。我只想扩大底部的边距。
我已经弄清楚了,希望将来有人遇到这个问题会有所帮助。
当您使用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一个字符向量,它就会自动调整列。
pheatmap使用网格图形,因此基本图形功能par()不会产生影响。我发现调整参数cellheight和cellwidth手动可以帮助调整页面上热图的整体大小。或者以某种方式调整边距。
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)
| 归档时间: |
|
| 查看次数: |
2535 次 |
| 最近记录: |