Superposition de 2 lissages dans xyplot

Questions sur les fonctions graphiques de R

Modérateur : Groupe des modérateurs

Matthieu Lesnoff
Messages : 120
Enregistré le : 29 Nov 2004, 12:41

Superposition de 2 lissages dans xyplot

Messagepar Matthieu Lesnoff » 12 Sep 2006, 19:47

Bonjour

Je cherche à représenter un lissage séparé de 2 nuages de points avec xyplot (lattice). J'ai le code suivant :

Code : Tout sélectionner

xyplot(
    x = p ~ unitdec,
    groups = sex,
    panel = function(x, y, ...){
        panel.superpose(x, y, ...)
        panel.loess(x, y, lty = 2, span = 2 / 4, col = "red")
        },
    xlab = "Age class (month)",
    ylab = "Probability of death (per month)",
    data = mydata     
    )


Cela représente bien les 2 nuages de points (nuages femelle et mâle) mais effectue un seul lissage (du nuage total). Je pense qu'une solution pour y arriver est d'extraire les predictions des lissages et de les intégrer dans le tableau mydata, puis d'utiliser xyplot. Mais quelqu'un connait-il une solution plus directe ?

Matthieu

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

Messagepar Renaud Lancelot » 12 Sep 2006, 20:35

Voilà un exemple avec un jeu de données un poil plus général:

Code : Tout sélectionner

library(lattice)

foo <- data.frame(y = c(rnorm(10), rnorm(10, 5, 1)),
                  x = rnorm(20),
                  z = rep(c("A", "B"), times = 10),
                  g = rep(c("A", "B"), each = 10))

xyplot(y ~ x | z, groups = g, subscripts = TRUE, data = foo,
  panel = function(x, y, subscripts, ...){
    panel.superpose(x, y, col = c("red", "blue"), subscripts, ...)
    for(i in seq(length(levels(foo$g)))){
      cond <- foo$g[subscripts] == levels(foo$g)[i]
      X <- x[cond]
      Y <- y[cond]
      panel.loess(X, Y, span = 1, col = c("red", "blue")[i])
      }
    },
    auto.key = TRUE)


Renaud

Matthieu Lesnoff
Messages : 120
Enregistré le : 29 Nov 2004, 12:41

Messagepar Matthieu Lesnoff » 13 Sep 2006, 05:25

Super, merci Renaud


Retourner vers « Archives : Fonctions graphiques »

Qui est en ligne

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