3

我有一个用 R 创建的 ECDF 图,它在右下角有一个图例。我遇到的问题是 ECDF 图放置在 0.0 处的微弱灰色虚线水平线与我图例中的最后一项重叠。像这样:

在此处输入图像描述

目前我正在创造传奇:

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

有没有办法简单地将图例推高一点以避免重叠问题?理想的解决方案是以编程方式检测重叠并对其进行适当校正的解决方案,但如果不这样做,一些凭经验确定的像素偏移量可能就足够了。

4

3 回答 3

7

您可能希望inset=c(0,.01)在对 legend 的调用中使用(或其他一些值)

于 2012-12-18T01:58:39.717 回答
3
legend(x=1e+04, y=0.2, c("Original","Minus 30 minutes"), 
                       col=c("black","red"), 
                       lty=c("dashed","dotted"))
于 2012-12-18T02:00:49.577 回答
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")
于 2012-12-18T02:06:48.477 回答