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

时间:2011-11-22 21:06:56

标签: r pdf-generation

当我运行此代码时

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)

如预期的那样,我看到了这个: Nice legend

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

extra line

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

1 个答案:

答案 0 :(得分: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)

修改

lwd?par参数的文档解释了:

  

'lwd'行宽,号,默认为'1'。该             解释是特定于设备的,而某些设备则不是             实现小于一的线宽。

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

在任何情况下,使用lty而不是lwd来控制此特定细节通常会更安全。