web-dev-qa-db-fra.com

scale_fill_discrete et scale_fill_manual - confusion des options de légende

J'ai un problème avec l'application de deux modifications différentes sur mon objet ggplot2. J'ai un barplot avec 3 groupes dessus. Je veux:

  1. définir la couleur pour chaque groupe
  2. réorganiser l'ordre des étiquettes de légende

J'ai trouvé les solutions suivantes aux problèmes ci-dessus:

  1. + scale_fill_manual(values = c("red", "green", "blue"))
  2. + scale_fill_discrete(guide = guide_legend(reverse=TRUE))

Le problème est que la deuxième application (+ scale_fill_discrete(...)) remplace la première:

Scale for 'fill' is already present. Adding another scale for 'fill', which will replace the existing scale.

(séparément, les deux fonctionnent bien). Comment y faire face?

18
Marta Karas

Vous n'avez pas besoin de le doubler, cela devrait fonctionner:

  scale_fill_manual(values = c("red", "green", "blue"),name= "My name", guide = guide_legend(reverse = TRUE))
29
BBrill