在 R 中略微向上调整绘图图例

3

我创建了一张使用R制作的ECDF图表,右下角有一个图例。我的问题在于,ECDF图表在0.0处放置了一条淡灰色虚线,而这条线与图例中最后一项重叠了,如下所示:

enter image description here

目前,我是这样创建图例的:

legend("bottomright",c("Original","Minus 30 minutes"),col=c("black","red"),lty=c("dashed","dotted"))

有没有一种简单的方法将图例向上推一点,以避免重叠问题?理想的解决方案是能够自动检测重叠并适当地进行更正,但如果无法实现这一点,那么一些经验确定的像素偏移可能就足够了。

3个回答

7
你可能想在调用图例时使用inset=c(0,.01)(或其他值)。

.05或更大的“插入”坐标的y值可能更合适,但这是正确的想法。 - Matthew Lundberg

3
legend(x=1e+04, y=0.2, c("Original","Minus 30 minutes"), 
                       col=c("black","red"), 
                       lty=c("dashed","dotted"))

3
作为附注,legend函数还有一个很棒的trace=选项,您可以用它来记录图例创建的确切规格。您可以将此数据保存到对象中,并用其进行对自动格式化图例的更正。对于您当前的情况可能有些过头了,但这是一个非常好的小系统。
例如:
# plot a test plot
> plot(1:10)

# calculate the details for a legend in the bottomright, save the data
# and don't add the legend itself
> legdata <- legend("bottomright","boom",trace=TRUE,plot=FALSE)

> legdata
$rect
$rect$w
[1] 1.454288

$rect$h
[1] 1.65623

$rect$left
[1] 8.905712

$rect$top
[1] 2.29623


$text
$text$x
[1] 9.456811

$text$y
[1] 1.468115

# re-use the saved legend data to push the legend up slightly
> legend(list(x=legdata$rect$left,y=legdata$rect$top+0.5),"boom")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接