Ce document explique les fonctions pairs et splom() (lattice) qui produisent des matrices de scatterplots.

La fonction pairs()

La fonction pairs() produit une matrice de nuages ("scatterplot matrix, draftman's plot) et attend un matrice comme argument (par exemple pairs(pays) produira une grande matrice de scatterplots de toutes les variables dans pays.

Voici un exemple qui sur la première ligne crée une matrice un peu plus petite en extrayant les variables 19 à 23; le premier exemple crée une matrice de scatteplots par défaut, tandis que le deuxième colorie les contients (coul est la variable que nous avons défini [ici])

 mat1 <-pays1[,19:23]
 pairs(mat1)
 pairs(mat1, bg=coul, pch=21)

pairs() est un fonction graphique de haut niveau qui utilise un ensemble de fonctions et paramètres par défaut pour produire son résultat. Comme R est un environnement de programmation vous avez la possibilité d'intervenir à tous les niveau pour produire des nuages de points exactement comme vous le souhaitez. Sans rentrer dans la complexité de cette programmation, donnons quelques exemples pratiques qui illustrent ces possibilités (c'est en même temps une introduction au style 'R').

pairs(mat1,panel=panel.smooth)
pairs(mat1,panel = panel.smooth,span=1/5)
pairs(mat1,upper.panel=panel.smooth,pch=".", span=0.1)

Produira un ensemble de nuages avec une courbe lowess. Comment cela peut fonctionner? En effet dans R on trouve une fonction qui s'appelle panel.smooth qui est activée par l'argument panel=. Il se trouve que cette fonction est prédéfinie et se trouve dans la bibliothèque de base; l'argument span du 2e exemple est un argument de la fonction panel.smooth qui à son tour le passera à la fin à la fonction lowess. Le 3e example ajoute la courbe lowess seulement au nuages du triangel supérieur.

pairs(mat1,panel=panel.car,pch=".",col="blue")
La bibliothèque "car" propose une autre fonction qui elle ajoute à la fois une courbe lowess et une droite de régression.

Bien sûr vous pouvez créer votre propre fonction que vous créez soit à part, soit vous la spécifiez directement après panel=.

Définissons d'abord une fonction : ajout qui ajoute une droite résistante et une droite de moindres carrées:

 ajout <- function(x,y) {
    points(x,y,pch=".")
    abline(line(x,y),col="red")
    abline(lsfit(x,y),col="blue")
    }
Vous pouvez utiliser cette fonction sans autre en tapant par exemple
plot(urb,mortinf)
ajout(urb,mortinf)
pour produire un graphique, mais ce qui nous intéresse ici, c'est son utilisation avec pairs:
pairs(mat1,panel = ajout)

Si vous voulez savoir comment produire des matrices à nuages qui contiennent des histogrammes des variables dans la diagonale ou encore les coefficients de correlations dans la partie supérieur examinez les examples de la fonction (help(pairs) ou example(pairs)).

Si vous y prenez les deux fonctions panel.cor et panel.hist

pairs(mat1,lower.panel=ajout,upper.panel=panel.cor,diag.panel=panel.hist)
produira le graphique ci-dessous (notez que la taille des caractères du coeff. de correlation varie en fonction de l'importance de la correlation....

La fonction splom() (lattice)

Les fonctions de la bibliothèque lattice, comme ici splom(), sont ont général plus évoluées que les fonctions de base, en particulier sur le plan de la qualité de la production (qualité publication) et dans l'orientation graphique en treillis (nuages conditionnels).

Nous allons pas rentrer dans ces détails ici, mais nous contenter de présenter un exemple de graphique que pairs ne peut pas produire, à savoir une matrice de scatterplots pour chaque continent et ceci sur un même graphique:

splom( ~ mat1 | continents)