[Résolu] Changer la couleur du trait dans un graphique GGplot selon un facteur

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

Sylvain Gaudin
Messages : 25
Enregistré le : 10 Jan 2017, 06:41

[Résolu] Changer la couleur du trait dans un graphique GGplot selon un facteur

Messagepar Sylvain Gaudin » 17 Fév 2022, 19:45

Bonjour,

Je possède un tableau de données comprenant 3 variables :
Date (au format date)
Peakflow (un entier)
Alimentation (un facteur, avec plusieurs modalités : « Normale », « Jeûne 1 », « Jeûne 2 » ...)

Je souhaite réaliser un graphique qui me donne l’évolution du Peakflow en fonction du temps, tout en faisant apparaître dans des couleurs différentes les périodes de jeûne.
J’ai fait plusieurs essais. Celui qui fonctionne le moins mal est le suivant :

Code : Tout sélectionner

ggplot(df3, aes(x = Date, y= PeakFlow, color = Alimentation))+
  geom_path(size = 1)+
  ylab("PeakFlow")+
  xlab("Jours")


Cependant, il ne change pas la couleur de la courbe, mais superpose des segments de couleur à la courbe principale.

https://drive.google.com/file/d/14_fgY5Am51Hpgp6hFFpWmbOsQofKEoz5/view?usp=sharing

J’ai essayé en vain plusieurs autres options.

Merci pour votre aide.


Sylvain Gaudin
Messages : 25
Enregistré le : 10 Jan 2017, 06:41

Re: Changer la couleur du trait dans un graphique GGplot selon un facteur

Messagepar Sylvain Gaudin » 21 Fév 2022, 09:44

Bonjour,

Merci pour votre réponse. Voici un extrait de mes données :

Code : Tout sélectionner

Jour <- as.Date(c("2021-04-01","2021-04-02","2021-04-03","2021-04-04","2021-04-05","2021-04-06", "2021-04-07", "2021-04-08", "2021-04-09", "2021-04-10"))
Peakflow <- c(287,340,312,322,290,310,267,322,298,310)
Alimentation <- as.factor(c("Normale","Normale","Normale","Jeûne","Jeûne","Normale","Normale","Jeûne","Jeûne","Jeûne"))

df <- data.frame(Jour, Peakflow, Alimentation)


et le code que j'utilise :

Code : Tout sélectionner

library(ggplot2)

ggplot(df, aes(x = Jour, y= Peakflow, color = Alimentation))+
  geom_path(size = 1)+
  ylab("PeakFlow")+
  xlab("Jours")

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

Re: Changer la couleur du trait dans un graphique GGplot selon un facteur

Messagepar Mickael Canouil » 22 Fév 2022, 10:05

Bonjour,

l'astuce est de définir "group" pour que cette aesthetique ne prenne pas par défaut colour/fill/shape/etc.

Code : Tout sélectionner

df <- data.frame(
  
Jour = as.Date(c(
    
"2021-04-01""2021-04-02""2021-04-03""2021-04-04",
    
"2021-04-05""2021-04-06""2021-04-07""2021-04-08",
    
"2021-04-09""2021-04-10"
  
)),
  
Peakflow c(287340312322290310267322298310),
  
Alimentation = as.factor(c(
    
"Normale""Normale""Normale""Jeûne""Jeûne",
    
"Normale""Normale""Jeûne""Jeûne""Jeûne"
  
))


Code : Tout sélectionner

library(ggplot2)
ggplot(df) +
  
aes(JourPeakflowcolor Alimentationgroup 1) +
  
geom_path(size 1) +
  
labs("Jours""PeakFlow"


Image

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

Sylvain Gaudin
Messages : 25
Enregistré le : 10 Jan 2017, 06:41

Re: Changer la couleur du trait dans un graphique GGplot selon un facteur

Messagepar Sylvain Gaudin » 22 Fév 2022, 19:25

Un grand merci pour cette solution. C’est exactement ce qu’il me fallait !


Retourner vers « Questions en cours »

Qui est en ligne

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