ggplot の凡例の一部をオフにする 質問する

ggplot の凡例の一部をオフにする 質問する

複数の凡例を持つ ggplot があるとします。

mov <- subset(movies, length != "")
(p0 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
  geom_point()
)

次のようにして、すべての凡例の表示をオフにすることができます。

(p1 <- p0 + theme(legend.position = "none"))

パス(に従ってshow_guide = FALSEgeom_pointこの質問) は図形の凡例をオフにします。

(p2 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
  geom_point(show_guide = FALSE)
)

しかし、代わりに色の凡例をオフにしたい場合はどうすればよいでしょうか? どの凡例に動作を適用するかを指定する方法はないようですshow_guide。また、スケールや美観に関する議論もありませんshow_guide

(p3 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
  scale_colour_discrete(show_guide = FALSE) +
  geom_point()
)
# Error in discrete_scale

(p4 <- ggplot(mov, aes(year, rating, shape = mpaa)) +
  aes(colour = length, show_guide = FALSE) +
  geom_point()
)
#draws both legends

この質問凡例を制御する現代的な方法 (ggplot2 v0.9.2 以降) は、関数を使用することを示唆していますguides

こんなことができるようになりたい

p0 + guides(
  colour = guide_legend(show = FALSE) 
)

ただし、guide_legendshow 引数はありません。

表示される凡例を指定するにはどうすればよいですか?

ベストアンサー1

guide = "none"凡例を非表示にするにはin を使用しますscale_..._...()

あなたの例では、は連続変数(離散変数ではない)なので、scale_colour_continuous()を使用する必要があります。length

(p3 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
   scale_colour_continuous(guide = "none") +
   geom_point()
)

または、凡例として表示したくない要素/美観に対してguides()設定する必要がある関数を使用します (例: 、、) 。"none"fillshapecolour

p0 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
  geom_point()    
p0+guides(colour = "none")

アップデート

提供されているソリューションは両方とも新しいggplot2バージョン 3.3.5 で動作しますが、moviesデータセットはこのライブラリには存在しません。代わりに、新しいパッケージを使用してggplot2moviesこれらのソリューションを確認する必要があります。

library(ggplot2movies)
data(movies)
mov <- subset(movies, length != "")

おすすめ記事