Disattivare alcune leggende in un ggplot


Answers

Question

Supponiamo che io abbia un ggplot con più di una leggenda.

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

Posso spegnere il display di tutte le leggende come questa:

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

Passando show_guide = FALSE a geom_point (come da questa domanda ) disattiva la legenda della forma.

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

E se invece volessi disattivare la legenda dei colori? Non sembra essere un modo per dire a show_guide quale legenda applicare il suo comportamento. E non c'è argomento show_guide per scale o estetica.

(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

Questa domanda suggerisce che il modo moderno (dal ggplot2 v0.9.2) di controllare le leggende è con la funzione guides .

Voglio essere in grado di fare qualcosa del genere

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

ma guide_legend non ha un argomento show.

Come posso specificare quali legende vengono visualizzate?




Links