web-dev-qa-db-ja.com

境界線なしで白い背景を持つ凡例をプロットする

プロットに凡例があり、その線は(アブライン文から)通過しています。アブラインが凡例の近くで見えなくなることをどのように達成できますか?これは、凡例の背景を枠なしで白に設定することで達成できるはずですが、どうすればこれを達成できますか?グラフは次のようになります。

windows.options(width=30, height=12)
plot(1:10)
abline(v=seq(1,10,1), col='grey', lty='dotted')
legend(4.8, 3, "This legend text should not be disturbed by the dotted grey lines")

そして、もう少し複雑にするために:凡例がドットプロットのドットに干渉する場合:凡例の近くでアブラインが見えないようにするには(上記のように)、ドットはまだ見えるようにするにはどうすればよいですか?

windows.options(width=30, height=12)
plot(1:10)
abline(v=seq(1,10,1), col='grey', lty='dotted')
legend(1, 5, "This legend text should not be disturbed by the dotted grey lines, but the plotted dots should still be visible")

最後に、凡例のステートメントに改行を挿入する方法はありますか?

51
biotom

legendのオプションbty = "n"を使用して、凡例を囲むボックスを削除します。例えば:

legend(1, 5,
       "This legend text should not be disturbed by the dotted grey lines,\nbut the plotted dots should still be visible",
       bty = "n")
95
mayank

?legendに記載されているように、次のようにします。

plot(1:10,type = "n")
abline(v=seq(1,10,1), col='grey', lty='dotted')
legend(1, 5, "This legend text should not be disturbed by the dotted grey lines,\nbut the plotted dots should still be visible",box.lwd = 0,box.col = "white",bg = "white")
points(1:10,1:10)

enter image description here

改行は、改行文字\nで実現されます。プロットの順序を変更するだけで、ポイントを表示したままにすることができます。 Rでのプロットは、紙に描くようなものであることに注意してください。プロットするものは、現在そこにあるものの上に配置されます。

プロットの寸法を小さくしたため、凡例テキストが切り取られていることに注意してください(windows.optionsはすべてのRプラットフォームに存在するわけではありません)。

23
joran