2013-07-10 61 views
7

我試圖自動將一個圖例框放置在情節中,但我仍然遇到麻煩。我想將圖例框放置在圖的邊角附近,但是有一個小的填充/邊距。自動放置帶有邊距/填充的圖例框

使用預定義的位置,例如"topright""bottomleft",將圖例放置得太靠近或位於圖的邊界上,如here; ,我發現它令人驚訝地不安地繼續逐像素地嘗試到達盒子的好位置,如here所示。

我想知道是否有根據情節本身的寬度定位圖例框,而不是max/min值。有些東西會自動將關於p%的圖例置於接近指定角落的位置。無論如何要在R中這樣做?甚至可以將一些填充添加到預定義位置?當說明由關鍵詞放置從邊緣嵌入距離(S)爲情節 區域的一小部分:

回答

11

使用inset=選項legend

插圖。

如:

plot(1:10) 
legend("topleft","blah",inset=0.05) 

如果你想確保傳說是插圖從角落同樣的距離,取決於X:你的積Y的比例,你可以做的東西有點像更復雜:

plot(1:10) 
xyratio <- do.call("/",as.list(par("pin"))) 
inset.amount <- 0.05 
legend("topleft","blah",inset=c(inset.amount,inset.amount * xyratio)) 

但是,當您調整繪圖設備的大小時,這會分崩離析。

enter image description here

+1

如果你想 「滾你自己」,你可以嘗試:'傳說(參數( 'USR')[3] + 0.1 *(參數( 'USR')[4] -par( 'usr')[3]),par('usr')[4] -0.1 *(par('usr')[4] -par('usr')[3]),legend =「TEST」 –

+0

@DWin我實際上期待着這樣的事情,但只要'inset'在做這項工作,猜測它就足夠了。無論如何,感謝替代方案。 (: – Rubens

+1

@Rubens - 我已更新顯示另一個替代方案,它將允許您指定一個縮放到圖的x/y比率的插圖。 – thelatemail