2013-07-10 41 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