我尝试将热图保存为png。
png(paste(colnames(pt2)[jj], "_heatmap.png", sep=""), width = 465, height = 225, res = 300)
heatmap.2(S5, Rowv=F,Colv=F, scale="none", trace="none", col=rg, mar=c(3.5,0,3,0),
dendrogram = "none", key=TRUE, keysize=0.2, key.par=list(cex=0.1),
xlab="hour of the day", ylab = "day of the week",
density.info = "none", lmat=rbind(c(5, 4, 2), c(6, 1, 3)),
lhei=c(3, 4.5), lwid=c(0.1, 5, 1),
cexRow=1, cexCol=1, margins = c(3,0))
dev.off()
但是它仅在最大res = 100时有效。我还尝试将其保存到高度和宽度为10X的文件中,例如width = 4650,height =2250。但是然后我无法更改该键的字体大小,它太小且看不见。如何解决高分辨率问题?它显示了
Error in plot.new() : figure margins too large
Error in par(op) : invalid value specified for graphical parameter "pin"
答案 0 :(得分:1)
您的图片尺寸太小,无法容纳空白。请注意,png
的默认单位是像素。因此,您以225 px的高度(以300 dpi的分辨率)可以得到小于一英寸高的图像
作为一个最小的示例,这可行(当我们将单位指定为毫米时):
png("heatmap.png", width = 465, height = 225, units='mm', res = 300)
plot(1:10, 1:10, mar=c(3.5,0,3,0))
dev.off()
与此相反(以像素为单位)会引发与您相同的错误
png("heatmap.png", width = 465, height = 225, res = 300)
plot(1:10, 1:10, mar=c(3.5,0,3,0))
dev.off()