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
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
?