Pb superposition de courbes

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

Raphaëlle Métras
Messages : 13
Enregistré le : 03 Juil 2007, 08:29

Pb superposition de courbes

Messagepar Raphaëlle Métras » 16 Juil 2007, 17:06

Bonjour,
Je voudrais superposer 3 graphiques. J'ai donc utilisé:

[prevalence3 <- xyplot(y1 + y2 + y3 ~ x , type = "p", col = c("black", "red", "blue"), scales=list(x=list(at=Pos, labels=lab, rot =45)),
+ xlab="Time", ylab="Monthly point prevalence")
]

Tous les points s'affichent, mais prennent toujours la première couleur énumérée (ici, noir).
Les y1 y2 et y3 sont bien identifiés car indépendemment, les graphiques se font.

Mais dès que je mets y1+y2+y3 , les courbes ne se distinguent pas.

Avez-vous une idée? :shock:

Merci bcp!

Raphaëlle Métras[/quote]

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Messagepar Logez Maxime » 17 Juil 2007, 08:18

Bonjour,


Essaye peut-être de mettre a jour la librairie lattice parce que en reprenant exactement ton code, j'ai bien obtenu ce qui tu cherchais à obtenir. J'ai bien des points séparés avec des couleurs différentes ou des droites qui ne se superposent pas. Sous quel forme sont stocké tes différents objets ?

Code : Tout sélectionner

x1 <- cos(1:100)
x2 <- sin(1:100)
x3 <- x1^2+x2^2
y <- 1:100
xyplot(x1+x2+x3~y,col=c("darkblue","darkred","black"),pch=19,type="p",scales=list(x=list( rot =45))) #point séparés de couleurs différentes
xyplot(x1+x2+x3~y,col=c("darkblue","darkred","black"),pch=19,type="l",scales=list(x=list( rot =45))) #lignes séparées.


Maxime

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 17 Juil 2007, 08:33

Comment est ton fichier ? Pour que la syntaxe que tu utilises fonctionne comme attendu, les variables y1, y2 et y3 doivent être dans des colonnes séparées.

Code : Tout sélectionner

> set.seed(12321)
> dfr <- data.frame(y1 = rnorm(5),
+                   y2 = rnorm(5, 2, 1),
+                   y3 = rnorm(5, 5, 1),
+                   x = 1:5)
> dfr
          y1       y2       y3 x
1  1.0092454 2.467906 4.292718 1
2  1.8109594 1.561422 3.544968 2
3  0.2623565 1.539704 4.967256 3
4 -1.5532924 2.468145 4.487707 4
5  1.3559407 1.804965 5.697374 5
>
> library(lattice)
> xyplot(y1 + y2 + y3 ~ x, type = "b", data = dfr)


Sinon, il faut une variable indicatrice des groupes:

Code : Tout sélectionner

> set.seed(12321)
> dfr <- data.frame(
+   y = c(rnorm(5), rnorm(5, 2, 1), rnorm(5, 5, 1)),
+   x = rep(1:5, 3),
+   g = rep(c("a", "b", "c"), each = 5))
> dfr
            y x g
1   1.0092454 1 a
2   1.8109594 2 a
3   0.2623565 3 a
4  -1.5532924 4 a
5   1.3559407 5 a
6   2.4679060 1 b
7   1.5614216 2 b
8   1.5397045 3 b
9   2.4681453 4 b
10  1.8049646 5 b
11  4.2927182 1 c
12  3.5449676 2 c
13  4.9672563 3 c
14  4.4877071 4 c
15  5.6973736 5 c
>
> xyplot(y ~ x, data = dfr, groups = g, type = "b")


La seconde syntaxe (et organisation de fichier) est plus conforme à l'esprit des graphes trellis / lattice. Noter l'argument "groups", fondamental ici.

Renaud


Retourner vers « Questions en cours »

Qui est en ligne

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