質問とuser3490026の回答は検索のヒット数が多いため、再現可能な例と、これまでに行った提案の簡単な説明と、OPの質問に明示的に対処するソリューションを作成しました。
ggplot2
特定の凡例が同じ変数に関連付けられている場合、それが自動的にブレンドされて混乱を招く可能性があることの1つです。例えば、factor(gear)
のため1回、2回表示されlinetype
、一度のためにfill
組み合わせた伝説が得られ、。対照的に、gear
と同じように扱われないため、独自の凡例エントリがありfactor(gear)
ます。これまでに提供されたソリューションは通常、うまく機能します。ただし、場合によっては、ガイドを上書きする必要があります。一番下の最後の例を見てください。
# reproducible example:
library(ggplot2)
p <- ggplot(data = mtcars, aes(x = mpg, y = disp, group = gear)) +
geom_point(aes(color = vs)) +
geom_point(aes(shape = factor(cyl))) +
geom_line(aes(linetype = factor(gear))) +
geom_smooth(aes(fill = factor(gear), color = gear)) +
theme_bw()
すべての凡例を削除:@ user3490026
p + theme(legend.position = "none")
すべての凡例を削除:@duhaime
p + guides(fill = FALSE, color = FALSE, linetype = FALSE, shape = FALSE)
凡例をオフにする:@Tjebo
ggplot(data = mtcars, aes(x = mpg, y = disp, group = gear)) +
geom_point(aes(color = vs), show.legend = FALSE) +
geom_point(aes(shape = factor(cyl)), show.legend = FALSE) +
geom_line(aes(linetype = factor(gear)), show.legend = FALSE) +
geom_smooth(aes(fill = factor(gear), color = gear), show.legend = FALSE) +
theme_bw()
線種が見えるように塗りつぶしを削除します
p + guides(fill = FALSE)
上記と同様に、scale_fill_関数を使用します。
p + scale_fill_discrete(guide = FALSE)
そして今、OPの要求に対する1つの可能な答え
「1つのレイヤーの凡例を保持し(スムーズ)、もう1つのレイヤーの凡例を削除するには(ポイント)」
アドホックポストホックをオフにする
p + guides(fill = guide_legend(override.aes = list(color = NA)),
color = FALSE,
shape = FALSE)