Commit 842f5d99 by Laurence Viry

### ajout fichiers .md dans docs

parent 3f1fe10d
 ... ... @@ -54,6 +54,10 @@ fx <- sin(2*pi*grillex) plot(x=grillex,y=fx) ``` ![png](GraphiqueR_files/GraphiqueR_3_0.png) Il est plus classique d'utiliser la fonction plot avec des formules du type \$\bf{y^{\sim}x}\$ ... ... @@ -98,6 +102,61 @@ mtcars\$carb <- factor(mtcars\$carb) summary(mtcars) ``` 'data.frame': 32 obs. of 11 variables: \$ mpg : num 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ... \$ cyl : int 6 6 4 6 8 6 8 4 4 6 ... \$ disp: num 160 160 108 258 360 ... \$ hp : int 110 110 93 110 175 105 245 62 95 123 ... \$ drat: num 3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ... \$ wt : num 2.62 2.88 2.32 3.21 3.44 ... \$ qsec: num 16.5 17 18.6 19.4 17 ... \$ vs : int 0 0 1 1 0 1 0 1 1 1 ... \$ am : int 1 1 1 0 0 0 0 0 0 0 ... \$ gear: int 4 4 4 3 3 3 3 4 4 4 ... \$ carb: int 4 4 1 1 2 1 4 2 2 4 ... mpg cyl disp hp Min. :10.40 Min. :4.000 Min. : 71.1 Min. : 52.0 1st Qu.:15.43 1st Qu.:4.000 1st Qu.:120.8 1st Qu.: 96.5 Median :19.20 Median :6.000 Median :196.3 Median :123.0 Mean :20.09 Mean :6.188 Mean :230.7 Mean :146.7 3rd Qu.:22.80 3rd Qu.:8.000 3rd Qu.:326.0 3rd Qu.:180.0 Max. :33.90 Max. :8.000 Max. :472.0 Max. :335.0 drat wt qsec vs Min. :2.760 Min. :1.513 Min. :14.50 Min. :0.0000 1st Qu.:3.080 1st Qu.:2.581 1st Qu.:16.89 1st Qu.:0.0000 Median :3.695 Median :3.325 Median :17.71 Median :0.0000 Mean :3.597 Mean :3.217 Mean :17.85 Mean :0.4375 3rd Qu.:3.920 3rd Qu.:3.610 3rd Qu.:18.90 3rd Qu.:1.0000 Max. :4.930 Max. :5.424 Max. :22.90 Max. :1.0000 am gear carb Min. :0.0000 Min. :3.000 Min. :1.000 1st Qu.:0.0000 1st Qu.:3.000 1st Qu.:2.000 Median :0.0000 Median :4.000 Median :2.000 Mean :0.4062 Mean :3.688 Mean :2.812 3rd Qu.:1.0000 3rd Qu.:4.000 3rd Qu.:4.000 Max. :1.0000 Max. :5.000 Max. :8.000 mpg cyl disp hp drat Min. :10.40 4:11 Min. : 71.1 Min. : 52.0 Min. :2.760 1st Qu.:15.43 6: 7 1st Qu.:120.8 1st Qu.: 96.5 1st Qu.:3.080 Median :19.20 8:14 Median :196.3 Median :123.0 Median :3.695 Mean :20.09 Mean :230.7 Mean :146.7 Mean :3.597 3rd Qu.:22.80 3rd Qu.:326.0 3rd Qu.:180.0 3rd Qu.:3.920 Max. :33.90 Max. :472.0 Max. :335.0 Max. :4.930 wt qsec vs am gear carb Min. :1.513 Min. :14.50 0:18 0:19 3:15 1: 7 1st Qu.:2.581 1st Qu.:16.89 1:14 1:13 4:12 2:10 Median :3.325 Median :17.71 5: 5 3: 3 Mean :3.217 Mean :17.85 4:10 3rd Qu.:3.610 3rd Qu.:18.90 6: 1 Max. :5.424 Max. :22.90 8: 1 * Représentation de deux variables qualitatives: les variables **drat** et **wt** ... ... @@ -105,6 +164,10 @@ summary(mtcars) plot(mtcars[,"drat"],mtcars[,"wt"]) ``` ![png](GraphiqueR_files/GraphiqueR_9_0.png) Comme les deux variables sont contenues dans le même *data-frame*, une syntaxe plus simple permet d'avoir directement les noms de variables en labellés d'axe. ... ... @@ -112,6 +175,10 @@ Comme les deux variables sont contenues dans le même *data-frame*, une syntaxe plot(drat~wt,data=mtcars) ``` ![png](GraphiqueR_files/GraphiqueR_11_0.png) Cette représenation graphique aurait pu être obtenue en définissant de manière explicite les labels des axes à l'appel de la fonction "plot" avec les arguments **xlab** et **ylab**. ... ... @@ -126,6 +193,10 @@ plot(mtcars[,"drat"],mtcars[,"wt"],xlab="wt",ylab="drat") plot(wt~cyl,data=mtcars,xlab="Number of cylinders",ylab="Weight (1000 lbs)") ``` ![png](GraphiqueR_files/GraphiqueR_15_0.png) La fonction plot retourne une boîte à moustaches par modalité de la variable qualitative. Ce graphique permet de voir rapidement si il existe un effet de la variable *Numbers of cylinders* sur la varibale *Weight*. Il peut être obtenu à partir de la fonction **boxplot**. ... ... @@ -133,6 +204,28 @@ La fonction plot retourne une boîte à moustaches par modalité de la variable boxplot(wt~cyl,data=mtcars) ``` Error in eval(expr, envir, enclos): object 'wt' not found Traceback: 1. boxplot(wt ~ cyl) 2. boxplot.formula(wt ~ cyl) 3. eval(m, parent.frame()) 4. eval(expr, envir, enclos) 5. stats::model.frame(formula = wt ~ cyl) 6. model.frame.default(formula = wt ~ cyl) 7. eval(predvars, data, env) 8. eval(expr, envir, enclos) * Représenation de deux variables qualitatives par un diagramme bande: ... ... @@ -149,6 +242,10 @@ Pour chaque modalité du facteur explicatif ("vs") on la fréquence relative de plot(cyl~drat,data=mtcars) ``` ![png](GraphiqueR_files/GraphiqueR_21_0.png) Ce graphique peut être obtenu directement à partir de la fonction **splineplot**. ... ... @@ -157,11 +254,19 @@ spineplot(cyl~drat,data=mtcars) ``` ![png](GraphiqueR_files/GraphiqueR_23_0.png) ```R plot(mtcars[,"cyl"]~mtcars[,"drat"],xlab="Rear axle ratio",ylab="Number of cylinders") ``` ![png](GraphiqueR_files/GraphiqueR_24_0.png) ```R colorInd <-function(v,seuil) { ... ... @@ -172,6 +277,10 @@ plot(mtcars[,"drat"], ylab="Rear axle ratio",cex=0.5, pch=16,col=colS) ``` ![png](GraphiqueR_files/GraphiqueR_25_0.png) ```R plot(mtcars[,"drat"], ylab="Rear axle ratio",cex=0.5, pch=16,col="red") ``` ... ... @@ -188,12 +297,17 @@ Une fois le graphique tracé, on peut le compléter par d'autres informations: x<- 1:10;y <-x^2;z <-x^3;w<-x^(-2) plot(x,y,type="l",main="Fonctions puissances",cex.main=0.9) text(4,y[4]+5,expression(x^2)) lines(x,z,col="red") text(2,z[2]+5,expression(x^3)) lines(x,w,col="blue") text(6,w[6]+5,expression(x^-2)) ``` ![png](GraphiqueR_files/GraphiqueR_28_0.png) * ajout de *points* par la fonction **point()** * ajout de *flèches* par la fonction **arrow()** * ajout de *segments* par la fonction **segments()** ... ... @@ -217,11 +331,17 @@ data(iris) ```R par(mfrow=c(1,2)) # une ligne et deux colonnes par(mfrow=c(2,2)) # une ligne et deux colonnes plot(Sepal.Length~Sepal.Width,data=iris,pch=0) plot(Petal.Length~Petal.Width,data=iris,pch=16) plot(Sepal.Length~Sepal.Width,data=iris,pch=0) plot(Petal.Length~Petal.Width,data=iris,pch=16) ``` ![png](GraphiqueR_files/GraphiqueR_33_0.png) * Pour des graphiques de taille différentes, on utilisera la fonction **layout**. Elle admet comme argument, une matrice de taille **nrow X ncol**, les valeurs de la matrice correspondent aux numéros des graphiques qui doivent être dessinés dans ... ... @@ -243,6 +363,10 @@ plot(Sepal.Length~Sepal.Width,data=iris,pch=21) plot(Petal.Length~Petal.Width,data=iris,pch=16) ``` ![png](GraphiqueR_files/GraphiqueR_35_0.png) ## Personnalisation des graphiques Certains paramètres sont modifiables directement dans la commande graphique, d'autres sont accessibles dans la fonction par qui gère tous les paramètres graphiques du device: ... ... @@ -282,6 +406,10 @@ lines(iris[76:150,"Sepal.Length"],ylim=ecarty,col="red") legend("topleft",legend=c("sem1","sem2"),col=c("black","red"),lty=1) ``` ![png](GraphiqueR_files/GraphiqueR_40_0.png) * On peut insérer des symboles ou des formules mathématiques en utilisant la syntaxe "latex": ... ... @@ -290,6 +418,10 @@ plot(1,1,cex.lab=0.8,xlab=expression(bar(x) == sum(frac(x[i],10),i==1,10))) ``` ![png](GraphiqueR_files/GraphiqueR_42_0.png) ```R x <- seq(-4, 4, len = 101) y <- cbind(sin(x), cos(x)) ... ... @@ -300,6 +432,10 @@ matplot(x, y, type = "l", xaxt = "n",main = expression(paste(plain(sin) * phi, " axis(1, at = c(-pi, -pi/2, 0, pi/2, pi),labels = expression(-pi, -pi/2, 0, pi/2, pi)) ``` ![png](GraphiqueR_files/GraphiqueR_43_0.png) Pour connaître l'ensemble des paramètres qui permettent d'améliorer les graphiques, voir la fonction **par()** (help(par)) ... ... @@ -317,6 +453,10 @@ hist(iris\$Sepal.Length,col="red",main="Histogramme de Sepal.Length",prob=TRUE,xl plot(density(iris\$Sepal.Length),cex.main=0.8,main="Noyaux",xlab="Sepal.Length") ``` ![png](GraphiqueR_files/GraphiqueR_46_0.png) L'histogramme est un estimateur de la densité si on indique **prob=TRUE** ### Barplot ... ... @@ -333,6 +473,162 @@ Sepal.Length ```
