2015-05-22 111 views
3

我想將圖例添加到我的圖中,但我不明白爲什麼我無法控制其大小和/或位置。我知道有很多關於它的帖子,但我已經試圖重現解決方案,無論出於何種原因,它似乎在我的RStudio中不起作用。這裏是我的嘗試:在RStudio中打印太大的圖例框

  1. How to scale legend box or enlarge font size in the legend box in R

這裏是我的情節看起來像當我運行完全相同的代碼(你可以看到傳說中的情節中間):my plot-1

我也嘗試運行一些在RI中提供的示例代碼也得到了weired看的情節。舉例來說,我對劇情:

x <- seq(-pi, pi, len = 65) 
plot(x, sin(x), type = "l", col = 2, xlab = expression(phi), 
    ylab = expression(f(phi))) 
abline(h = -1:1, v = pi/2*(-6:6), col = "gray90") 
lines(x, cos(x), col = 3, lty = 2) 
ex.cs1 <- expression(plain(sin) * phi, paste("cos", phi)) # 2 ways 
utils::str(legend(-3, .9, ex.cs1, lty = 1:2, plot = FALSE, 
      adj = c(0, 0.6))) # adj y ! 
legend(-3, 0.9, ex.cs1, lty = 1:2, col = 2:3, adj = c(0, 0.6)) 

看起來是這樣的:my plot-2,我不知道爲什麼。我嘗試更改cexmar,但它沒有任何區別。

我是否需要額外的軟件包來控制圖例? (我裝了library(graphics),但它並沒有任何區別。)

編輯: 我複製到這裏我的跟進問題。

嗨Lyzander,謝謝你的迴應。我確實放大了我的情節,它看起來完全像鏈接的圖。這個數字是我將我的劇情保存到一個PNG文件時得到的。我複製你的代碼,在這裏,當我試圖挽救它得到了什麼:

enter image description here

,這是它的樣子變焦後:

enter image description here

正如你可以看到無論長相就像你得到的,我不明白爲什麼。我有最新版本的R,我更新了我的所有軟件包。

回答

5

只需使用一個keyword,而不是指定的精確座標,它會更好地工作:

x <- seq(-pi, pi, len = 65) 
plot(x, sin(x), type = "l", col = 2, xlab = expression(phi), 
    ylab = expression(f(phi))) 
abline(h = -1:1, v = pi/2*(-6:6), col = "gray90") 
lines(x, cos(x), col = 3, lty = 2) 
ex.cs1 <- expression(plain(sin) * phi, paste("cos", phi)) # 2 ways 
utils::str(legend(-3, .9, ex.cs1, lty = 1:2, plot = FALSE, 
        adj = c(0, 0.6))) # adj y ! 
legend('topleft', ex.cs1, lty = 1:2, col = 2:3, adj = c(0, 0.6)) 

在這種情況下,我使用的topleft關鍵字,你可以看到它看上去很不錯:

enter image description here

如果您指定cex它確實使圖例更小,如下所示:

x <- seq(-pi, pi, len = 65) 
plot(x, sin(x), type = "l", col = 2, xlab = expression(phi), 
    ylab = expression(f(phi))) 
abline(h = -1:1, v = pi/2*(-6:6), col = "gray90") 
lines(x, cos(x), col = 3, lty = 2) 
ex.cs1 <- expression(plain(sin) * phi, paste("cos", phi)) # 2 ways 
utils::str(legend(-3, .9, ex.cs1, lty = 1:2, plot = FALSE, 
        adj = c(0, 0.6))) # adj y ! 
legend('topleft', ex.cs1, lty = 1:2, col = 2:3, adj = c(0, 0.6)) 
legend('topright', ex.cs1, lty = 1:2, col = 2:3, adj = c(0, 0.6), cex=0.75) 

enter image description here

此外,當你看看Rstudio圖表確保你打的變焦按鈕。它更能代表產出。

+0

我不得不回答你的評論作爲「問題的答案」,以便我可以附上圖像。 – Justyna

+1

@justyna感謝您的回覆。所以,問題在於當你繪製它的時候你不保存它。使用'cex'來讓你的圖例儘可能小(你會發現在你的輸出中右邊的圖例更小,即'cex'參數可以工作),然後使用下面的命令保存你的圖形:'png(height = 1200 ,width = 1500,po​​intsize = 15,file =「mygraph.png」)'。根據你想要的圖像的大小播放高度和寬度,'pointsize'將處理圖例中的文本大小。增大它的尺寸。有點玩耍,你會按需要製作。讓我知道事情的後續。 – LyzandeR

+0

此外,我建議你編輯你的問題,並添加你在答案中提供的信息。主持人將刪除這樣的答案,你很可能會得到downvotes(而不是我),以及一個答案,這不是一個真正的答案。 – LyzandeR