Présentation de ggplot2

Lorsqu’on fait des statistiques descriptives on souhaite souvent partitionner la fenêtre graphique en fonction des différents niveaux pris par une variable catégorielle. Réaliser de tels graphiques se révèle vite assez compliqué avec les librairies de base (graphics, lattice…) de R. Dans le but de facilité la réalisation de tels graphiques Hadley Wickham a développé la librairie ggplot2 qui est rapidement devenue populaire dans le monde de la bioinformatique (ici les variables catégorielles peuvent être des gènes, groupe de gènes, chromosomes, voies de signalisation, marque de chromatine…). L’une des particularités de la librairie ggplot2 est que son développement est basé sur un modèle proposé par Leland Wilkison dans son ouvrage “The Grammar of Graphics”. Dans ce modèle le graphique est vu comme une entité composé de couches successives (layers), d’échelles (scales), d’un système de coordonnées et de facettes. Il faut donc créer un graphique et venir ajouter les différents éléments à l’aide de l’opérateur ‘+’. Le principe est assez déconcertant pour les utilisateurs des librairies basiques de R. Cependant, avec le temps on mesure l’intérêt de cette solution car elle nécessite moins de manipulations pour réaliser des graphiques complexes.

Réaliser un graphique basique

boxplot et violin plot

Les boîtes à moustaches (boxplots) et diagramme en violon (violin plots) peuvent être utilisés pour représenter les distributions associées à un jeu de données. On donne ci-dessous quelques exemples.

## loading ggplot2 package
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 3.3.2
## Then we can load a demonstration dataset
data(chickwts)
View(chickwts)

## Then we declare a new graphics and associate 
## a dataset. Here the aes (aesthetic) argument is set
## to feed and len that correspond to Insectfeeds dataset column names and 
## will be the x and y axes respectively.
p <- ggplot(data=chickwts, aes( x=feed, y=weight))

## We have to indicate the type of requested graphics 
p.bp <- p + geom_boxplot()
print(p.bp)

## We can also easily produce a violin plot using the following instructions

p.vp <- p + geom_violin()
print(p.vp)

Nuages de points

Il y a environ 40 types de graphiques disponibles. Quelques exemples présentent ci-dessous les instructions pour réaliser des nuages de points.

## We can for instance show the values associated to each feed
p.pt <- p + geom_point()
print(p.pt)

## However as they are some ties it may be advised to
## use the jitter option that will add some randomness to the value of the x axis (that here are categorical but can be viewed as 1, 2, 3...)
p.jt <- p + geom_jitter()
print(p.jt)