複数の凡例がある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 = FALSE
をgeom_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_legend
にはshow引数がありません。
表示される凡例を指定する方法
scale_..._...()
でguide=FALSE
を使って凡例を抑制することができます。
length
は連続変数である(離散ではない)ので、あなたの例ではscale_colour_continuous()
を使うべきです。
(p3 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
scale_colour_continuous(guide = FALSE) +
geom_point()
)
あるいは、関数guides()
を使用して、凡例として表示したくない要素/審美的要素にFALSE
を設定する必要があります(例:fill
、shape
、colour
)。
p0 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
geom_point()
p0+guides(colour=FALSE)
提供されたソリューションは両方とも新しいggplot2
バージョン2.0.0で動作しますが、movies
データセットはこのライブラリにはもう存在しません。代わりに、あなたはそれらの解決策をチェックするために新しいパッケージggplot2movies
を使わなければなりません。
library(ggplot2movies)
data(movies)
mov <- subset(movies, length != "")
対応する凡例を抑制するためにgeomにshow.legend=FALSE
を追加するだけです。