1

我正在尝试heatmap.2使用 Rmarkdown 生成绘图并打印到 pdf_document。

无论我heatmap.2是从控制台还是在 .Rmd 中调用,情节都完全符合我的要求。但另外,我收到错误消息:

## Error in plot.new(): figure margins too large

我可以强制 knitr 继续使用 进行处理error=TRUE,但仍然会打印错误消息。我也设置了

echo=FALSE, warning=FALSE, message=FALSE

我认为这会抑制消息,但事实并非如此。我已经尝试invisible()按照这个问题使用,但它似乎什么也没做。

我还尝试通过调整我的绘图参数来“修复”错误,heatmap.2但没有成功——当我的一列lhei太瘦时,它似乎在抱怨。由于情节看起来不错,除非没有其他方法可以抑制此错误消息,否则我并不担心。

如何在我的 Rmarkdown pdf 中隐藏此错误消息?

4

1 回答 1

2

抑制错误消息的一种非常可靠的方法是将表达式包装在try(...,silent=TRUE). 作为一般示例,如果我们使用以下代码来设置绘图布局

plotIDs <- matrix(c(1:16), 4, 4, byrow = T)
layout(plotIDs, widths = c(0.5,1,1,1,1), heights = c(0.5,1,1,1,1))

之后调用frame()会产生错误:

R> frame()
Error in frame() : figure margins too large

try, 即

R> try(frame(),silent=TRUE)
R> 

不会在控制台中产生错误消息。

于 2015-01-29T19:14:50.743 回答