1. (4.3,5.2]
2. (4.3,5.2]
3. (4.3,5.2]
4. (4.3,5.2]
5. (4.3,5.2]
6. (5.2,6.1]
7. (4.3,5.2]
8. (4.3,5.2]
9. (4.3,5.2]
10. (4.3,5.2]
11. (5.2,6.1]
12. (4.3,5.2]
13. (4.3,5.2]
14. (4.3,5.2]
15. (5.2,6.1]
16. (5.2,6.1]
17. (5.2,6.1]
18. (4.3,5.2]
19. (5.2,6.1]
20. (4.3,5.2]
21. (5.2,6.1]
22. (4.3,5.2]
23. (4.3,5.2]
24. (4.3,5.2]
25. (4.3,5.2]
26. (4.3,5.2]
27. (4.3,5.2]
28. (4.3,5.2]
29. (4.3,5.2]
30. (4.3,5.2]
31. (4.3,5.2]
32. (5.2,6.1]
33. (4.3,5.2]
34. (5.2,6.1]
35. (4.3,5.2]
36. (4.3,5.2]
37. (5.2,6.1]
38. (4.3,5.2]
39. (4.3,5.2]
40. (4.3,5.2]
41. (4.3,5.2]
42. (4.3,5.2]
43. (4.3,5.2]
44. (4.3,5.2]
45. (4.3,5.2]
46. (4.3,5.2]
47. (4.3,5.2]
48. (4.3,5.2]
49. (5.2,6.1]
50. (4.3,5.2]
51. (6.1,7]
52. (6.1,7]
53. (6.1,7]
54. (5.2,6.1]
55. (6.1,7]
56. (5.2,6.1]
57. (6.1,7]
58. (4.3,5.2]
59. (6.1,7]
60. (4.3,5.2]
61. (4.3,5.2]
62. (5.2,6.1]
63. (5.2,6.1]
64. (5.2,6.1]
65. (5.2,6.1]
66. (6.1,7]
67. (5.2,6.1]
68. (5.2,6.1]
69. (6.1,7]
70. (5.2,6.1]
71. (5.2,6.1]
72. (5.2,6.1]
73. (6.1,7]
74. (5.2,6.1]
75. (6.1,7]
76. (6.1,7]
77. (6.1,7]
78. (6.1,7]
79. (5.2,6.1]
80. (5.2,6.1]
81. (5.2,6.1]
82. (5.2,6.1]
83. (5.2,6.1]
84. (5.2,6.1]
85. (5.2,6.1]
86. (5.2,6.1]
87. (6.1,7]
88. (6.1,7]
89. (5.2,6.1]
90. (5.2,6.1]
91. (5.2,6.1]
92. (5.2,6.1]
93. (5.2,6.1]
94. (4.3,5.2]
95. (5.2,6.1]
96. (5.2,6.1]
97. (5.2,6.1]
98. (6.1,7]
99. (4.3,5.2]
100. (5.2,6.1]
101. (6.1,7]
102. (5.2,6.1]
103. (7,7.9]
104. (6.1,7]
105. (6.1,7]
106. (7,7.9]
107. (4.3,5.2]
108. (7,7.9]
109. (6.1,7]
110. (7,7.9]
111. (6.1,7]
112. (6.1,7]
113. (6.1,7]
114. (5.2,6.1]
115. (5.2,6.1]
116. (6.1,7]
117. (6.1,7]
118. (7,7.9]
119. (7,7.9]
120. (5.2,6.1]
121. (6.1,7]
122. (5.2,6.1]
123. (7,7.9]
124. (6.1,7]
125. (6.1,7]
126. (7,7.9]
127. (6.1,7]
128. (5.2,6.1]
129. (6.1,7]
130. (7,7.9]
131. (7,7.9]
132. (7,7.9]
133. (6.1,7]
134. (6.1,7]
135. (5.2,6.1]
136. (7,7.9]
137. (6.1,7]
138. (6.1,7]
139. (5.2,6.1]
140. (6.1,7]
141. (6.1,7]
142. (6.1,7]
143. (5.2,6.1]
144. (6.1,7]
145. (6.1,7]
146. (6.1,7]
147. (6.1,7]
148. (6.1,7]
149. (6.1,7]
150. (5.2,6.1]
```R # Sepal.Length est de class factor par(mfrow=c(1,2)) ... ... @@ -342,6 +638,24 @@ barplot(table(Sepal.Length),col=1:nlevels(Sepal.Length),legend=TRUE) barplot(table(Sepal.Length),col=1:nlevels(Sepal.Length),horiz=TRUE) ```
(4.3,5.2]
45
(5.2,6.1]
50
(6.1,7]
43
(7,7.9]
12
![png](GraphiqueR_files/GraphiqueR_51_1.png) ### pie: diagramme circulaire (camembert) ... ... @@ -349,6 +663,10 @@ barplot(table(Sepal.Length),col=1:nlevels(Sepal.Length),horiz=TRUE) pie(table(Sepal.Length),col=1:nlevels(Sepal.Length),radius = 1.) ``` ![png](GraphiqueR_files/GraphiqueR_53_0.png) ### Diagramme en barre par groupe ... ... @@ -361,6 +679,14 @@ class(Sepal.Width) ``` 'numeric' 'factor' ```R par(mfrow=c(1,3)) barplot(table(Sepal.Length,Sepal.Width),col=1:nlevels(Sepal.Length),legend=TRUE) ... ... @@ -370,6 +696,10 @@ barplot(table(Sepal.Length,Sepal.Width),col=1:nlevels(Sepal.Length),beside=TRUE) barplot(table(Sepal.Length,Sepal.Width),col=1:nlevels(Sepal.Length),beside=TRUE,horiz=TRUE) ``` ![png](GraphiqueR_files/GraphiqueR_56_0.png) ## Graphiques en plusieurs dimensions Les fonctions de représentation 3D sur une grille de points sont les fonctions ... ... @@ -397,6 +727,10 @@ z <-outer(x,y,f) persp(x,y,z,theta=30,phi=30,expand=0.5) ``` ![png](GraphiqueR_files/GraphiqueR_62_0.png) Nous pouvons obtenir les **courbes de niveaux** en utilisant la fonction **contour** (lignes de niveau) ou la fonction **image()** (lignes de niveau avec effet de couleur). ... ... @@ -407,6 +741,10 @@ contour(x,y,z) image(x,y,z) ``` ![png](GraphiqueR_files/GraphiqueR_64_0.png) Nous pouvons utiliser le package **rgl** pour construire la surface de réponse du graphique précédent. ... ... @@ -417,6 +755,16 @@ rgl.surface(x,y,z) plot3d(x,y,z) ``` Error in library(rgl): there is no package called ‘rgl’ Traceback: 1. library(rgl) 2. stop(txt, domain = NA) ## Package lattice ### Livres: ... ... @@ -441,5 +789,3 @@ plot3d(x,y,z) * Elegant Graphics for Data Analysis - Hadley Wickham (Edition Springer) * R Graphics Cookbook - Winston Chang (Edition O'Reilly)
 ... ... @@ -3738,7 +3738,7 @@ f(1:10, 1:10) ``` ![png](output_171_0.png) ![png](Objets_files/Objets_171_0.png) Comme nous avons transmis l'argument **point-point-point** à **plot.default()**, tout ce que **plot.default()** sait faire, notre fonction **f()** sait le faire également. ... ... @@ -3750,7 +3750,7 @@ f(1:10, 1:10, main = "Titre de ce graphique", pch = 19,col = "blue", las = 1, ``` ![png](output_173_0.png) ![png](Objets_files/Objets_173_0.png) ### Plusieurs résultats à une même fonction ... ...
 ... ... @@ -25,6 +25,30 @@ somme monbloc ```
1. 1
2. 2
3. 3
4. 4
5. 5
6. 6
7. 7
8. 8
9. 9
10. 10
55 55 ## Structure de contrôle ### Les boucles for ou while ... ... @@ -38,6 +62,28 @@ Les boucles classiques de la programmation sont disponibles sous **R**. for (i in 1:20) print(i) ``` [1] 1 [1] 2 [1] 3 [1] 4 [1] 5 [1] 6 [1] 7 [1] 8 [1] 9 [1] 10 [1] 11 [1] 12 [1] 13 [1] 14 [1] 15 [1] 16 [1] 17 [1] 18 [1] 19 [1] 20 L'ensemble des valeurs prise par l'**indice de la boucle** i est un vecteur qui peut être de mode divers obtenu à partir des constructeurs classiques de vecteurs dans R (c(), seq(), rep(),...). ... ... @@ -46,6 +92,18 @@ L'ensemble des valeurs prise par l'**indice de la boucle** i est un vecteur qui for (i in seq(1,20,2)) print(i) ``` [1] 1 [1] 3 [1] 5 [1] 7 [1] 9 [1] 11 [1] 13 [1] 15 [1] 17 [1] 19 ```R # Indice de mode "character" ... ... @@ -53,6 +111,11 @@ vecteur <-c("Alice","Marcel","Alexis") for(i in vecteur) print(i) ``` [1] "Alice" [1] "Marcel" [1] "Alexis" * En général, on a plusieurs instructions à effectuer à chaque itération de la boucle for. On encadre ces itérations avec des accolades "**{}**". Un boucle s'écrit: ... ... @@ -80,9 +143,14 @@ for (i in 1:n){ z[i] <- x[i] + y[i] } meanx <- meanx/n meanx meany <- meany/n ``` -0.0493923703698845 * On peut sauter une itération dans une boucle avec l'instruction **next**. Pour mettre à zéro tous les éléments d'une matrice sauf les éléments diagonaux : ... ... @@ -100,6 +168,28 @@ for(i in 1:3){ mat ```