2015-07-19 8 views
7

Come parte di una trama più complessa con diverse legende, una delle legende ha una sola voce. Voglio rimuovere l'etichetta da questa particolare legenda e mantenere solo il titolo (modificato).Rimuovere le etichette della legenda usando label = FALSE in guide_legend, o labels = NULL in discrete_scale

df <- data.frame(x = 1, y = 1) 

p <- ggplot(df, aes(x = x, y = y, color = factor(x))) + 
     geom_point() 
p 

enter image description here

Perché faccio alcune altre manipolazioni delle leggende che utilizzano guides(foo = guide_legend(override.aes, speravo di rimuovere le etichette nello stesso guide_legend chiamata utilizzando l'argomento label.

Da ?guide.legend:
"label: [...] Se FALSE poi le etichette sono invisibili."

Così, ho provato:

p + guides(color = guide_legend(title = "other", 
           label = FALSE)) 

Ma questo dà un errore:

# Error in (function (name) : grob 'NULL' not found 

Ho poi avuto uno sguardo al discrete_scale, che ha un argomento labels (ora con una "s") . Da ?discrete_scale:
"labels: NULL per nessuna etichetta."

Così, ho provato:

p + scale_color_discrete(name = "other", 
         labels = NULL) 

... che genera un errore:

# Error in data.frame(values = scale_map(scale, breaks), labels = I(scale_labels(scale)), : 
#      arguments imply differing number of rows: 1, 0 

mia soluzione attuale è:

p + scale_color_discrete(name = "other", 
         labels = "") 

Tuttavia, come descritto sopra, preferirei rimuovere le etichette usando la chiamata guide_legend.

Quindi la mia domanda principale è:
Come posso fare label = FALSE in guide_legend lavoro?

Se la risposta è "E 'semplicemente non funziona", come è il "labels: NULL per nessuna etichetta." dovrebbe essere usato in scale_foo_bar?

risposta

1

Sia label = FALSE in guide_legend e labels = NULL in discrete_scale sono fissi nella versione di sviluppo ggplot2_1.0.1.9002.

# install development version, see https://github.com/hadley/ggplot2/. 
# install.packages("devtools") 
devtools::install_github("hadley/scales") 
devtools::install_github("hadley/ggplot2movies") 
devtools::install_github("hadley/ggplot2") 

p + guides(color = guide_legend(title = "other", label = FALSE)) 
# or: 
# p + scale_color_discrete(name = "other", labels = NULL) 

enter image description here

Problemi correlati