生信人

找回密码
立即注册
搜索
热搜: 活动 交友 discuz
发新帖

0

收听

12

听众

319

主题
发表于 昨天 22:27 | 查看: 6| 回复: 0

背景

使用R语言,我们生成pdf,有时候第一页是空白页。

原因

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() 

效果图如下: 4.png

解决办法

上面的代码中,我们共画了两幅图,第一幅图为空白,第二幅图为散点图,对应到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()

效果图如下: 5.png 从图中可以看出,pdf只有一页了,后面画的图会覆盖前面的图,而且所有的图都只占用pdf的第一页

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

收藏回复 显示全部楼层 道具 举报

您需要登录后才可以回帖 登录 | 立即注册

QQ|Archiver|手机版|小黑屋|生信人 ( 萌ICP备20244422号 )

GMT+8, 2024-11-24 16:44 , Processed in 0.068986 second(s), 31 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表