[R] 保存pheatmap圖片對象到文件


一般我們使用pheatmap通過Rstudio交互得到的圖片在plots的Export導出即可,如何保存對象到文件呢?這個需求在自動化流程中很常見,作者似乎也沒說明。

生成示例數據:

test = matrix(rnorm(200), 20, 10)
test[1:10, seq(1, 10, 2)] = test[1:10, seq(1, 10, 2)] + 3
test[11:20, seq(2, 10, 2)] = test[11:20, seq(2, 10, 2)] + 2
test[15:20, seq(2, 10, 2)] = test[15:20, seq(2, 10, 2)] + 4
colnames(test) = paste("Test", 1:10, sep = "")
rownames(test) = paste("Gene", 1:20, sep = "")

看下數據亞子:
image.png

實現方法

接下來實現方法,分為兩步:
1.保存對象

library(pheatmap)
xx <- pheatmap(test)

2. 打開圖形設備重新畫
這個包使用的是grid圖形系統而非ggplot2,所以解決方法也是不同的。通過自定義函數來生成,也可一次繪制多個對象的圖形。

save_pheatmap_pdf <- function(x, filename, width=7, height=7) {
   stopifnot(!missing(x))
   stopifnot(!missing(filename))
   pdf(filename, width=width, height=height)
   grid::grid.newpage()
   grid::grid.draw(x$gtable)
   dev.off()
}

save_pheatmap_pdf(xx, "test.pdf")

image.png

Ref: https://stackoverflow.com/questions/43051525/how-to-draw-pheatmap-plot-to-screen-and-also-save-to-file


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM