Cours 6 Partie 2 Les graphiques
Les graphiques Le résultat d’une fonction graphique ne peut pas être assigné à un objet mais est envoyé à un dispositif graphique (graphical device) Il y a deux sortes de fonctions graphiques: - principales qui créent un nouveau graphe - secondaires qui ajoutent des éléments au graphe pré-existant
La commande par() Les graphes sont produits en fonction de paramètres graphiques définis par défaut et modifiables à travers la commande par() Exemples: par(bg="cornsilk") par(xlog=TRUE); par(mfrow=c(3,2)) divise la fenêtre graphique en 6 (par défaut 1 seul graphe par fenêtre)
La commande par() suite Il est prudent de conserver l ’ancien paramétrage exemple: op=par(no.readonly = TRUE) #mémorise sous le nom op l ’ancien paramétrage par(mfrow=c(1,2)) #modifie le paramétrage plot(1:10,sin(1:10)) plot(1:10,cos(1:10)) par(op) # rétablit l ’ancien paramétrage
Les fenêtres graphiques On peut avoir plusieurs fenêtres, une seule est active Ouvrir une fenêtre: xll(),pdf()… Liste des fenêtres ouvertes et leur numéro dev.list() Active la fenêtre i: dev.set(i) Ferme la fenêtre i: dev.off(i) Partitionner une fenêtre split.screen(): exemple: split.screen(c(1,2)) 2 graphes en ligne screen():sélectionne une fenêtre erase.screen():efface, sauf si le fond d’écran est transparent(valeur par défaut)
Exemple: la fonction curve() curve(sin,0, pi);
curve(x^3-3*x, -2, 2) curve(x^2-2, add = TRUE, col = "violet")
curve(pnorm(x),-3,3, col="red") curve(dnorm(x),-3,3,col="blue",add=TRUE)
Quelques fonctions graphiques principales plot(x): valeurs de x en ordonnées plot(x,y): nuage de points y en ordonnées x en abcisses coplot():trace tous les nuages conditionnels boxplot():boites à moustaches pairs(): plusieurs nuages, tous les nuages possible sur toutes les colonnes possible du data frame hist():histogramme des fréquences barplot(), matplot(): : diagrammes en batons curve(): tracé d ’une courbe qqnorm(x):quantiles de x en fonction des quantiles de la loi normale qqlot(x,y):quantiles de y en fonction des quantiles de x persp():vues en perspective
Les arguments des fonctions principales Titre de la figure (en haut du graphique) main= Nom de l’axe des x des y Fixe les limites des axes xlab= ylab= xlim= ylim= « p »dessine des points « l » dessine une ligne, « s » ou « S » une fonction en escalier… type= Considère les axes comme logarithmiques log=« x » log=« y » log=« xy » axes=FALSE Force la fonction à agir comme une fonction de bas niveau (superpose au graphique précédent) add=TRUE
Fonctions graphiques secondaires points():comme plot(), mais superpose au graphique précédent lines(),segments() :trace des segments text(),mtext(): ajout de texte arrows(): ajoute des flèches abline(h=): lignes horizontales abline(v=): lignes verticales abline(a,b): ligne de pente b, ordonnée à l’origine a legend(x,y): ajoute la légende au point (x,y) title(): ajout du titre locator():positionne un point sur la fenêtre graphique NB: avec text() on peut afficher une équation utilisant des expressions compatibles avec TEX
curve(dnorm(x),from=-3,to=3, main="densité de la loi normale centrée réduite") abline(v=2,col=2) abline(v=-2,col=2) abline(v=-1,col=3) abline(v=1,col=3) abline(v=3,col=4) abline(v=-3,col=4) abline(h=0)
Exemples de graphiques plot(rnorm(100))
plot(rnorm(100),type="l")
simdonnees=rexp(1000, rate=0 simdonnees=rexp(1000, rate=0.1) hist(simdonnees,prob=T) curve(dexp(x,rate=.1),add=TRUE) par(bg="lightyellow")
x=rnorm(10);y=rnorm(10); plot(x,y,xlab="dix valeurs au hasard", ylab="dix autres valeurs")
plot(x,y,xlab="dix valeurs au hasard", ylab="dix autres valeurs", xlim=c(2,2),ylim=c(2,2), pch=22,col="red",bg="yellow")
x=rnorm(10);y=rnorm(10); plot(x,y,xlab="dix valeurs au hasard", ylab="dix autres valeurs",xlim=c(-2,2),ylim=c(- 2,2),pch=22,col="red",bg="yellow",bt y="l",tcl=0.4,main="comment customiser un graphique avec R")
boxplot():boites à moustaches boxplot(len ~ dose, data = ToothGrowth) len supp dose 1 4.2 VC 0.5 2 11.5 VC 0.5 3 7.3 VC 0.5 4 5.8 VC 0.5 5 6.4 VC 0.5 6 10.0 VC 0.5 7 11.2 VC 0.5 8 11.2 VC 0.5 9 5.2 VC 0.5 10 7.0 VC 0.5
pairs(): plusieurs nuages, tous les nuages possible sur toutes les colonnes possible du data frame pairs(iris[1:4], pch = 21, bg = c("red", "green3", "blue")[unclass(iris$Species)]) iris Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5.0 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa
barplot(): diagrammes en batons T =table(rpois(100,lambda=5)) r = barplot(T, col='gray')
barplot() tN=table(Ni = rpois(100, lambda=5)) r=barplot(tN, col=rainbow(20)) r [,1] [1,] 0.7 [2,] 1.9 [3,] 3.1 [4,] 4.3 [5,]....
Pour aller plus loin sur les graphiques demo(graphics); Et admirer...