Plusieurs graphes superposés avec Lattice

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

Christophe Genolini
Messages : 698
Enregistré le : 12 Juin 2006, 21:37
Contact :

Plusieurs graphes superposés avec Lattice

Messagepar Christophe Genolini » 03 Fév 2014, 21:18

Bonjour,

Je cherche a superposer plusieurs graphes avec lattice, et tout cela dans une fonction :

Code : Tout sélectionner

library(lattice)
dn <- data.frame(id=rep(1:20,time=5),times=rep(1:5,each=20),traj=rnorm(100)+1:20)

bidon <- function(traj,nbTry=5){
 
  for(i in 1:nbTry){
     for(j in 1:1000000){}
     clust <- floor(runif(2,1,21))
     mesCenters <- dn[dn[,1]%in%clust,]
     ### Tracer la population
     print(xyplot(traj~times,groups=factor(id),data=dn,type="b",col="grey"))
     ### Ajouter juste deux individus sur le graphe précédent
     print(xyplot(traj~times,groups=id,data=mesCenters,type="b",add=TRUE,lwd=3,col=i))
  }
}

bidon(dn,5)

Sauf que tel que je l'ai écris, ca ne marche pas... (l'option add=TRUE n'est visiblement pas opérationnelle, et xylines n'existe pas)
Savez-vous comment faire ?

Christophe

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

Messagepar Renaud Lancelot » 04 Fév 2014, 06:53

Probablement oui mais il faudrait que tu nous expliques clairement ce que tu veux faire.

Comme tu cherches à superposer des groupes de données, je suppose qu'il suffit d'écrire une petite fonction panel dans laquelle tu utiliserais la fonction panel.superpose.
Renaud

dicko ahmadou
Messages : 444
Enregistré le : 21 Nov 2009, 20:15

Messagepar dicko ahmadou » 04 Fév 2014, 09:00

Je ne suis pas un expert de lattice mais je pense que pour la superposition le package latticeExtra pourra t'aider avec le mechanisme de layer qu'il utilise.
The best thing about being a statistician is that you get to play in everyone's backyard.
John Tukey

Christophe Genolini
Messages : 698
Enregistré le : 12 Juin 2006, 21:37
Contact :

Messagepar Christophe Genolini » 04 Fév 2014, 09:03

Pardon de ne pas avoir été plus clair.

Je travaille sur une population dn. De cette population, j'extrais aléatoirement 2 individus. Je voudrais tracer la population dn en gris, puis ajouter les deux individus d'une autre couleur sur le même graphe.
Je voudrais faire cela 'nbTry' fois de suite.

J'ai légèrement modifié mon code pour aller dans le sens que je viens d'expliciter.

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

Messagepar Renaud Lancelot » 04 Fév 2014, 13:58

Peut-être

Code : Tout sélectionner

xyplot(traj ~ times, groups = factor(id), data = dn,
       panel = function(...){
           panel.superpose(..., col = "grey", type = "b")
           for(i in 1:2){
               for(j in 1:3){
               clust <- floor(runif(2, 1, 21))
               mesCenters <- dn[dn[, 1] %in% clust, ]
               xid <- unique(mesCenters$id)
               for(k in seq(length(xid))){
                   cond <- mesCenters$id == xid
                   with(mesCenters,
                        llines(times[cond], traj[cond], type = "b", lwd = 3, col = i))
                   }
                }
           }
        })
Renaud


Retourner vers « Questions en cours »

Qui est en ligne

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