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)おそらく、凡例への呼び出しで(または他の値)を使用したいと思うでしょう

于 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 に答える