如何将使用ComplexHeatmap包创建的热图保存为png格式?

ahu*_*noo 6 r save

我使用 R 中的 ComplexHeatmap 包制作了热图。我想将地图保存在我的电脑上,然后运行以下代码:

df <- read.csv("/home/aahm/filename.csv")
View(df)

df1<- t(df[,2:ncol(df)])
colnames(df1) <- df[,1]
View (df1)
df2 <- scale(df1)

library(ComplexHeatmap)
library(RColorBrewer)
library(circlize)
mycols <- colorRamp2(breaks = c(0, 0.2, 0.4, 0.6, 1.0), 
                     colors = c('white', "green", "red", "magenta", "blue"))

png(file="/home/aahm/Desktop/filename_heatmap.png")
Heatmap(df1, width = unit(15, "cm"),
        name = "nucleotide diversity scores",
        row_names_gp = gpar(fontsize = 7), column_title = "Nucleotide Positions", row_title = '1000 Genomes populations',
        column_title_side = "bottom",
        col = mycols,
        show_column_dend = FALSE, cluster_rows = FALSE,
        column_order = order(as.numeric(gsub("column", "", colnames(df1)))),
        column_names_rot = 45,
)
dev.off()
Run Code Online (Sandbox Code Playgroud)

在我的桌面上创建了一个扩展名为 .png 的空文本文件,而不是带有地图的 png 文件。有人可以帮我找出我的代码有什么问题吗?

小智 7

根据ComplexHeatmap指南(https://jokergoo.github.io/ComplexHeatmap-reference/book/a-single-heatmap.html),您只需将热图保存为新变量,然后使用draw()函数创建绘图在 pdf 文件中。

 png(file="/home/aahm/Desktop/filename_heatmap.png")
 ht <- Heatmap(...)
 draw(ht)
 dev.off()
Run Code Online (Sandbox Code Playgroud)

您还可以使用 Heatmap 函数的一些附加参数,例如use_raster、raster_quality、raster_resize_mat、raster_by_magick等。


Pes*_*han 2

代码的顺序应该是这样的

png("test.png",width=3.25,height=3.25,units="in",res=1200)
Run Code Online (Sandbox Code Playgroud)

您的热图代码

dev.off()
Run Code Online (Sandbox Code Playgroud)

更新

保存您所需的尺寸。您需要尝试哪种分辨率最适合您。

png("test.png",width=3.25,height=3.25,units="in",res=1200)
Run Code Online (Sandbox Code Playgroud)