ggplot, afficher une légende pour un unique groupe

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

Colin Ginot
Messages : 11
Enregistré le : 19 Nov 2018, 14:08

ggplot, afficher une légende pour un unique groupe

Messagepar Colin Ginot » 04 Déc 2018, 14:55

Bonjour,
Ci dessous mon script pour afficher la figure.

Code : Tout sélectionner

debits_modelises <- c(120,90,80,65,50,35,20)
yi <- c(146,128,105,73.7,34.4,23,20.2)
xi <- seq(0,length(yi)-1)
absc_deb <- c(1.348193,2.479354,2.798400,3.221460,3.603515,3.984569,5.999857)
chro <- data.frame(xi,yi,debits_modelises,absc_deb)
chro_plot <- ggplot(data = chro) +
  geom_line(aes(x=xi,y=yi)) +
  geom_point(aes(x = absc_deb, y=debits_modelises, group=debits_modelises), size=5, shape = 8, show.legend = T) +
  ggtitle("Chronique de débit") + xlab("Heure") + ylab("Débit (m3/s)") +
  theme_classic()

chro_plot


J'aimerai afficher une légende "Débits modélisés" raccordé à un point de shape=8 pour pouvoir faire comprendre aisément que ces points correspondent au débit modélise.
Ca ne m'a pas l'air très compliqué mais je n'ai pas trouvé sur internet.
J'ai essayé quelques variantes avec "group=" et "show.legend=" sans succès.

Merci pour votre aide !

Colin.

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: ggplot, afficher une légende pour un unique groupe

Messagepar Pierre-Yves Berrard » 04 Déc 2018, 15:59

Bonjour,

Une astuce qui devrait marcher :
  • ajouter un colonne leg valant par exemple "débit modélisé", quelle que soit la ligne ;
  • ajouter colour = leg dans aes de geom_point.
PY

Colin Ginot
Messages : 11
Enregistré le : 19 Nov 2018, 14:08

Re: ggplot, afficher une légende pour un unique groupe

Messagepar Colin Ginot » 05 Déc 2018, 10:39

Merci, ça marche. Cependant j'aimerai aussi pouvoir l'avoir en n&b, y'a t'il un moyen de le forcer à être noir ?
Je sais que je pourrai utiliser un autre paramètre (comme size = leg) mais j'aimerai pouvoir contrôler chaque paramètres comme je le veux.

Colin G.

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: ggplot, afficher une légende pour un unique groupe

Messagepar Pierre-Yves Berrard » 05 Déc 2018, 11:13

Colin Ginot a écrit :y'a t'il un moyen de le forcer à être noir ?

Je dirais qu'il faut paramétrer scale_colour_manual().
PY

Mickael Canouil
Messages : 1315
Enregistré le : 04 Avr 2011, 08:53
Contact :

Re: ggplot, afficher une légende pour un unique groupe

Messagepar Mickael Canouil » 05 Déc 2018, 15:26

Bonjour,

de nombreuses palette de couleur sont déjà implémentées dans ggplot2 et au pire il y a 'ggplot2::scale_colour_manual()' comme l'a dit Pierre-yves.

=> 'ggplot2::scale_colour_grey()' ou 'ggplot2::scale_color_grey()'

Pour avoir une légende dans ggplot2, il faut que l'objet/variable devant figurer dans la légende soit un "aesthetic".
Pour "pouvoir contrôler chaque paramètres", il suffit d'utiliser les fonctions scale_*() (je vous invite à consulter l'aide de ggplot2, qui devrait vous fournir tout ce que vous voulez sur ces fonctions).

Cordialement,
Mickaël
mickael.canouil.fr | rlille.fr

Colin Ginot
Messages : 11
Enregistré le : 19 Nov 2018, 14:08

Re: ggplot, afficher une légende pour un unique groupe

Messagepar Colin Ginot » 10 Déc 2018, 09:23

Merci pour vos réponses !

Pour avoir une légende dans ggplot2, il faut que l'objet/variable devant figurer dans la légende soit un "aesthetic".
Pour "pouvoir contrôler chaque paramètres", il suffit d'utiliser les fonctions scale_*() (je vous invite à consulter l'aide de ggplot2, qui devrait vous fournir tout ce que vous voulez sur ces fonctions).


Oui j'ai pas mal potassé la doc mais je n'avais pas trouvé d'astuce comme celle de PY.

Colin.


Retourner vers « Questions en cours »

Qui est en ligne

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