pdf 函数中,有一个参数onefile ,  默认值为TRUE, 表示每张图片占用pdf 中的一页

当遇到pdf的前几页为空白时,是因为画图的代码产生了几张空白的图片

如果要消除前面的空白,只需要设置onefile = FALSE 就可以了,此时后面的图片会覆盖前面空白的图片,就实现了消除空白页的效果

代码示例:

默认情况下,一张图占用pdf的一页

pdf("test.pdf")
plot(1:5, type = "n", xlab = "", ylab = "", bty = "n", xaxt = "n", yaxt = "n")
plot(1:5)
dev.off() 

效果图如下:

上面的代码中,我们共画了两幅图,第一幅图为空白,第二幅图为散点图,对应到pdf中,pdf的第一页为第一幅图,所以为空白,第二幅图为一张散点图,对应pdf的第二页

设置onefile 参数为FALSE 后,散点图会覆盖前面的空白

代码示例:

pdf("test.pdf", onefile = FALSE)
plot(1:5, type = "n", xlab = "", ylab = "", bty = "n", xaxt = "n", yaxt = "n")
plot(1:5)
dev.off()

效果图如下:

从图中可以看出,pdf只有一页了,后面画的图会覆盖前面的图,而且所有的图都只占用pdf的第一页

当我们使用别人的画图代码时,可能会存在bug, 导致pdf的前几页为空,这是设置onefile = FALSE 就可以解决问题了

 

版权声明:本文为xudongliang原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/xudongliang/p/6970884.html