Desactivar algunas leyendas en un ggplot

Supongamos que tengo un ggplot con más de una leyenda.

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

Puedo apagar la pantalla de todas las leyendas como esta:

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

Pasar show_guide = FALSE a geom_point (según esta pregunta ) desactiva la leyenda de la forma.

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

Pero, ¿y si quiero desactivar la leyenda del color? No parece haber una manera de decirle a show_guide qué leyenda aplicar su comportamiento. Y no hay argumento show_guide para escalas o estética.

 (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 

Esta pregunta sugiere que la forma moderna (desde ggplot2 v0.9.2) de controlar leyendas es con la función de guides .

Quiero ser capaz de hacer algo como

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

pero guide_legend no tiene un argumento show.

¿Cómo especifico qué leyendas se muestran?

Puede usar guide=FALSE en la scale_..._...() para suprimir la leyenda.

Para su ejemplo, debe usar scale_colour_continuous() porque length es una variable continua (no discreta).

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

O usando las guides() función guides() debe establecer FALSE para ese elemento / estética que no desea que aparezca como leyenda, por ejemplo, fill , shape , colour .

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

ACTUALIZAR

Ambas soluciones proporcionadas funcionan en la nueva versión de ggplot2 2.0.0 pero el conjunto de datos de movies ya no está presente en esta biblioteca. En su lugar, debe usar el nuevo paquete ggplot2movies para verificar esas soluciones.

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

Simplemente puede agregar show.legend=FALSE a geom para suprimir la leyenda correspondiente