top of page

GRAPHIQUES

Sous Rstudio, on peut faire des représentations graphiques des données.

 

Il existe pour cela plusieurs type de graphiques :

- Pour les variables qualitatives : diagramme en barres (fonction barplot) ou diagramme circulaire (fonction pie).

barplot(x, names=y) # Diagramme en bâtons de la variable qualitative y (vecteur des modalités) en fonction du vecteur nombre occurrences x

pie(x, labels=y) # Diagramme circulaire de la variable qualitative y (vecteur des modalités) en fonction du vecteur nombre occurrences x

- Pour les variables quantitatives : histogramme à classes de même largeur (fonction hist), nuage de dispersion (fonction plot) ou boîte à moustaches (fonction boxplot).

hist(x, prob=F, breaks=seq(0,n,l)) # Diagramme à classe de même largeur des données x. prob=F signifie que l’on représente en ordonnées les effectifs. breaks=seq(0,n,l) signifie que les bornes des classes sont obtenues en partageant l’intervalle ]0,n] en intervalles de même largeur l.

plot(x,y) # Nuage de dispersion des données y en fonction de données x

boxplot(x) # Boîte à moustaches des données x

Je vais vous présenter les différents paramètres de ces graphiques en prenant comme exemple la fonction plot qui crée un nuage de dispersion.

Il existe des dizaines d’options pour modifier l'apparence d'un graphique. Je vais donc vous présenter quelques options utiles pour améliorer la qualité visuelle d’un graphique.

Pour préciser un titre au graphique, il faut utiliser l’option main.

Pour donner un nom à chacun des axes, il faut utiliser les options xlab (pour l'abscisse) et ylab (pour l'ordonnée).

plot(Tableau$Longueur,Tableau$Largeur,

main="Nuage de dispersion des pétales \n (Illustration graphique)",

xlab="Longueur des pétales", ylab="Largeur des pétales")

 

À savoir : la commande \n permet de sauter une ligne.

 

 

Pour modifier le symbole représentant les observations dans un nuage de dispersion, on utilise l’option pch. Il faudra indiquer ensuite, un nombre allant de 0 à 25. On peut même indiquer un symbole ou une lettre.

 

plot(Tableau$Longueur,Tableau$Largeur,pch=25) # Le symbole est un triangle.

plot(Tableau$Longueur,Tableau$Largeur,pch="a") # Le symbole est la lettre a.

 

Ensuite, pour modifier la couleur des symboles, on utilise l’option col.

 

plot(Tableau$Longueur,Tableau$Largeur,pch=25,col="red")

 

Astuce : via la fonction colors(), on peut visualiser les 657 couleurs de base sous Rstudio.

 

 

Il est possible de modifier la taille des symboles afin de rendre le graphique plus lisible, cela se fait via l’option cex.

 

plot(Tableau$Longueur,Tableau$Largeur,pch=25,col="cyan",cex=4)

 

Vous pourrez obtenir plus d'informations sur comment modifier les caractéristiques d'un graphique via le lien suivant :

Par défaut, la zone graphique définie par les échelles sur les axes des abscisses et des ordonnées est choisie afin que toutes les observations soient représentées. Pour modifier chacune des échelles des axes du graphique, on utilise les options xlim (abscisse) et ylim (ordonnée). On doit alors préciser dans un objet de classe vector, la borne inférieure puis la borne supérieure de l’échelle.

 

plot(Tableau$Longueur,Tableau$Largeur,xlim=c(0,2),ylim=c(0,4))

 

 

La fonction plot gère automatiquement la définition des axes : graduations, annotations, couleur et épaisseurs des traits. Tous ces éléments peuvent être paramétrès via la fonctions axis( ). Il faut avoir préalablement supprimer l’un ou les deux axes, que l’on souhaite modifier, via les options xaxt="n", yaxt="n" ou axes=FALSE.

 

L’option axis a plusieurs paramètres :

- side : position de l’axe (1=bas, 2=gauche, 3=haut et 4=droite).

- at : emplacement des graduations. On utilise une séquence de nombres et on indique le début, la fin et l’intervalle.

- col : couleur de l’axe.

- lwd : épaisseur de l’axe.

 

plot(Tableau$Longueur,Tableau$Largeur,xaxt="n")

axis(side=1,at=seq(0,2,0.1),col="blue",lwd=2) # Modifie l’axe des abscisses.

 

plot(Tableau$Longueur,Tableau$Largeur,yaxt="n")

axis(side=1,at=seq(0,2,0.1),col="blue",lwd=2) # Modifie l’axe des ordonnées.

 

plot(Tableau$Longueur,Tableau$Largeur,axes=FALSE)

