我使用 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等。
代码的顺序应该是这样的
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)