Enlever une légende ggplot

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Dinouard Jessie
Messages : 2
Enregistré le : 26 Avr 2023, 09:26

Enlever une légende ggplot

Messagepar Dinouard Jessie » 15 Juin 2023, 11:00

Bonjour,
J'ai un problème dans mon ggplot depuis que j'ai inséré la fonction "scale_fill_manual" que j'ai utilisé pour changer les couleurs et l'ordre dans la légende. Depuis, j'ai une deuxième légende qui s'affiche et que je ne veux pas. Je dois avoir une erreur dans mon code ou j'utilise pas la bonne fonction mais j'arrive pas à trouver.

Merci de votre aide

Code : Tout sélectionner

ggplot(data = St_taille, aes(x=" ", y=Proportion, group=Classe, fill=Classe))+
   geom_bar(stat = "identity", width=1)+
   coord_polar("y", start=0)+
   facet_grid(.~Annee)+theme_void()+
   ggtitle("Evolution des structures de tailles des anguilles")+
   theme(plot.title = element_text(hjust = 0.6, vjust = 8, size=15))+
   scale_fill_manual(values = c("midnightblue", "sandybrown", "darkseagreen2"), breaks = c("<150", "[150;300[", ">=300"))


[img]file:///D:/S1/Capture.JPG[/img]

Fred Santos
Messages : 233
Enregistré le : 11 Avr 2009, 10:00
Contact :

Re: Enlever une légende ggplot

Messagepar Fred Santos » 15 Juin 2023, 11:20

Hola,

(Petite remarque : un exemple reproductible permettrait de t'aider plus facilement.)

À priori, l'ajout de l'argument

Code : Tout sélectionner

guide = "none"

à l'intérieur de ton scale_fill_manual() devrait régler le problème, si c'est cette partie-là de la légende que tu souhaites retirer.

Dinouard Jessie
Messages : 2
Enregistré le : 26 Avr 2023, 09:26

Re: Enlever une légende ggplot

Messagepar Dinouard Jessie » 21 Juin 2023, 14:20

Bonjour,
J'ai donc essayé guide = "none" mais cela enlève la mauvaise partie de la légende !

J'avais essayé de mettre une image pour montrer mon petit problème mais je viens de voir que je n'ai pas réussi (oops).
J'ai donc créer un exemple reproductible (merci pour l'explication Fred Santos).

Code : Tout sélectionner

library (dplyr)
library (ggplot2)

df <- data.frame(Classe = c("<150", "[150;300[", ">=300", "<150", "[150;300[", ">=300"), Annee = c("2018", "2018", "2018", "2019", "2019", "2019"), Proportion = c(1.38, 85.91, 12.71, 3.06, 72.34,24.60))

ggplot(data = df, aes(x=" ", y=Proportion, group=Classe, colour=Classe, fill=Classe)) +
   geom_bar(stat = "identity", width=1) +
   coord_polar("y", start=0)+
   facet_grid(.~ Annee) +theme_void()+
   ggtitle("Evolution des structures de tailles des anguilles \nau barrage-usine de Sauveterre de 2018 à 2022")+
   theme(plot.title = element_text(hjust =0.6, vjust = 8, size=15))+
   scale_fill_manual(values = c("midnightblue", "sandybrown", "darkseagreen2"), breaks = c ("<150", "[150;300[", ">=300"))


En faisant ce code, j'obtiens deux légendes et j'aimerais supprimer celle avec les cadres colorés remplis en gros foncé.

Merci de votre aide

Fred Santos
Messages : 233
Enregistré le : 11 Avr 2009, 10:00
Contact :

Re: Enlever une légende ggplot

Messagepar Fred Santos » 21 Juin 2023, 14:32

Alors ici je ne m'embêterais franchement pas : dans ton aes() initial, les arguments "group" et "colour" ne servent basiquement à rien pour le graphique que tu produis, mais vont générer de nouvelles légendes. Si tu fais basiquement ceci sur la première ligne :

Code : Tout sélectionner

ggplot(data = df, aes(x=" ", y=Proportion, fill=Classe)) +
    ## le reste ici...

ça suffira !

Fred Santos
Messages : 233
Enregistré le : 11 Avr 2009, 10:00
Contact :

Re: Enlever une légende ggplot

Messagepar Fred Santos » 21 Juin 2023, 14:37

Pardon, en complément quand même pour une réponse plus générale, si jamais tu veux voir comment utiliser guides() en toute généralité pour supprimer certains éléments de légende et pas d'autres :

Code : Tout sélectionner

ggplot(data dfaes(x=" "y=Proportioncolour=Classefill=Classe)) +
    
geom_bar(stat "identity"width=1) +
    
coord_polar("y"start=0)+
    
facet_grid(.~ Annee) +theme_void()+
    
ggtitle("Evolution des structures de tailles des anguilles \nau barrage-usine de Sauveterre de 2018 à 2022")+
    
theme(plot.title element_text(hjust =0.6vjust 8size=15))+
    
scale_fill_manual(values c("midnightblue""sandybrown""darkseagreen2"), breaks ("<150""[150;300["">=300")) +
    
guides(fill "legend"color "none")
 

Mais ici, j'opterais clairement pour la solution de mon message précédent. ;-)


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité

cron