R:以PDF格式保存时可以修复我的图例吗?

Gre*_*gor 4 pdf-generation r

当我运行此代码时

plot(c(0,1), c(0, 1), type = "n")
legend("topleft", legend = c("Model", "Data"),
           lwd = c(3, NA),
           pch = c(NA, 16),
           bty = "n", inset = 0.02,
           cex = 2)
Run Code Online (Sandbox Code Playgroud)

正如所料,我看到了这个: 好传奇

但是,当我将其包装在pdf("legendTest.pdf")...中时dev.off(),保存的PDF在该点上有一条线.

额外的线

我能纠正这个问题,还是只需要保存另一种格式?我在Mac上,问题在于使用Preview和Chrome查看PDF.我下载了Adobe Reader以查看它做了什么,然后传说文本和pch点消失了,只留下了模型行.

Jos*_*ien 5

您可以通过显式设置行类型(参数lty)来解决此问题,如下所示:

plot(c(0,1), c(0, 1), type = "n")
legend("topleft", legend = c("Model", "Data"),
       lwd = c(3, NA),
       lty = c(1, 0), # 0=blank, 1=solid (default). See ?par for more.
       pch = c(NA, 16),
       bty = "n", inset = 0.02,
       cex = 2)
Run Code Online (Sandbox Code Playgroud)

编辑

lwd论证的文档?par解释说:

'lwd'线宽,数,默认为'1'.解释是特定于设备的,并且一些设备不实现小于1的线宽.

Mac的默认R图形设备必须是其中之一.(FWIW,使用您的代码,我自己的Windows图形设备确实在数据点显示一条线,就像在pdf中一样.)

在任何情况下,看起来使用它通常ltylwd控制这个特定细节更安全.