当用于for循环时,cairoDevice会生成黑色图像

时间:2017-11-08 17:07:59

标签: r ggplot2 cairo

这可能是cairoDevice包的错误。我正在使用这个软件包生成抗锯齿图,用于审美目的。

以下简化代码在作为for循环运行时不起作用:

for (j in 1:4) {

  Cairo(
    width = 12,
    height = 4,
    file = paste0("Test", j, ".png"),
    surface = "png"
  )

  qplot(1:j)

  dev.off()
}

上面代码的结果是4个完全黑色的.png图像,尺寸为12x4。

但是通过简单地选择循环的内容来运行它就可以正常工作(需要通过在控制台中将j递增1来手动迭代)。

看起来Cairo()根本不喜欢循环。我尝试使用Sys.sleep(2)为cairo执行提供额外的时间,但它不起作用。

1 个答案:

答案 0 :(得分:0)

不确定为什么它不起作用,但为什么要使用Cairo来生成png文件? R已经有png()设备。