Ordonner graphiques avec la fonction facet_grid ou facet_wrap (ggplot2)

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

roxanne anckaert
Messages : 10
Enregistré le : 17 Juil 2017, 11:33

Ordonner graphiques avec la fonction facet_grid ou facet_wrap (ggplot2)

Messagepar roxanne anckaert » 27 Juil 2017, 08:51

Bonjour,
Je cherche à modifier l’ordre de mes graphiques lors de l'utilisation de la fonction facet_grid ou facet_wrap. Je m’explique :

Code : Tout sélectionner

j'utilise ce code:
ggplot(predictioni, aes(x=time)) + geom_line(aes (y = mediane), color="red") + geom_line(aes(y= X_97.5), linetype = "dashed") + geom_line(aes(y= X_2.5), linetype = "dashed")  +[b] facet_grid(Model ~ manip, scales = "free", shrink = TRUE ) [/b]

Avec ce code j’obtiens bien mes graphiques sous deux colonne correspondant a mes deux « manip » et 4 lignes correspondant à mes 4 modèles.
Seulement mes modèles (Model) ne sont pas dans le bon ordre. J’ai:

Ek
EK5
EK5CEC
KD

Or je veux
KD
EK
EK5CEC
EK5

Juste pour information ils sont bien classés dans mon data frame.
Si quelqu’un a une idée,
Mercie d’avance,
Roxanne.

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

Re: Ordonner graphiques avec la fonction facet_grid ou facet_wrap (ggplot2)

Messagepar Pierre-Yves Berrard » 27 Juil 2017, 09:03

Bonjour,

Peut-être en transformant Model en facteur ?

Code : Tout sélectionner

f_Model <- factor(Model, levels = c("KD", "EK", ...))
PY

roxanne anckaert
Messages : 10
Enregistré le : 17 Juil 2017, 11:33

Re: Ordonner graphiques avec la fonction facet_grid ou facet_wrap (ggplot2)

Messagepar roxanne anckaert » 27 Juil 2017, 10:43

Oui ça marche!!!
Merci beaucoup.
j'ai écrit :
predictioni$Model2 <- factor(predictioni$Model, levels= c("KD", "EK", "EK5CEC", "EK5"))
ggplot....

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

Re: Ordonner graphiques avec la fonction facet_grid ou facet_wrap (ggplot2)

Messagepar Pierre-Yves Berrard » 27 Juil 2017, 10:48

Ok ! Merci pour le retour.
PY

roxanne anckaert
Messages : 10
Enregistré le : 17 Juil 2017, 11:33

Re: Ordonner graphiques avec la fonction facet_grid ou facet_wrap (ggplot2)

Messagepar roxanne anckaert » 27 Juil 2017, 12:44

J’ai utilisé la même technique pour d’autre graphes or ici j’ai un souci :

Code : Tout sélectionner

prediction$Model2 <- factor(prediction$Model, levels= c("KD", "EK", "EK5-CEC", "EK5"))
prediction$parametre2 <- factor(prediction$parametre, levels= c("Kd1", "kfix", "krem", "C1sat", "C2sat", "sigmasq"))

A  <-  ggplot(prediction) + aes(x =Model2 , y=mediane, ymin = X_2.5, ymax=X_97.5, colour=Model2, group=Model2)+
  geom_pointrange(shape=1, size=0.35)+ geom_point(aes(y = estimation), color="black", shape=16, size=1 )+facet_grid(manip ~ parametre2 , scales = "free") + coord_flip() +theme_light() 
A


Avec ce code j’obtiens :
6 colonnes (parametres2)
une ligne (manip) => nom a droite du tableau.
Cette ligne et divisée en 4 « sous lignes » qui représentent mes model2 (Kd, EK, Ek5, Ek5CEC) => nom a gauche du tableau.

Or étant donné que j’inverse mes coordonnées « coord_flip », les models sont bien dans le bon ordre dans ma légende à droite de mon graphique mais pas dans le graphique (nom des "sous lignes" à gauche du graphique). C’est-à-dire :

Ordre de mes « sous lignes » de ma manip :
Ek5
Ek5 CEC
EK
KD

Ordre de ma légende
Kd
EK
EK5cec
EK5

Merci d’avance pour votre aide!

roxanne anckaert
Messages : 10
Enregistré le : 17 Juil 2017, 11:33

Re: Ordonner graphiques avec la fonction facet_grid ou facet_wrap (ggplot2)

Messagepar roxanne anckaert » 27 Juil 2017, 14:21

J'ai essayé pas mal de chose qui ne marche pas notamment la fonction:
+ scale_x_reverse

Code : Tout sélectionner

prediction$Model2 <- factor(prediction$Model, levels= c("KD", "EK", "EK5-CEC", "EK5"))
prediction$parametre2 <- factor(prediction$parametre, levels= c("Kd1", "kfix", "krem", "C1sat", "C2sat", "sigmasq"))

A  <-  ggplot(prediction) + aes(x =Model2 , y=mediane, ymin = X_2.5, ymax=X_97.5, colour=Model2, group=Model2)+ geom_pointrange(shape=1, size=0.35)+ geom_point(aes(y = estimation), color="black", shape=16, size=1 )+ scale_x_reverse() + facet_grid(manip ~ parametre2 , scales = "free") + coord_flip() +theme_light()
A


J'obtiens dans ce cas là ces mesages d'erreur...

Error: Discrete value supplied to continuous scale
In addition: Warning messages:
1: In Ops.factor(x) : '-' not meaningful for factors
2: Transformation introduced infinite values in continuous x-axis
3: In Ops.factor(x) : '-' not meaningful for factors
4: Transformation introduced infinite values in continuous x-axis


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité