Rmarkdown和半透明度

时间:2016-01-13 08:33:50

标签: r latex r-markdown sweave

过去我有一些半透明的问题,我通过在.Rprofile中添加这些行来解决它们:

setHook(packageEvent("grDevices", "onLoad"),
                function(...) grDevices::X11.options(type='cairo'))
options(device='x11')

所以现在一切都在RStudio完美运作。但是当我在Rmarkdown中使用render函数生成.html文件时,我再次收到此错误:

  

在grid.Call.graphics(L_polygon,x $ x,x $ y,index)中:
  此设备不支持半透明:仅报告一次   每页

我试图在RStudio中直接在png()设备中绘图并得到相同的错误。

所以我尝试了这个:

ggsave("image.png", device = Cairo_png)

使用cairoDevice库:它可以工作!

我试图强迫knitr使用Cairo_png作为设备。由于我遵循了文档,它应该是正确的方法。在我的Makefile中:

$(MAINDIR)/%.html:%.Rmd
        Rscript \
                -e "require(rmarkdown); require(knitr); require(cairoDevice)" \
                -e "knitr::opts_chunk[['set']](dev = Cairo_png)" \
                -e "knitr::opts_chunk[['set']](fig.width = 12)" \
                -e "knitr::opts_chunk[['set']](warning = FALSE, message = FALSE, cache = 2)" \
                -e "rmarkdown::render('$<', html_document(), output_dir = '$(MAINDIR)', intermediates_dir = '$(MAINDIR)')"

但是rmarkdown似乎没有使用Cairo_png作为设备,因为我仍然得到相同的警告。

所以我有两个问题,我只需要解决其中一个问题:1- png()设备不支持半透明,为什么? 2-我不能强制rmarkdown使用Cairo_png(支持半透明)。

0 个答案:

没有答案