2

m1とm2の2つの方法で返された結果を同じ図にプロットしたいと思います。私の特定のケースでは、最初のメソッドのラベルは式であり(添え字があるため)、2番目のメソッドのラベルは2行にあります(長いため)。ただし、次の2つの要件があると機能しません。

l <- list("m1"=list(data=1:10, col=2, label=expression(paste("method 1 (", X[a], ")"))))
l[["m2"]] <- list(data=rep(3,10), col=3, label="method 2 (with a\nlong explanation)")
plot(l[["m1"]]$data, col=l[["m1"]]$col); points(l[["m2"]]$data, col=l[["m2"]]$col)
legend("topleft", legend=c(l[["m1"]]$label, l[["m2"]]$label), col=c(l[["m1"]]$col, l[["m2"]]$col), pch=1)

凡例からわかるように、2番目のラベル(2行に1つ)が最初のラベルと重なっています。

最初のラベルに式を使用しない場合、問題は解消されます。

legend("topleft", legend=c("method 1 (Xa)", l[["m2"]]$label), col=c(l[["m1"]]$col, l[["m2"]]$col), pch=1)

2番目のラベルが1行にある場合も、この問題は解消されます。

legend("topleft", legend=c(l[["m1"]]$label, "method 2 (with a long explanation)"), col=c(l[["m1"]]$col, l[["m2"]]$col), pch=1)

ただし、実際には式と2行の両方が必要です。何か案が?

ps:LubuntuでR2.14.1を使用しています。

4

1 に答える 1

3

y.intersepおよびcex パラメーターで遊ぶことができます。

legend("topleft", 
       legend=c(l[["m1"]]$label, 
                l[["m2"]]$label),
       col=c(l[["m1"]]$col,l[["m2"]]$col), 
       pch=0.5,title.adj=100,cex=0.8,y.intersp=2
       )

ここに画像の説明を入力してください

于 2012-12-02T02:10:46.750 に答える