axis(side=1,at=seq(0,2,0.1),col="blue",lwd=2)

axis(side=2,at=seq(0,5,0.5),col="blue",lwd=2) # Modifie les deux axes.

 

 

Pour modifier l’emplacement d’un axe et l’orientation des chiffres, on utilise la fonction par() avec l’option mar.

 

par(mar=c(5,5,5,5))

plot(Tableau$Longueur,Tableau$Largeur,yaxt="n")

axis(side=4,at=seq(0,2,0.1),col="green",lwd=1)

 

 

 

Il est possible d’ajouter des labels (description à côté d’un point) aux observations d’un graphique. Cela se fait avec la fonction text().

 

La fonction text() a plusieurs options :

- pos : position des labels (1=bas, 2=gauche, 3=haut et 4=droite).

- cex : taille des labels.

- col : couleur des labels.

 

plot(Pétales$Longueur,Pétales$Largeur)

text(Pétales$Longueur,Pétales$Largeur,labels=row.names(Pétales),pos=3,cex=0.6,col="red") # Les labels sont égaux aux numéros ou noms (s’ils ont été modifié) des lignes de l’objet data.frame nommé Pétales.

 

 

Voyons maintenant, comment ajouter une légende à un graphique. Pour cela, on utilise la fonction legend().

 

La fonction legend() a plusieurs options:

- legend: noms des légendes.

- col : couleurs des symboles de la légende.

- pch : type de symbole.

 

color=c(rep("red",25),rep("blue",25))

plot(Tableau$Longueur,Tableau$Largeur,pch=25,col=color)

legend("topleft",legend=c("Fleurs rouges","Fleurs bleues"),col=c("red","blue"), pch=25,bty="n")

 

À savoir : l’option bty="n"» permet de supprimer l’encadrement par défaut de la légende.

 

 

Il peut être utile de visualiser les identifiants (numéros de l’observation) des valeurs atypiques. Cela se fait avec la fonction identify().

 

plot(Tableau$Longueur,Tableau$Largeur,pch=25)

identify(Tableau$Longueur,Tableau$Largeur,cex=0.8) # cex correspond à la taille de la police d’écriture de l’identifiant.

 

Après avoir exécuter la fonction identify(), il faut aller sur le graphique et cliquer sur les observations dont on souhaite visualiser l’identifiant. Puis, pour valider il faut taper sur la touche Echap.

 

 

Enfin, voici un code très intéressant car il permet de représenter l’ensemble des valeurs d'une variable sur un même graphique en les distinguant selon leur modalité et en ajoutant une légende afin de rendre le graphique plus facilement lisible. Pour les distinguer, le type et la couleur des symboles changera en fonction de la variété de fleur.

 

Couleur_Symbole=with(Tableau,ifelse(Variete == "setosa","red",ifelse(Variete == "versicolor", "blue", "green")))

Type_Symbole=with(Tableau,ifelse(Variete == "setosa",17, ifelse(Variete == "versicolor",3 , 20)))

 

plot(Tableau$Longueur,Tableau$Largeur,pch=Type_Symbole,col=Couleur_Symbole)

legend("topleft", legend=c("Setosa", "Versicolor", "Virginica"), col=c("red", "blue", "green"), pch(17,3,20), cex=1.2, bty="n")

 

 

​Il peut être utile de regrouper côte à côte des graphiques dans un fenêtre afin de mieux les comparer. Pour cela on utilise le paramètre mfrow de la fonction par(). Cela va créer un tableau dans lequel il y aura un graphique par cellule.

 

La structure de ce paramètre est la suivante :

​mfrow=c(n,p)

​- n correspond au nombre de lignes du tableau.

- p correspond au nombre de colonnes du tableau.

 

Pour regrouper côte à côte 3 graphiques, il faudra donc exécuter ces lignes de code.

 

par(mfrow=c(2,2)) # Fenêtre à 2 lignes et 2 colonnes.

Code graphique 1

Code graphique 2

Code graphique 3

par(mfrow=c(1,1)) # Pour revenir au paramétrage par défaut d’un unique graphique dans la fenêtre.

 

 

Pour finir, il est possible de modifier la disposition et la taille des graphiques via la fonction layout().

 

cellules=matrix(c(3,1,0,2), nrow=2, ncol=2, byrow=TRUE) # Affiche dans la première cellule le graphique 3, puis dans la deuxième cellule le graphique 1, puis laisse la cellule vide et enfin affiche dans la dernière cellule le graphique 2.

 

layout(cellules, widths=c(8,16), heights=c(4,8)) # Double la longueur du dernier graphique. Le dernier graphique s’affichera sur les deux colonnes de la dernière ligne.

layout.show(3)

bottom of page