Gérer les graphiques avec R

1- Sauvegarder un graphique

Lorsqu'on veut sauvegarder un graphique sous forme d'image, il y a différentes commandes pour réaliser différents formats.

# 1 - Utiliser la commande png indiquant qu'il faudra sauvegarder l'image

png()

# 2 - Tracer le graphique (ici pie en exemple)

pie(100, col=2) #?png pour voir comment modifier la taille, la résolution

# 3 - Fermer les fenêtres graphiques avec graphics.off ou dev.off

# PS : la sauvegarde a lieu à l'adresse par défaut affichable avec getwd() et modifiable avec setwd()

dev.off()

pdf()

# Puis tracer le graphique

dev.off() # pour terminer la sauvegarde

# ATTENTION : l'image sera sauvegardée dans le répertoire source dont on peut obtenir l'adresse avec getwd() ou qu'on peut redéfinir avec l'aide la commande setwd.

# Même usage que pour pdf() ou png()

2- Gérer les couleurs sous R

Lorsqu'on veut colorer une courbe, un point, un diagramme, il y a plusieurs manières de formuler le code couleur :

pie(100, col=2) # col=2 permet d'accéder à une couleur pré-enregistrée, ici le rouge - la fonction pie est utilisée ici à titre d'exemple 

pie(100, col="#F7D358") # chaque paire de lettres correspond à une composante (rouge, vert ou bleu)

# pour choisir sa couleur au format html

couleur =rgb(red=(245/255), green=(169/255), blue=(169/255), alpha=0.8) # l'alpha traduit la transparence

plot(100,200,pch=16,cex=3)

polygon(x=c(50,150,150,50),y=c(0,0,300,300),col=couleur) 

# Il suffit d'ajouter une paire de lettre au code

plot(100,200,pch=16,cex=3)

polygon(x=c(50,150,150,50),y=c(0,0,300,300),col="#F7FF58CC")

x = rnorm(20,4)*2 ; y=rnorm(20,3*2,1)

barplot(x,col=terrain.colors(y, alpha = 1))

# Pour utiliser les palettes disponibles : liens externe 1et lien externe 2

# Ou encore la fonction rainbow pour capter dans la palette de l'arc-en-ciel

rainbow(12) # génére 12 couleurs

pie(rep(1, 12), col = rainbow(12))

data(swiss) ; plot(swiss[,1:2],col=rainbow(30)[as.factor(swiss[,4])],pch=16,cex=2)

data(swiss) ; plot(swiss[,1:2],col=heat.colors(30)[as.factor(swiss[,4])],pch=16,cex=2)

data(swiss) ; plot(swiss[,1:2],col=terrain.colors(30)[as.factor(swiss[,4])],pch=16,cex=2)

data(swiss) ; plot(swiss[,1:2],col=colorRampPalette(c("red","black"))(10)[as.factor(swiss[,4])],pch=16,cex=2)

voir la commande colorRampPalette 

colorRampPalett(c("green","orange","red"))

install.packages("prettyGraphs")

library("prettyGraphs")

colors <- add.alpha(colors,alpha=0.8)

Colorer un graphique avec la palette Viridis adapté aux daltoniens.

# Installer et charger le package viridis

install.packages("viridis")

library(viridis)

# Générer des données aléatoires

x <- rnorm(20) ; y <- rnorm(20) ; z <- rnorm(20)

# Créer une palette de couleurs avec viridis

pal <- viridis(20) # pal : palette de 20 couleurs

# Faire le graphique avec les couleurs correspondant à z

plot(x, y, col = pal[cut(z, breaks = 20)], pch = 16, cex = 2)

#cut() : découpe z en 20 catégories en fonction de sa valeur

La fonction col2rgb() permet de convertir une couleur donnée en un vecteur de trois entiers correspondant aux valeurs RGB (rouge, vert et bleu) de la couleur.

La fonction col2hex() permet quant à elle de convertir une couleur donnée en une chaîne de caractères hexadécimaux correspondant aux valeurs RGB de la couleur.

3- Gérer les marges et axes d'un graphique ou diagramme

par("mar") 

plot.new()

#par(mar=c(marge basse, marge gauche, marge haute, marge droite)) 

par(mar = c(8, 8, 2, 2))

plot(c(1:10)) # Exemple

4- Gérer les fenêtres graphiques

x11() permet de créer une nouvelle fenêtre graphique sans écraser les anciens graphiques.

graphics.off() permet de fermer toutes les fenêtres graphiques

for (i in 1:10) {hist(rnorm(150));x11()}

graphics.off()

De façon équivalente et plus progressive, browser(), permet de faire défiler les graphiques un par un en appuyant sur ENTRÉE.

Si on désire sortir de browser(), il suffit de taper Q dans la console.

for (i in 1:10) {hist(rnorm(150));browser()}

5- La commande text() pour annoter un diagramme

Mettre en forme le tracé des points et courbes

couleur du fond du graphique

par(bg="orange")

plot(c(1,2,3)) 

Afficher la p-value en écriture scientifique

x <- rnorm(100) ; y <- rnorm(100)+3*x

plot(x, y, sub=paste("X et Y sont corrélés avec une p-value de",format(cor.test(x,y)$p.value,scientific=TRUE,digits=2)))

La fonction format() permet d'afficher des nombres en écriture scientifique et de limiter le nombre de chiffres après la virgule.

Idéal pour afficher la p-value dans un sous-titre sub.

Mettre en forme les axes et graduations

Rubrique à terminer.

Site en construction

Lien externe : Des exemples de graphiques

Autres paramètres graphiques

Différents packages (librairies) pour visualiser les données sous R

Annotation - expression - bquote

http://astrostatistics.psu.edu/su07/R/html/grDevices/html/plotmath.html

PAGE EN TRAVAUX

Réaliser une répartition de données : histogramme (2D ou 3D), boîtes à moustaches, camembert ou diagramme en violons