Graphiques en R

L'objectif de ce TP est d'apprendre à faire quelques graphiques en R. Les capacités graphiques de R sont extrêmement étendues. Nous ne présentons ici que les plus simples.
Table des matières :

Afficher un attribut

On veut réaliser le graphique suivant de l'attribut Sleep. Cela est réalisé avec la fonction plot().

Un attribut par rapport à un autre

Droite de régression

Sur la graphique précédent, on peut ajouter la droite de régression avec la fonciton abline(). On va obtenir cela :

abline() ajoute une droite à un graphique étant donnée son équation. L'équation de la droite de régression est calculée par la fonction lm().
Supposons que l'on a deux vecteurs v et w de même longueur et que l'on veut calculer la relation linéaire exprimant wi en fonction de vi. lm (w ~ v) calcule le coefficient directeur et l'ordonnée à l'origine de la droite de régression. Un petit exemple :

Deux relations sur un même graphique

On veut afficher deux relations dans un même graphique : Dreaming en fonction de Sleep et Non.Dreaming en fonction de Sleep.
Pour cela, on affiche une première relation, par exemple celle que l'on a affiché précédemment Dreaming en fonction de Sleep.
Puis on ajoute l'autre relation avec la fonction points qui s'utilise exactement comme plot() sauf que points() ajoute des points à un graphique au lieu d'en commencer un nouveau.
Ajoutez ces points en bleu, en spécifiant pch = 19 dans la fonction points().
Vous ne le remarquez peut-être pas, mais il manque des points pour les gros dormuers : l'axe des ordonnées a été créé avec l'attribut Dreaming. Hors la durée de sommeil sans rêve est beaucoup plus longue que la durée de sommeil avec rêves. Pour que l'axe soit créé avec un intervalle correct, il faut l'indiquer lors du plot avec l'argument ylim qui indique les valeurs d'ordonnées minimale et maximale (il existe aussi xlim pour les abscisses). Pour connaître les valeurs extrêmes d'ordonnées, il suffit de faire :

> range (c (sommeil$Dreaming, sommeil$Non.Dreaming), na.rm = T)

et utilisez les valeurs dans le plot :

> plot (sommeil$Sleep, sommeil$Dreaming, ylim = c (0, 20))

Ce graphique manque encore d'une légende pour expliquer le sens des deux types de points. On l'ajoute à l'aide la fonction legend() comme suit :

> legend (3, 20,         # position du coin supérieur gauche de la légende
        c ("Dreaming sleep","Non dreaming sleep"), # les étiquettes associées
        pch = c (1, 19), # les points : cercle (1) et disque (19)
        col = c ("green", "blue"))  # leurs couleurs respectives

Faites ce graphique (avec les couleurs, les deux droites de régression, la légende).

Histogramme

Pour réaliser un histogramme, on utilise la fonction hist().

Camembert

Le camembert, quoique populaire, est une mauvaise manière de représenter des proportions. Néanmoins, on va voir comment en obtenir. On utilise la fonction pie ().
pie () a besoin de connaître les différentes tranches du camembert. Pour cela, on construit une table de contignence de l'attribut que l'on veut représenter et on passe cette table de contingence à pie(). La table de contingence s'obtient par table(). table() compte simplement le nombre d'occurences de chaque valeur. Par exemple, vous pouvez essayer :

> table (c (4, 2, 4, 3, 2, 1, 4, 2, 2, 0, 1, 5)

et vous obtenez le nombre d'occurances de chaque valeur dans le vecteur. Le camembert est alors dessiné par pie() :

> pie (table (c (4, 2, 4, 3, 2, 1, 4, 2, 2, 0, 1, 5))

Pour un attribut qui prend beaucoup de valeurs (typiquement un attribut continu comme Sleep ou Body.Weight, chaque valeur n'ait généralement présente qu'une seule fois. Dans ce cas, il faut regrouper les valeurs par paquets. La fonction cut () fait cela.

Mettre un graphique dans un fichier

On peut facilement stocker un graphique dans un fichier, au format pdf, png, jpeg, ...
Pour cela, si on peut le mettre dans un fichier pdf, il suffit avant de taper les commandes qui font le graphique, de taper la commande :

> pdf ("nom-du-fichier.pdf")

vous tapez ensuite toutes les commandes pour créer le graphique (rien ne s'affiche à l'écran). Et pour finir, vous tapez la commande :

> dev.off ()

Cette commande écrit le graphique dans le fichier et termine le graphique. Ensuite, les commandes graphiques sont réalisées à l'écran et non plus dans le fichier.

Si vous voulez obenir le graphique dans un fichier png, vous tapez la commande kpng ("nom-du-fichier.pdf") au lieu de pdf ("nom-du-fichier.pdf"), et même chose pour un fichier jpeg, vous tapez jpeg ("nom-du-fichier.pdf") au lieu de pdf ("nom-du-fichier.pdf").