R中的高分辨率热图

4

我使用以下的 R 代码,得到了一张非常好的 热力图

png( "test-8.png", width =800 , height =750 )
heatmap(1-cor(df),distfun=function(x){as.dist(x)},symm=F,Rowv=NULL, Colv=NULL)
dev.off()

但是它的分辨率相当低。经过谷歌搜索,我找到了可能的解决方案:

png( "test-8.png", width =800 , height =750,res=600 )
heatmap(1-cor(df),distfun=function(x){as.dist(x)},symm=F,Rowv=NULL, Colv=NULL)
dev.off()

很不幸,代码执行后我收到了错误信息:

Error in par(op) : invalid value specified for graphical parameter "pin"
Calls: heatmap -> par
Execution halted

我该如何管理它?任何建议都将不胜感激。


2
不过,如果您能使这个可重现就更好了。 - David Arenburg
1
你试过增加高度和宽度吗?当你将图像缩小到小于2x2英寸时,你还能期望发生什么其他的事情呢? - rawr
@rawr 太棒了!这正是原因。 - Denis
2个回答

2
您的设置可能会将pin大小降低到允许的最小值以下(仍在寻找相关文档)。请尝试使用以下内容。您可能需要加载grid包才能使单位参数起作用。
png("high_res.png", width = 4, height = 4, units = 'in', res = 600)
heatmap(1-cor(df),distfun=function(x){as.dist(x)},symm=F,Rowv=NULL, Colv=NULL)
dev.off()

你的代码稍作调整(我使用 width = 6, height = 6)后,对我来说完美运行。 - Denis

0

我遇到了同样的问题,然后运行了以下代码:

par()

有很多项被显示出来。其中之一是$pin,它有两个值。其中一个是负数。我尝试了以下方法,

par(pin=c(0,0))

这似乎解决了问题。我仍然不知道这意味着什么,以及为什么会出现错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接