r语言 - global.par = TRUE 在 rsweave 文档中的 knitr for bg 中不起作用



我需要更改我的 R Sweave 文档生成的所有 tiff 图像的背景,并遇到了与此处描述相同的问题:

尊重针织机的全球选择

但是使用 par(bg = ),据说它正在根据注释工作。

女工程师:

documentclass{article}
begin{document}
<<setup, cache = FALSE>>=
opts_chunk$set(dev = c('pdf','tiff'))
opts_knit$set(global.par = TRUE)
par(bg='cyan')
@
<<>>=
plot (3,3)
@
end{document}

(我不允许发表评论,否则我会留在那个帖子上。

根据这里的例子,我也尝试使用钩子:https://github.com/yihui/knitr/blob/master/inst/examples/knitr-graphics.Rnw

knit_hooks$set(par=function(before, options, envir){
if (before) par(bg='cyan')
})

但这也没有用。

唯一有效的方法是在每个块中设置参数,例如:

<<test, dev = 'tiff'>>=
par(bg = 'cyan')
plot(3,2)
@

(我实际上想要白色背景,但用颜色测试更容易。顺便说一句,不是我选择使用 TIFF 的。

对正在发生的事情有什么想法吗?

提出的 MWE 并不意味着global.par不适用于bg。绘图不使用指定背景颜色的原因是global.par = TRUE仅影响后续块。

Knitr 的设置必须在任何依赖于这些设置的块处于活动状态之前设置在块中。[来源]

您不能依赖全局选项在您设置的块中应用。

以下示例演示了在后面的块中设置背景颜色会使绘图使用它:

documentclass{article}
begin{document}
<<setup, cache = FALSE>>=
opts_knit$set(global.par = TRUE)
@
<<>>=
par(bg='cyan')
@
<<>>=
plot (3,3)
@
end{document}

相关内容

最新更新