2011-11-22 23 views
4

當我運行這段代碼R:我可以在保存爲PDF時修復我的圖例嗎?

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上,並且問題出現在使用預覽和Chrome查看PDF中。我下載了Adobe Reader來查看它做了什麼,然後圖例文本和切點消失了,只剩下模型行。

回答

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'線寬,a 正數號碼,默認爲'1'。解釋是特定於設備的,並且一些設備不實現線寬小於1的設備。

Mac的默認R圖形設備必須是其中之一。 (FWIW,與您的代碼,我自己的Windows圖形設備顯示通過數據點的直線,就像在PDF格式。)

在任何情況下,它看起來像它通常使用更安全ltylwd到控制這個特定的細節。

相關問題