tamaño - Desactivar algunas leyendas en un ggplot
leyenda en ggplot2 (1)
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 != "")