プロットの凡例を2つに分割して、最初の3つの要素が4番目の要素から約1行の高さのギャップで分離されるようにします。最初は、最初の要素の前に改行を追加しようとしました。
_legend("topright",col=1,lty=1:3,lwd=1,legend=c("leg1","leg2","\nleg3"), bty="n")
_
しかし、これは要素間のギャップを拡大するようですすべて要素(これは文書化された動作ですか?)
次に、2つの別々の凡例を使用し、境界線を_"n"
_に設定し、lines()
を使用して境界線を再構築しました(ちなみに、凡例の1つの境界線のみを抑制する方法はありますか?)。これは機能しますが、inset
の値で多くの試行錯誤が必要です。
legend()
のinset
のデフォルト値はc(0,0)
ですが、これらは明らかにlegend()
の最初の呼び出しで調整されます。その凡例の要素のテキスト。 _?legend
_によると、legend()
呼び出しの値には
「長さlength(凡例)の数値ベクトル。凡例のテキストのx座標とy座標を示します。」
とにかく、これを2番目の呼び出しのinset
に適切な値に変換して、両方の凡例の要素を揃えることができますか?
スペースを配置する引数にNAを指定するだけです。すべての凡例引数をベクトルとして指定する必要があります。
_ set.seed(2)
plot(0:10, rnorm(11), col = sample(c("green", "blue"), 11, replace = TRUE),
pch = sample(c(3, 19), 11, replace = TRUE), xlim = c(0, 12))
legend("topright", pch = c(3, 19, NA, 3, 19),
col = c("green", "green", NA, "blue", "blue"),
legend = c("green cross", "green dot", NA, "blue cross", "blue dot"))
_
または、legend()
を2回呼び出してより細かく制御する場合は、引数に_trace=TRUE
_を指定すると、必要なx座標とy座標が返されます。