当我运行此代码时
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)
如预期的那样,我看到了这个:
但是,当我将其包裹在pdf("legendTest.pdf")
... dev.off()
中时,保存的PDF在该点上有一条直线。
我可以更正此问题,还是只需要保存另一种格式?我在Mac上,问题在于使用Preview和Chrome查看PDF。我下载了Adobe Reader以查看它做了什么,然后传说文本和pch点消失了,只留下了模型线。
答案 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
来控制此特定细节通常会更安全。