2013-02-08 27 views
71

Sto cercando di rimuovere il titolo di una leggenda in ggplot2:rimuovere titolo di legenda in ggplot

df <- data.frame(
    g = rep(letters[1:2], 5), 
    x = rnorm(10), 
    y = rnorm(10) 
) 

library(ggplot2) 
ggplot(df, aes(x, y, colour=g)) + 
    geom_line(stat="identity") + 
    theme(legend.position="bottom") 

enter image description here

ho visto this question e nessuna delle soluzioni ci sembrano funzionare per me . La maggior parte dà un errore su come opts è deprecato e utilizzare invece theme. Ho anche provato varie versioni di theme(legend.title=NULL), theme(legend.title=""), theme(legend.title=element_blank), ecc messaggi di errore tipici sono:

'opts' is deprecated. Use 'theme' instead. (Deprecated; last used in version 0.9.1) 
'theme_blank' is deprecated. Use 'element_blank' instead. (Deprecated; last used in version 0.9.1) 

sto usando ggplot2 per la prima volta a partire dalla versione 0.9.3 è stato rilasciato e mi sto trovando difficile da navigare alcuni dei cambiamenti ...

+2

È possibile utilizzare 'labs()' per questo: Aggiungere la riga 'labs (color =" ")' al codice che ha prodotto il grafico sopra. – Dennis

risposta

110

Si erano quasi arrivati: basta aggiungere theme(legend.title=element_blank())

ggplot(df, aes(x, y, colour=g)) + 
    geom_line(stat="identity") + 
    theme(legend.position="bottom") + 
    theme(legend.title=element_blank()) 

This page on Cookbook for R dà un sacco di informazioni su come CUS Tomize Legends.

7

Questo funziona troppo e anche illustrato come modificare il titolo della legenda:

ggplot(df, aes(x, y, colour=g)) + 
    geom_line(stat="identity") + 
    theme(legend.position="bottom") + 
    scale_color_discrete(name="") 
+4

Sostituisce il titolo con una stringa vuota e pertanto provoca uno spazio aggiuntivo tra l'etichetta e la casella della legenda, che sarebbe visibile solo se la legenda avesse una casella o uno sfondo di un colore diverso da quello in cui è posizionata. Quindi va bene per un approccio rapido e pronto in casi semplici come '' theme_bw() '' ma non il migliore nei casi in cui la legenda ha una scatola attorno ad esso ed è posizionato da qualche parte nell'area del tracciato (il mio approccio abituale). – PatrickT

+0

+1 per l'osservazione. Ho avuto il problema usando due diverse leggende e lo spazio bianco tra di loro che è stato creato dalla soluzione di cui sopra. Impostazione 'scale_color_manual (name = element_blank()) +' per la legenda inferiore l'ho risolto per me – joaoal

0

Per Error: 'opts' is deprecated. Utilizzare invece theme(). (Defunct; ultimo utilizzato nella versione 0.9.1) ' Ho sostituito opts(title = "Boxplot - Candidate's Tweet Scores") con labs(title = "Boxplot - Candidate's Tweet Scores"). Ha funzionato!

Problemi correlati