Ce document décrit la production de plots conditionnels (co-plots) à l'aide des fonctions coplot() et la fonction lattice xyplot().

La fonction coplot()
Exemple 1
coplot(mortinf ~ urb | continents, data=pays1, rows=1)

Produit un nuage de points pour chaque continent; continent, étant un facteur (variable catégorielle); rows=1 force R de produire une seule ligne de graphiques (sinon ils pourraient s'afficher sur plusieurs lignes.

Exemple 2
coplot(mortinf ~ urb | pnbhab*continents, data=pays1, number=3)

On produit un nuage pour chaque combinaison des variables conditionnelles. continents est un facteur, par mais la variable pnbhab est un vecteur métrique, number=3 sera utilisé pour créer trois intervalles, de taille à peu près égale. Par défaut les intervalles se chevauchent de 0.5 (fraction qui donne la fraction de l'effectif; vous pouvez contrôler le chevauchement par l'argument overlap=, s'il est 0 il n'y aura pas de chevechement, s'il est négatif des observations seront omises.

Exemple 3
coplot(mortinf ~ urb | continents, data=pays1, rows=1,panel=function(x,y,...) { points(x,y); abline(line(y,x)) })

Cet exemple montre un autre co-plot, mais cette fois-ci nous rajoutant une droite résistante à chaque panneau. C'est l'argument panel=function(x,y,...) { points(x,y); abline(line(y,x)) } qui permet de le faire; on définit pour chaque panel une fonction, qui dans notre cas appelle deux fonctions, d'abord points(x,y) pour dessiner les points, ensuite abline(line(y,x)) pour ajouter une droite obtenue de la fonction line(). Notez que si l'on omettait points() on ne verrait que les droites dans les graphiques.

La fonction xyplot() (bibliothèque lattice)

xyplot(mortinf ~ urb | equal.count(tert,3)*equal.count(pnbhab,3), data=pays1)
produit un co-plot entre les deux variables pour chaque combinaison de la variable tert découpe en 3 classes de taille égale et de la variable pnbhab également découpée en trois classes.

La puissance de ces fonctions, en particuliers celles de la bibliothèque lattice vient du fait que vous pouvez contrôler de façon détaillée la production de chaque graphique en créant vous-même la fonction qui déssine le graphique. Dans l'exemple ci-dessous nous rajoutons à la fois une droite des moindres carrées et une droite résistante:


xyplot(mortinf ~ urb | continents, data=pays1, 
panel= function(x,y)
   {panel.xyplot(x,y) 
    panel.abline(line(x,y))
    panel.abline(lsfit(x,y))
    }
)

L'argument panel= définit une fonction pour chaque "case" du treillis; ici on dessine un xyplot et panel.ablineajoute un droite.

PS: Pour que cela fonctionne vous devez activer la bibliothèques "lattice".