167 votes

supprimer le titre de la légende dans ggplot

J'essaie de supprimer le titre d'une légende en ggplot2 :

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

J'ai vu cette question et aucune des solutions proposées ne semble fonctionner pour moi. La plupart donnent une erreur sur la façon dont opts est déprécié et pour utiliser theme à la place. J'ai également essayé plusieurs versions de theme(legend.title=NULL) , theme(legend.title="") , theme(legend.title=element_blank) etc. Les messages d'erreur typiques sont les suivants :

'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)

J'utilise ggplot2 pour la première fois depuis la sortie de la version 0.9.3 et je trouve qu'il est difficile de s'y retrouver dans certains changements...

286voto

juba Points 15701

Vous y étiez presque : ajoutez juste 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())

Cette page sur Cookbook pour R donne de nombreux détails sur la façon de personnaliser les légendes.

14voto

Roland Points 37641

Cela fonctionne également et montre également comment modifier le titre de la légende :

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

5voto

mpalanco Points 6903

Une autre option utilisant labs et en fixant la couleur à NULL .

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

enter image description here

4voto

vkehayas Points 151

Étant donné que vous pouvez avoir plus d'une légende dans un graphe, une façon de supprimer sélectivement un seul des titres sans laisser d'espace vide est de définir l'attribut name argument de la scale_ à la fonction NULL c'est-à-dire

scale_fill_discrete(name = NULL)

(félicitations à @pascal pour un commentaire sur un autre fil )

0voto

Shradha Shiwani Points 57

Pour Error: 'opts' is deprecated . Utilisez theme() à la place. (Défunte ; utilisée pour la dernière fois dans la version 0.9.1)". J'ai remplacé opts(title = "Boxplot - Candidate's Tweet Scores") avec labs(title = "Boxplot - Candidate's Tweet Scores") . Cela a marché !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X