Rimuovi legenda ggplot 2.2


250

Sto cercando di mantenere la legenda di un livello (liscia) e rimuovere la legenda dell'altro (punto). Ho provato a chiudere le leggende con guides(colour = FALSE)e geom_point(aes(color = vs), show.legend = FALSE).

Modifica : poiché questa domanda e le sue risposte sono popolari, un esempio riproducibile sembra nell'ordine:

library(ggplot2)
ggplot(data = mtcars, aes(x = mpg, y = disp, group = gear)) +
geom_point(aes(color = vs)) +
geom_point(aes(shape = factor(cyl))) +
geom_line(aes(linetype = factor(gear))) +
geom_smooth(aes(fill = factor(gear), color = gear)) + 
theme_bw() 

inserisci qui la descrizione dell'immagine


5
Un esempio riproducibile minimo sarebbe molto più semplice. Nella lunga riga di codice sembra esserci un sacco di codice non necessario (al problema in questione), oltre ad essere del tutto irriproducibile come è attualmente scritto.
Mnel

Risposte:


445

dal libro di cucina r , dove bp è il tuo ggplot:

Rimuovi la legenda per una particolare estetica (riempimento):

bp + guides(fill=FALSE)

Può anche essere fatto specificando la scala:

bp + scale_fill_discrete(guide=FALSE)

Questo rimuove tutte le leggende:

bp + theme(legend.position="none")

25
Come risposta a un commento di @Alex: Nota che theme_bw()può interferire con qualsiasi definizione fatta usando theme(). Durante l'utilizzo theme_bw(), assicurati di aggiungerlo alla trama prima di modificare qualsiasi altra opzione del tema.
fabern,

1
ma quando faccio qualcosa del genere bp + theme(legend.position="none") + theme_classic(), le leggende tornano. Quindi come rimuoverlo?
LoveR

3
@loveR ha inserito theme_classic per primo:bp + theme_classic() + theme(legend.position="none")
ipotesi

1
Ciò non ha avuto alcun effetto sulla mia trama. Ho usato con successo l'approccio di @Tjebo.
James Hirschorn,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.