Valid XHTML     Valid CSS2    

Listing du fichier intror3.php

 

00001     <?php
00002     
# (gH) -_- intror3.php ; TimeStamp (unix) : 19 Ao&ucirc;t 2013 vers 20:20
00003     
00004     
error_reporting(E_ALL | E_NOTICE | E_STRICT) ;
00005     include(
"std7.php") ;
00006     include(
"intror_inc.php") ;
00007     include_once(
"../../statuno.php") ;
00008     
00009     
$numSerie
= 3 ;
00010     
debutPageExoScr1
($numSerie) ;
00011     
00012     
## -------------------------------------------------------------------------------------------
00013     
00014     
sdl
(3) ; echo cmt(' pour afficher toutes les solutions : intror3.php?solutions=1') ; sdl(3) ;
00015     
00016     
## -------------------------------------------------------------------------------------------
00017     
00018     
p
("texte") ;
00019     echo
"" ;
00020     
finp() ;
00021     
debutSection() ;
00022     
00023     
$tableauDesRubriques = array() ;
00024     
$idr
= 0 ;
00025     
$idr
++; $tableauDesRubriques[$idr] = "Types de graphiques et philosophie des graphiques en $R " ;
00026     
$idr
++; $tableauDesRubriques[$idr] = "Quelles instructions pour quels trac&eacute;s&nbsp;?" ;
00027     
$idr
++; $tableauDesRubriques[$idr] = "Trac&eacute; de points, de courbes et gestion des options (axes, couleurs...) " ;
00028     
$idr
++; $tableauDesRubriques[$idr] = "Superposition de graphiques " ;
00029     
$idr
++; $tableauDesRubriques[$idr] = "Histogrammes de classes et de fr&eacute;quences" ;
00030     
$idr
++; $tableauDesRubriques[$idr] = "\"Boxplots\" et ".em("consor") ;
00031     
$idr
++; $tableauDesRubriques[$idr] = "Export de graphiques en PNG et PDF " ;
00032     
$idr
++; $tableauDesRubriques[$idr] = "Heatmap, vous avez dit heatmap&nbsp;?" ;
00033     
$idr
++; $tableauDesRubriques[$idr] = "Configuration de $R et des graphiques" ;
00034     
$idr
++; $tableauDesRubriques[$idr] = "Non pr&eacute;sentation (!) des packages graphics, beanplot, lattice, grid, plotrix et ggplot2. " ;
00035     
$idr
++; $tableauDesRubriques[$idr] = "Bibliographie des graphiques en $R&nbsp;" ;
00036     
$tdmCRLM
= new tdm($tableauDesRubriques) ;
00037     
$tdmCRLM
->titre() ;
00038     
$tdmCRLM
->menu("oui","oui","nou") ;
00039     
00040     
pvide() ;
00041     
00042     
p() ;
00043      echo
"Il est possible d'afficher toutes les solutions via "
.href("intror3.php?solutions=1","?solutions=1","bouton_fin jaune_pastel nou").". " ;
00044     
finp() ;
00045     
00046     
finSection() ;
00047     
00048     
debutSection() ;
00049     
$numExo
= 0 ;
00050     
00051     
## -------------------------------------------------------------------------------------------
00052     
00053     
$tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Types de graphiques et philosophie des graphiques en $R
00054     
00055     ## -------------------------------------------------------------------------------------------
00056     
00057     
blockquote() ;
00058     
00059     
blockquote() ;
00060     
00061     
p
("texte") ;
00062     echo
"Quel type de graphiques peut-on tracer en
$R&nbsp;?" ;
00063     echo
" O&ugrave; peut-on voir des exemples de trac&eacute;s sophistiqu&eacute;s en
$R&nbsp;?" ;
00064     echo
" Savez-vous nommer tous les "
.aname("graphiques","graphiques")." ci-dessous&nbsp;?" ;
00065     
finp() ;
00066     
?>
00067     

00068     <blockquote>
00069     <table summary="images" cellspacing="20" border="0">
00070     <tr>
00071     <td align="center"><a href="../../images/anabiv.png"><img src="../../images/anabiv.png" alt="anabiv" height="150"/></a></td>
00072     <td align="center"><a href="../../Bism/lea_acp1.png"><img src="../../Bism/lea_acp1.png" alt="lea" height="150"/></a></td>
00073     <td align="center"><a href="../Eda/chol.png"><img src="../Eda/chol.png" alt="stim1" height="150"/></a></td>
00074     <td align="center"><a href="../Eda/Stim/stim_demo2.png"><img src="../Eda/Stim/stim_demo2.png" alt="stim1" height="150"/></a></td>
00075     </tr>
00076     <tr>
00077     <td align="center"><a href="../../images/S12METAVIR.png"><img src="../../images/S12METAVIR.png" alt="s12metavir" height="150"/></a></td>
00078     <td align="center"><a href="../../Datasets/iris.gif"><img src="../../Datasets/iris.gif" alt="iris" height="150"/></a></td>
00079     <!-- <td align="center"><a href="../../images/s12corr.png"><img src="../../images/s12corr.png" alt="s12corr" height="150"/></a></td> -->
00080     <td align="center"><a href="preyprots.png"><img src="preyprots.png" alt="preyprots" height="150"/></a></td>
00081     <td align="center"><a href="../../images/acp_12.png"><img src="../../images/acp_12.png" alt="acp12" height="150"/></a></td>
00082     </tr>
00083     <tr>
00084     <td align="center"><a href="../../images/acp_ind12.png"><img src="../../images/acp_ind12.png" alt="acp12ind" height="150"/></a></td>
00085     <td align="center"><a href="../../images/BulkinessGdUnip.png"><img src="../../images/BulkinessGdUnip.png" alt="bulkiGunip" height="150"/></a></td>
00086     <td align="center"><a href="../../images/fig2.png"><img src="../../images/fig2.png" alt="fig2" height="150"/></a></td>
00087     <td align="center"><a href="../../images/G.png"><img src="../../images/G.png" alt="GLY" height="150"/></a></td>
00088     </tr>
00089     <tr>
00090     <td align="center"><a href="heatmap.png"><img src="heatmap.png" alt="heatmap" height="150"/></a></td>
00091     <td align="center"><a href="dag.png"><img src="dag.png" alt="dag" height="150"/></a></td>
00092     <td align="center"><a href="network.png"><img src="network.png" alt="network" height="150"/></a></td>
00093     <td align="center"><a href="kegg_graph.png"><img src="kegg_graph.png" alt="kegg_graph" height="150"/></a></td>
00094     </tr>
00095     <tr>
00096     <td align="center"><a href="chernoff.png"><img src="chernoff.png" alt="chernoff" height="150"/></a></td>
00097     <td align="center"><a href="normalisation.png"><img src="normalisation.png" alt="normalisation" height="150"/></a></td>
00098     <td align="center"><a href="lmres.png"><img src="lmres.png" alt="lmres" height="150"/></a></td>
00099     <td align="center"><a href="tricroise.png"><img src="tricroise.png" alt="tricroise" height="150"/></a></td>
00100     </tr>
00101     <tr>
00102     <td align="center"><a href="heatscatter.png"><img src="heatscatter.png" alt="heatscatter" height="150"/></a></td>
00103     <td align="center"><a href="regressionconfint.png"><img src="regressionconfint.png" alt="regressionconfint" height="150"/></a></td>
00104     <td align="center"><a href="dendrogram.png"><img src="dendrogram.png" alt="dendrogram" height="150"/></a></td>
00105     <td align="center"><a href="bigraph.png"><img src="bigraph.png" alt="bigraph" height="150"/></a></td>
00106     </tr>
00107     <tr>
00108     <td align="center"><a href="assocplot.png"><img src="assocplot.png" alt="assocplot" height="150"/></a></td>
00109     <td align="center"><a href="mosaicplot.png"><img src="mosaicplot.png" alt="mosaicplot" height="150"/></a></td>
00110     <td align="center"><a href="spider.png"><img src="spider.png" alt="spider" height="150"/></a></td>
00111     <td align="center"><a href="clusterplot.png"><img src="clusterplot.png" alt="clusterplot" height="150"/></a></td>
00112     </tr>
00113     <tr>
00114     <td align="center"><a href="beeswarm2.png"><img src="beeswarm2.png" alt="beeswarm2" height="150"/></a></td>
00115     <td align="center"><a href="bagplot.png"><img src="bagplot.png" alt="bagplot" height="150"/></a></td>
00116     <td align="center"><a href="coplot.png"><img src="coplot.png" alt="coplot" height="150"/></a></td>
00117     <td align="center"><a href="barp.png"><img src="barp.png" alt="barp" height="150"/></a></td>
00118     </tr>
00119     </table>
00120     </blockquote>
00121     
00122     
00123     <?php
00124     
00125     
# manque contourplot mosaicplot radarplot sunflowerplot persp qqplot stripchart spider spineplot dotchart clusterplot
00126     
00127     
p
("texte") ;
00128     echo
"Quelles sont les options de la fonction "
.b("plot()")."&nbsp;? " ;
00129     echo
"O&ugrave; sont stock&eacute;es les valeurs par d&eacute;faut pour les graphiques en
$R&nbsp;? " ;
00130     echo
"Comment modifier une option puis remettre la valeur par d&eacute;faut&nbsp;?" ;
00131     
finp() ;
00132     
00133     
finblockquote() ;
00134     
00135     
solution
($numExo,$numSerie) ;
00136     
00137     
p
("texte") ;
00138     echo
"
$R peut tout tracer tous les types de graphiques existants. Voici quelques noms de fonctions &eacute;vocateurs avec indication du package associ&eacute;&nbsp;:" ;
00139     
finp() ;
00140     
00141     
00142     
blockquote() ;
00143     
table
(1,15,"collapse") ;
00144     
entetesTableau
("Fonction Package D&eacute;monstration Fonction Package D&eacute;monstration","bleu_pastel") ;
00145     
00146     
$ldf
= "plot matplot pairs barplot pie dotchart coplot cdplot mosaicplot spineplot persp " ;
00147     
$ldf
.= "image contour heatmap hist qqnorm qqplot boxplot stripchart dotchart assocplot sunflowerplot rug vioplot spider radar circular clusterplot" ;
00148     
$tdf
= preg_split("/\s+/",$ldf) ;
00149     
00150     
$ldp
= "graphics graphics graphics graphics graphics graphics graphics graphics graphics graphics graphics " ;
00151     
$ldp
.= "graphics graphics stats graphics stats stats graphics graphics graphics graphics graphics graphics vioplot psych psych circular LSD" ;
00152     
$tdp
= preg_split("/\s+/",$ldp) ;
00153     
00154     
$ido
= -1 ;
00155     
tr() ;
00156     foreach (
$tdf
as $fonc) {
00157     
$ido++ ;
00158     
$f
= $tdf[$ido] ;
00159     
$p
= $tdp[$ido] ;
00160     
$d
= "example($f) " ;
00161      if (!((
$p
=="graphics") or ($p=="stats"))) { $d = "library($p) ; $d " ; } ;
00162     
td
("","tajaunec") ;
00163      if ((
$f
=="qqplot") or ($f=="radar")) {
00164      if (
$f
=="qqplot") { echo hrrr("qqnorm",$p,"qqplot()")."&nbsp;" ; } ;
00165      if (
$f
=="radar") { echo hrrr("spider",$p,"radar()")."&nbsp;" ; } ;
00166      } else {
00167      echo
hrrr
($f,$p)."&nbsp;" ;
00168      } ;
# fin si
00169     
fintd() ;
00170     
td
("","tarose") ; echo hrrp($p) ; fintd() ;
00171     
td
("","tagris") ; echo "&nbsp; $d &nbsp;" ; fintd() ;
00172      if ((
$ido
% 2)==1) {
00173     
fintr() ;
00174      if (
$ido
<27) { tr() ; } ;
00175      }
# fin si
00176     
} # fin pour ;
00177     
fintable() ;
00178     
finblockquote() ;
00179     
00180     
p
("texte") ;
00181     echo
" Le site " ;
00182     
#echo href("http://rgm3.lab.nig.ac.jp/RGM/","R Graphical Manual","grouge") ;
00183     
echo
href("https://www.r-graph-gallery.com/all-graphs/","R Graph Gallery","grouge") ;
00184     echo
" met en ligne plusieurs milliers de graphiques produits via
$R. " ; # en 2013 (environ 52000 en 2015). Sur ce site, cliquer sur une image " ;
00185     
echo
" Sur ce site, cliquer sur une image " ;
00186     echo
" m&egrave;ne au code
$R pour reproduire le graphique. Ce site donne " ;
00187     echo
" une bonne vue de la capacit&eacute; de
$R &agrave; produire des graphiques sophistiqu&eacute;s." ;
00188     
finp() ;
00189     
00190     
p
("texte") ;
00191     echo
"La fonction " ;
00192     echo
hrrr
("plot","graphics") ;
00193     echo
" fait partie du package " ;
00194     echo
hrrp
("graphics") ;
00195     echo
" qui contient moins d'une centaine de fonctions. " ;
00196     echo
" C'est une fonction dite "
.b("g&eacute;n&eacute;rique")." qui sert de point d'entr&eacute;e &agrave; d'autres fonctions comme " ;
00197     echo
hrrr
("plot.factor","graphics").", " ;
00198     echo
hrrr
("plot.formula","graphics").", " ;
00199     echo
hrrr
("curve","graphics","plot.function()").", " ;
00200     echo
hrrr
("plothistogram","graphics","plot.histogram()").", " ;
00201     echo
hrrr
("plot.table","graphics")." et " ;
00202     echo
hrrr
("plot.window","graphics")." afin d'interfacer " ;
00203     echo
hrrr
("plot.xy","graphics") ;
00204     echo
". " ;
00205     
finp() ;
00206     
00207     
p
("texte") ;
00208     echo
"Un copier/coller sous
$R du code suivant permet de voir chacune des fonctions ".b("plot.*")." en action (graphiques non reproduits ici)&nbsp;:" ;
00209     
finp() ;
00210     
00211     
entree_R
("plots.r") ;
00212     
sortie_R
("plots.sor") ;
00213     
00214     
p
("texte") ;
00215     echo
"Il existe beaucoup trop de fonctions "
.b("plot")." induites pour pouvoir les pr&eacute;senter ici car toute classe d'objets impl&eacute;mente en g&eacute;n&eacute;ral " ;
00216     echo
" sa fonction " ;
00217     echo
b
("print").", " ;
00218     echo
" sa fonction " ;
00219     echo
b
("plot")." et " ;
00220     echo
" sa fonction " ;
00221     echo
b
("summary").". " ;
00222     echo
" Citons seulement celles du package " ;
00223     echo
hrrp
("stats")."&nbsp;:" ;
00224     
finp() ;
00225     
00226     
pre_fichier
("plots_stats.txt","cadre") ;
00227     
00228     
p
("texte") ;
00229     echo
"La philosophie de
$R en ce qui concerne les graphiques en mode standard est d'autoriser un maximum de souplesse &agrave; travers des " ;
00230     echo
" valeurs par d&eacute;faut et des interfaces pour des primitives. Ainsi "
.b('plot(main="Trac&eacute;"...)')." dit &agrave; " ;
00231     echo
hrrr
("plot","graphics") ;
00232     echo
" que le " ;
00233     echo
" titre principal de la figure est "
.b("Trac&eacute;")." mais on aurait pu, apr&egrave;s avoir trac&eacute; avec ".b("plot()").", utiliser " ;
00234     echo
" la fonction ";
00235     echo
hrrr
("title","graphics")." via ".b('title(main="Trac&eacute;")').". " ;
00236     
finp() ;
00237     
00238     
p
("texte") ;
00239     echo
"De nombreux "
.s_span("par","grouge")."am&egrave;tres graphiques sont disponibles avec la fonction " ;
00240     echo
hrrr
("par","graphics").". Il suffit de taper ".b("example(par)")." sous $R pour voir une partie de l'utilisation de ces param&egrave;tres. " ;
00241     echo
" La liste des param&egrave;tres graphiques, fournie par "
.b("par()").", n'est pas tr&egrave;s facile &agrave; comprendre, ni &agrave; m&eacute;moriser, car de nombreuses donn&eacute;es sont " ;
00242     echo
" des abbr&eacute;viations am&eacute;ricaines, comme " ;
00243     echo
b
("cex")." pour ".em("Character EXtension")." (facteur d'expansion de la taille des caract&egrave;res) ou " ;
00244     echo
b
("omi")." pour ".em("Outer Margin in Inches")." (taille de la marge ext&eacute;rieure en pouces)." ;
00245     echo
" Voici cette liste tri&eacute;e par ordre alphab&eacute;tique du nom des param&egrave;tres avec la ou les valeurs par d&eacute;faut lorsqu'elles existent. " ;
00246     
finp() ;
00247     
00248     
pre_fichier
("par.sor","cadre") ;
00249     
00250     
/*
00251     
00252     adj
00253     ann
00254     ask
00255     bg
00256     bty
00257     cex
00258     cex.axis
00259     cex.lab
00260     cex.main
00261     cex.sub
00262     cin
00263     col
00264     col.axis
00265     col.lab
00266     col.main
00267     col.sub
00268     cra
00269     crt
00270     csi
00271     cxy
00272     din
00273     err
00274     family
00275     fg
00276     fig
00277     fin
00278     font
00279     font.axis
00280     font.lab
00281     font.main
00282     font.sub
00283     lab
00284     las
00285     lend
00286     lheight
00287     ljoin
00288     lmitre
00289     lty
00290     lwd
00291     mai
00292     mar
00293     mex
00294     mfcol
00295     mfg
00296     mfrow
00297     mgp
00298     mkh
00299     new
00300     oma
00301     omd
00302     omi
00303     pch
00304     pin
00305     plt
00306     ps
00307     pty
00308     smo
00309     srt
00310     tck
00311     tcl
00312     usr
00313     xaxp
00314     xaxs
00315     xaxt
00316     xlog
00317     xpd
00318     yaxp
00319     yaxs
00320     yaxt
00321     ylog
00322     
00323     dire :
00324     
00325     text legend axis
00326     box mtext
00327     
00328     
00329     
00330     */
00331     # http://research.stowers-institute.org/efg/R/Graphics/Basics/mar-oma/
00332     
00333     
00334     
00335     
p
("texte") ;
00336     echo
"Contrairement aux fonctions statistiques, les fonctions graphiques fournies par
$R sont difficiles &agrave; maitriser compte-tenu " ;
00337     echo
" des nombreux param&egrave;tres mis en jeu. De plus des packages compl&eacute;mentaires comme " ;
00338     echo
hrrp
("lattice")." avec ".href("lls_lattice.txt","148 objets","gvert nou")." et " ;
00339     
# grid
00340     
echo
hrrp("ggplot2")." avec ".href("lls_ggplot2.txt","240 objets","gvert nou") ;
00341     echo
" fournissent des fonctions compl&eacute;mentaires parfois encore plus techniques. " ;
00342     echo
" Il est d'usage de progresser prudemment et de ne pas chercher tout de suite &agrave; tout r&eacute;aliser dans un graphique avec
$R mais au contraire de " ;
00343     echo
"\"monter\" progressivement les graphiques. Une fois le trac&eacute; obtenu, la programmation permet d'automatiser la production de " ;
00344     echo
" graphiques avec le m&ecirc;me \"profil\"." ;
00345     
finp() ;
00346     
00347     
p
("texte") ;
00348     echo
"Pour sauvegarder les param&egrave;tres graphiques courants, il suffit de stocker le r&eacute;sultat de la fonction " ;
00349     echo
hrrr
("par","graphics").". On peut ensuite r&eacute;affecter l'objet sauvegard&eacute;. En voici un exemple&nbsp;:" ;
00350     
finp() ;
00351     
00352     
entree_R
("sauvepar.r") ;
00353     
00354     
p
("texte") ;
00355      echo
" Le package "
.hrrp("ggplot2") ;
00356      echo
" impl&eacute;mente la " ;
00357      echo
href
("https://www.springer.com/gp/book/9780387245447","grammaire des graphiques") ;
00358      echo
" au sens de " ;
00359      echo
href
("https://www.cs.uic.edu/~wilkinson/TheGrammarOfGraphics/GOG.html","L. Wilkinson").". " ;
00360      echo
" Une carte de r&eacute;f&eacute;rence en fran&ccedil;ais est "
.href("https://thinkr.fr/pdf/ggplot2-french-cheatsheet.pdf","ici").". " ;
00361     
finp() ;
00362     
00363     
p
("texte") ;
00364     
nbsp
(5) ;
00365     
$img
= "ggplot2s.png" ;
00366      echo
href
($img,img($img,"",800)) ;
00367     
finp() ;
00368     
00369     
# http://larmarange.github.io/analyse-R/intro-ggplot2.html
00370     # https://thinkr.fr/pdf/ggplot2-french-cheatsheet.pdf
00371     
00372     
p
("texte") ;
00373      echo
" Le package "
.hrrp("lattice") ;
00374      echo
" contient &eacute;galement des fonctions int&eacute;ressantes" ;
00375      echo
" pour des graphiques par groupe, par s&eacute;rie. " ;
00376      echo
href
("https://www.amazon.com/Lattice-Multivariate-Data-Visualization-Use/dp/0387759689","Un livre chez Springer") ;
00377      echo
" lui est consacr&eacute;." ;
00378     
finp() ;
00379     
00380     
finsolution() ;
00381     
00382     
finblockquote() ;
00383     
00384     
## -------------------------------------------------------------------------------------------
00385     
00386     
$tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Combien d'instructions
00387     
00388     ## -------------------------------------------------------------------------------------------
00389     
00390     
blockquote() ;
00391     
00392     
blockquote() ;
00393     
00394     
p
("texte") ;
00395     echo
"Combien d'instructions
$R faut-il pour r&eacute;aliser le graphique suivant, si les donn&eacute;es sont dans la variable ".b("lng")."&nbsp;?" ;
00396     echo
" Et avec les fonctions (gH)&nbsp;?" ;
00397     
finp() ;
00398     
00399     
graphique_R_png
("leadblng3.png") ;
00400     
00401     
p
("texte") ;
00402     echo
" On pourra par exemple lire les donn&eacute;es de longueur, issues du dossier " ;
00403     echo
href
("http://www.info.univ-angers.fr/pub/gh/Datasets/lea.htm","LEADB","grouge nou") ;
00404     echo
" avec les instructions suivantes&nbsp;:" ;
00405     
finp() ;
00406     
00407     
pre_fichier
("lngleadb.r","cadre") ;
00408     
00409     
finblockquote() ;
00410     
00411     
solution
($numExo,$numSerie) ;
00412     
00413     
p
("texte") ;
00414     echo
"Il y a visiblement " ;
00415     
finp() ;
00416     
00417     
ol() ;
00418     
00419     
debutli() ;
00420     
p() ;
00421     echo
" un histogramme en bleu ciel, trac&eacute; via la fonction " ;
00422     echo
hrrr
("hist","graphics").", " ;
00423     
finp() ;
00424     
finli() ;
00425     
00426     
debutli() ;
00427     
p() ;
00428     echo
" la loi normale en rouge, sans doute trac&eacute;e via " ;
00429     echo
hrrr
("curve","graphics").", " ;
00430     
finp() ;
00431     
finli() ;
00432     
00433     
debutli() ;
00434     
p() ;
00435     echo
" la courbe de densit&eacute; estim&eacute;e par noyau en bleu fonc&eacute; via " ;
00436     echo
hrrr
("lines","graphics").", " ;
00437     
#echo hrrr("density","stats").", " ;
00438     
finp() ;
00439     
finli() ;
00440     
00441     
debutli() ;
00442     
p() ;
00443     echo
" une estimation visuelle de la densit&eacute; via un \"peigne\" sur l'axe x avec " ;
00444     echo
hrrr
("rug","graphics").", " ;
00445     
finp() ;
00446     
finli() ;
00447     
00448     
debutli() ;
00449     
p() ;
00450     echo
" une l&eacute;gende en haut et &agrave; droite obtenue par " ;
00451     echo
hrrr
("legend","graphics").", " ;
00452     
finp() ;
00453     
finli() ;
00454     
00455     
debutli() ;
00456     
p() ;
00457     echo
" et enfin un titre et les labels pour les axes produits par " ;
00458     echo
hrrr
("title","graphics").". " ;
00459     
finp() ;
00460     
finli() ;
00461     
00462     
finol() ;
00463     
00464     
p
("texte") ;
00465     echo
" Il faut donc sans doute six instructions de trac&eacute; pour r&eacute;aliser le graphique. V&eacute;rification (tester par copier/coller de chaque " ;
00466     echo
"ligne au fur et &agrave; mesure)&nbsp;:" ;
00467     
finp() ;
00468     
00469     
entree_R
("histqtlng.r") ;
00470     
00471     
p
("texte") ;
00472     echo
"Les fonctions " ;
00473     echo
hrrr
("Normal","stats","dnorm()")." " ;
00474     echo
" et " ;
00475     echo
hrrr
("density","stats")." " ;
00476     echo
" font partie du package " ;
00477     echo
hrrp
("stats").", " ;
00478     echo
" bien s&ucirc;r." ;
00479     
finp() ;
00480     
00481     
p
("texte") ;
00482     echo
"Avec " ;
00483     echo
href
("http://forge.info.univ-angers.fr/~gh/wstat/statghfns.php","les fonctions gH","grouge") ;
00484     echo
", une seule instruction suffit, qui fournit aussi l'analyse statistique de la variable et trois autres graphiques, " ;
00485     echo
" nomm&eacute;e "
.href("http://forge.info.univ-angers.fr/~gh/wstat/statghfns.php?lafns=decritQT","decritQT")."&nbsp;:" ;
00486     
finp() ;
00487     
00488     
entree_R
("statghlng.r") ;
00489     
sortie_R
("statghlng_sor.txt") ;
00490     
graphique_R_png
("leadblng2.png") ;
00491     
00492     
00493     
p
("texte") ;
00494     echo
"S'il semble tr&egrave;s facile de tracer des histogrammes, des courbes de densit&eacute;, les calculs et les choix (nombre de classes, valeur de la densit&eacute;...) " ;
00495     echo
" font appel &agrave; des connaissances statistiques avanc&eacute;es. Voir par exemple la page " ;
00496     echo
href
("http://en.wikipedia.org/wiki/Kernel_density_estimation","density estimation","grouge nou").", sans doute plus int&eacute;ressante que la page ";
00497     echo
href
("http://fr.wikipedia.org/wiki/Estimation_par_noyau","estimation par noyau","gvert nou")." dont une ";
00498     echo
" application int&eacute;ressante est en g&eacute;ographie humaine "
.href("http://lara.inist.fr/bitstream/handle/2332/879/0949_T1.pdf;jsessionid=48A41A9B660B39BB2D1FE80DFBFD4E02?sequence=4","ici").". " ;
00499     
finp() ;
00500     
00501     
finsolution() ;
00502     
00503     
finblockquote() ;
00504     
00505     
## -------------------------------------------------------------------------------------------
00506     
00507     
$tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Trac&eacute; de points, de courbes et gestion des options (axes, couleurs...)
00508     
00509     ## -------------------------------------------------------------------------------------------
00510     
00511     
blockquote() ;
00512     
00513     
blockquote() ;
00514     
00515     
p
("texte") ;
00516     echo
"Comment tracer deux s&eacute;ries de points l'une en fonction de l'autre&nbsp;? " ;
00517     echo
"Et avec une couleur diff&eacute;rente selon un troisi&egrave;me crit&egrave;re&nbsp;? " ;
00518     
finp() ;
00519     
00520     
p
("texte") ;
00521     echo
"Comment retrouver les diff&eacute;rents symboles utilisables pour "
.b("plot()")."&nbsp;? " ;
00522     echo
" Et comment ajouter une l&eacute;gende&nbsp;? " ;
00523     
finp() ;
00524     
00525     
p
("texte") ;
00526     echo
" On pourra par exemple tracer le poids en fonction de la taille pour les donn&eacute;es "
.href("../../Datasets/her.htm","HER","grouge")." " ;
00527     echo
" avec une seule couleur (noir) puis tracer avec les hommes en bleu et les femmes en rouge. " ;
00528     
finp() ;
00529     
00530     
finblockquote() ;
00531     
00532     
solution
($numExo,$numSerie) ;
00533     
00534     
p
("texte") ;
00535     echo
"Le trac&eacute; de points et de lignes peut se faire avec " ;
00536     echo
hrrr
("plot","graphics").", " ;
00537     echo
hrrr
("points","graphics")." et " ;
00538     echo
hrrr
("lines","graphics").". Pour l'instant nous ne pr&eacute;senterons que " ;
00539     echo
hrrr
("plot","graphics")." " ;
00540     echo
" du package "
.hrrp("","graphics")."." ;
00541     
finp() ;
00542     
00543     
p
("texte") ;
00544     echo
"La syntaxe de base de " ;
00545     echo
hrrr
("plot","graphics")." " ;
00546     echo
" est "
.b("plot(x,y)").", " ;
00547     echo
" mais on peut aussi utiliser la syntaxe "
.b("plot(y~x)")."&nbsp;o&ugrave; le symbole ~ (tilde) se lit &laquo;en fonction de &raquo;. " ;
00548     echo
" Le param&egrave;tre "
.b("type")." permet de choisir entre points, lignes ou les deux, etc. " ;
00549     echo
" Le param&egrave;tre "
.b("main")." correspond au titre (principal). " ;
00550     echo
" Le param&egrave;tre "
.b("col")." choisit la couleur de trac&eacute;. " ;
00551     echo
" Voici donc quelques exemples &agrave; copier/coller. " ;
00552     
finp() ;
00553     
00554     
entree_R
("plot1.r") ;
00555     
00556     
00557     
p
("texte") ;
00558     echo
"Les diff&eacute;rents caract&egrave;res possibles &agrave; utiliser ("
.b("pch=Plot CHaracter").") sont affich&eacute;s si on tape ".b("example(pch)").". " ;
00559     echo
" En voici une partie&nbsp;:" ;
00560     
finp() ;
00561     
00562     
graphique_R_png
("pch_show.png","800") ;
00563     
00564     
00565     
p
("texte") ;
00566     echo
"Pour les donn&eacute;es " ;
00567     echo
href
("../../Datasets/her.htm","HER","grouge").", nous allons utiliser un triangle bleu, pointe en haut, pour les hommes " ;
00568     echo
" soit "
.b("pch=17")." et ".b("col=\"blue\"")." alors que nous prendrons un rond rouge pour les femmes, " ;
00569     echo
" soit "
.b("pch=16")." et ".b("col=\"red\"").". " ;
00570     echo
" On utilise la variable SEXE pour g&eacute;n&eacute;rer les filtres correspondants&nbsp;:" ;
00571     
finp() ;
00572     
00573     
entree_R
("her1.r") ;
00574     
00575     
graphiques_R_png
("her1.png","her2.png") ;
00576     
00577     
00578     
p
("texte") ;
00579     echo
"La fonction " ;
00580     echo
hrrr
("title","graphics")." g&egrave;re le titre (".b("main")."), le sous-titre (".b("sub").") et les labels des axes " ;
00581     echo
"("
.b("xlab")." et ".b("ylab").") alors que la fonction " ;
00582     echo
hrrr
("legend","graphics")." permet d'expliciter les symboles, caract&egrave;res et couleurs utilis&eacute;s. " ;
00583     echo
"La fonction " ;
00584     echo
hrrr
("png","grDevices")." redirige la sortie graphique vers un fichier PNG et " ;
00585     echo
" la fonction " ;
00586     echo
hrrr
("dev","grDevices","dev.off()")." permet de fermer le fichier image g&eacute;n&eacute;r&eacute;. " ;
00587     
finp() ;
00588     
00589     
finsolution() ;
00590     
00591     
finblockquote() ;
00592     
00593     
## -------------------------------------------------------------------------------------------
00594     
00595     
$tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Superposition de graphiques
00596     
00597     ## -------------------------------------------------------------------------------------------
00598     
00599     
blockquote() ;
00600     
00601     
blockquote() ;
00602     
00603     
p
("texte") ;
00604     echo
" Est-ce simple d'ajouter des points &agrave; un graphique en
$R&nbsp;?" ;
00605     echo
" Et de rajouter des lignes&nbsp;?" ;
00606     echo
" Et de quadriller le graphique&nbsp;?" ;
00607     echo
" On pourra, par exemple, pour les variables "
.b("poids")." et ".b("tailles")." pr&eacute;c&eacute;dentes, ajouter des lignes pour les moyennes, les points m&eacute;dians... " ;
00608     
finp() ;
00609     
00610     
p
("texte") ;
00611     echo
" On voudrait superposer plusieurs trac&eacute;s de "
.hrrr("plot").", par exemple la colonne ".b("Y")." en fonction de ".b("X").", puis " ;
00612     echo
" la colonne "
.b("Z")." en fonction de ".b("X")." sur le m&ecirc;me graphique. Comment r&eacute;aliser cela en $R&nbsp;? ";
00613     echo
" Et produire deux graphiques (ou plus) dans une m&ecirc;me fen&ecirc;tre&nbsp;? ";
00614     echo
" On utilisera les prix par ann&eacute;e du dossier " ;
00615     echo
href
("../../Datasets/logement.htm","LOGEMENT","grouge")." " ;
00616     echo
" pour tester ces graphiques. " ;
00617     
finp() ;
00618     
00619     
00620     
00621     
finblockquote() ;
00622     
00623     
solution
($numExo,$numSerie) ;
00624     
00625     
p
("texte") ;
00626     echo
"La fonction " ;
00627     echo
hrrr
("points","graphics")." permet d'ajouter des points &agrave; un graphique alors que la fonction " ;
00628     echo
hrrr
("abline","graphics")." permet d'ajouter une droite. " ;
00629     echo
"La fonction " ;
00630     echo
hrrr
("rect","graphics")." trace un rectangle. " ;
00631     echo
"Si on utilise "
.b('plot(...,type="n")')." $R ne trace rien mais d&eacute;finit le cadre graphique. On peut alors " ;
00632     echo
" tracer &agrave; nouveau avec "
.b("plot()")." &agrave; condition d'utiliser ".b('par(new=TRUE)')." avant lorsqu'on veut superposer des " ;
00633     echo
" graphiques. C'est ce que nous avons fait ci-dessous, avec un appel &agrave; " ;
00634     echo
hrrr
("grid","graphics")." pour ajouter un quadrillage." ;
00635     
finp() ;
00636     
00637     
entree_R
("her2.r") ;
00638     
00639     
graphique_R_png
("her3.png","800") ;
00640     
00641     
p
("texte") ;
00642     echo
"Avec " ;
00643     echo
hrrr
("text","graphics")." on peut &eacute;crire ce qu'on veut dans le graphique. " ;
00644     echo
hrrr
("arrows","graphics")." permet d'ajouter des fl&egrave;ches. " ;
00645     echo
"Comme le symbole &#9792; n'est pas disponible directement en
$R, nous avons &eacute;t&eacute; le chercher dans le package " ;
00646     echo
hrrp
("TeachingDemos")." via " ;
00647     echo
hrrr
("mysymbols","TeachingDemos","my.symbols()")." et ".b("ms.female").". " ;
00648     echo
" Enfin, pour &eacute;crire dans la marge, nous avons utilis&eacute; " ;
00649     echo
hrrr
("mtext","graphics")." apr&egrave;s avoir modifi&eacute; les param&egrave;tres graphiques " ;
00650     echo
b
("omi")." (Outer margin in Inches) et ".b("mai")." (MArgin size in Inches)." ;
00651     echo
" On pourra consulter la page " ;
00652     echo
href
("http://research.stowers-institute.org/efg/R/Graphics/Basics/mar-oma/","mar-oma","grouge") ;
00653     echo
" pour mieux comprendre ces param&egrave;tres graphiques et ceux qui sont associ&eacute;s comme " ;
00654     echo
b
("oma")." (Outer MArgin in lines) et ".b("mar")." (MARgin size in lines)." ;
00655     
finp() ;
00656     
00657     
entree_R
("her3.r") ;
00658     
00659     
graphique_R_png
("her4.png","800") ;
00660     
00661     
# dire par(ask) mfrow mfcol locator
00662     
00663     
p
("texte") ;
00664     echo
"Pour afficher deux trac&eacute;s sur un m&ecirc;me graphique, &laquo;bricoler&raquo; avec "
.b("plot()")." et ses options " ;
00665     echo
" aboutit souvent &agrave; un graphique rat&eacute; (superposition des axes, des titres...) m&ecirc;me avec "
.b("par(new=TRUE)")."&nbsp;:" ;
00666     
finp() ;
00667     
00668     
entree_R
("loge01.r") ;
00669     
00670     
graphique_R_png
("loge01.png","800") ;
00671     
00672     
p
("texte") ;
00673     echo
"Ou alors, il faut prendre beaucoup de pr&eacute;cautions &nbsp;:" ;
00674     
finp() ;
00675     
00676     
entree_R
("loge02.r") ;
00677     
graphique_R_png
("loge02.png","800") ;
00678     
00679     
p
("texte") ;
00680     echo
"Il est d'usage, lorsqu'on veut effectuer plusieurs trac&eacute;s sur une m&ecirc;me zone graphique avec un m&ecirc;me axe "
.b("X").", de d&eacute;terminer le " ;
00681     echo
"maximum global en "
.b("Y").", d'effectuer le premier trac&eacute; avec ".b("plot()")." et les trac&eacute;s suivants avec ".b("points()")." ou ".b("lines()").". " ;
00682     
finp() ;
00683     
entree_R
("loge03.r") ;
00684     
graphique_R_png
("loge03.png","800") ;
00685     
00686     
p
("texte") ;
00687     echo
"Pour effectuer plusieurs trac&eacute;s dans des zones graphiques identiques, " ;
00688     echo
" on peut utiliser les param&egrave;tres graphiques " ;
00689     echo
b
("mfrow")." et " ;
00690     echo
b
("mfcol")."&nbsp;" ;
00691     
finp() ;
00692     
entree_R
("loge04.r") ;
00693     
graphiques_R_png
("loge04a.png","loge04b.png") ;
00694     
00695     
entree_R
("loge05.r") ;
00696     
graphique_R_png
("loge05.png","800") ;
00697     
00698     
00699     
p
("texte") ;
00700     echo
"Il est clair qu'au vu d'une telle r&eacute;p&eacute;tition de code, savoir programmer en
$R devient rapidement indispensable. " ;
00701     echo
" Voici sans explications un exemple de fonction pour produire le m&ecirc;me graphique &agrave; moindre frais&nbsp;:" ;
00702     
finp() ;
00703     
entree_R
("loge06.r") ;
00704     
00705     
p
("texte") ;
00706     echo
"Signalons enfin que pour utiliser des zones de trac&eacute; in&eacute;gales, il existe la fonction " ;
00707     echo
hrrr
("layout","graphics")." dont voici un exemple d'utilisation, largement inspir&eacute; de " ;
00708     echo
b
("example(layout)")."&nbsp;:" ;
00709     
finp() ;
00710     
entree_R
("layout.r") ;
00711     
graphique_R_png
("layout.png","800") ;
00712     
00713     
finsolution() ;
00714     
00715     
finblockquote() ;
00716     
00717     
## -------------------------------------------------------------------------------------------
00718     
00719     
$tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Histogrammes de classes et de fr&eacute;quences
00720     
00721     ## -------------------------------------------------------------------------------------------
00722     
00723     
blockquote() ;
00724     
00725     
blockquote() ;
00726     
00727     
p
("texte") ;
00728     echo
" Comment tracer des histogrammes de classes en
$R, par exemple pour les ".b("ages") ;
00729     echo
" du dossier " ;
00730     echo
href
("../../Datasets/elf.htm","ELF","grouge")." " ;
00731     echo
"&nbsp;?" ;
00732     
finp() ;
00733     
00734     
p
("texte") ;
00735     echo
" Comment tracer des histogrammes de fr&eacute;quences en
$R, par exemple pour le ".b("code-sexe") ;
00736     echo
" du dossier " ;
00737     echo
href
("../../Datasets/titanic.htm","TITANIC","grouge")." " ;
00738     echo
"&nbsp;?" ;
00739     
finp() ;
00740     
00741     
finblockquote() ;
00742     
00743     
solution
($numExo,$numSerie) ;
00744     
00745     
p
("texte") ;
00746     echo
"Si on devait tracer un histogramme de classes &agrave; la main pour des donn&eacute;es quantitatives, il faudrait commencer par d&eacute;couper la " ;
00747     echo
" variables en classes. Avec
$R, pas besoin de passer par la fonction " ;
00748     echo
hrrr
("cut") ;
00749     echo
" parce que la fonction " ;
00750     echo
hrrr
("hist","graphics") ;
00751     echo
" s'occupe de tout, mais il est possible, bien s&ucirc;r de choisir le nombre de classes (via "
.b("breaks")."). " ;
00752     echo
" Dans la mesure o&ugrave; la fonction " ;
00753     echo
hrrr
("density","stats") ;
00754     echo
" r&eacute;alise l'" ;
00755     echo
href
("http://fr.wikipedia.org/wiki/Estimation_par_noyau","estimation par noyau","gbleuf")." (au sens de de Parzen-Rozenblatt) de la densit&eacute; de probabilit&eacute; de la variable al&eacute;atoire sous-jacente, " ;
00756     echo
" il est facile de tracer cette densit&eacute; &agrave; laquelle nous conseillons d'adjoindre la loi normale associ&eacute;e &agrave; la moyenne et &agrave; l'&eacute;cart-type des donn&eacute;es, " ;
00757     echo
" ce qui se r&eacute;alise tr&egrave;s simplement avec " ;
00758     echo
hrrr
("Normal","stats","dnorm()") ;
00759     echo
" et " ;
00760     echo
hrrr
("curve","graphics").". Enfin, si on compl&egrave;te le graphique avec des indications de densit&eacute; sur l'axe des X gr&acirc;ce &agrave; " ;
00761     echo
hrrr
("rug","graphics").", on dispose d'un graphique assez complet pour appr&eacute;cier la distribution des donn&eacute;es. " ;
00762     
finp() ;
00763     
00764     
entree_R
("hist01.r") ;
00765     
graphique_R_png
("hist01.png","800") ;
00766     
00767     
p
("texte") ;
00768     echo
b
("Remarque :")." si on sp&eacute;cifie ".b("plot=FALSE")." dans l'appel &agrave; " ;
00769     echo
hrrr
("hist","graphics") ;
00770     echo
", on peut voir quel d&eacute;coupage a &eacute;t&eacute; r&eacute;alis&eacute;. En particulier, cela peut permettre " ;
00771     echo
" de fournir les \"bonnes\" valeurs &agrave; " ;
00772     echo
hrrr
("cut").". " ;
00773     
finp() ;
00774     
entree_R
("hist03.r") ;
00775     
sortie_R
("hist03.sor") ;
00776     
00777     
p
("texte") ;
00778     echo
"R&eacute;aliser l'histogramme des fr&eacute;quences des modalit&eacute;s d'une variable qualitative se fait non pas avec " ;
00779     echo
hrrr
("hist","graphics") ;
00780     echo
" qui g&eacute;n&eacute;re des barres contig&uuml;es mais avec " ;
00781     echo
hrrr
("barplot","graphics")." dont les barres sont nettement s&eacute;par&eacute;es. Comme avec Excel, le trac&eacute; par d&eacute;faut utilise des effectifs absolus (donc des comptages au lieu de pourcentages) " ;
00782     echo
" avec un axe Y born&eacute; par la plus grande fr&eacute;quence. Cette repr&eacute;sentation est souvent trompeuse lorsqu'on veut comparer des fr&eacute;quences. Il vaut mieux utiliser des fr&eacute;quences relatives " ;
00783     echo
" et tracer sur l'intervalle [0,1] pour Y. La commande "
.b("example(barplot)")." montre comment r&eacute;aliser des histogrammes de fr&eacute;quences cumul&eacute;es et conjointes." ;
00784     
finp() ;
00785     
00786     
entree_R
("barplot01.r") ;
00787     
graphiques_R_png
("barplot01.png","barplot02.png") ;
00788     
00789     
p
("texte") ;
00790     echo
"Pour r&eacute;aliser des histogrammes de fr&eacute;quences horizontaux plut&ocirc;t que verticaux, il faut &eacute;crire "
.b("horiz=TRUE") ;
00791     echo
" et si on doit r&eacute;aliser des graphiques en noir et blanc pour publication, on utilise les param&egrave;tres graphiques " ;
00792     echo
b
("density")." et ".b("angle")."&nbsp;:" ;
00793     
finp() ;
00794     
00795     
entree_R
("barplot02.r") ;
00796     
graphique_R_png
("barplot03.png","800") ;
00797     
00798     
p
("texte") ;
00799     echo
"Lorsqu'on trace des histogrammes de fr&eacute;quences pour des donn&eacute;es ne se r&eacute;f&eacute;rant pas au m&ecirc;me &eacute;chantillon, il est en g&eacute;n&eacute;ral incorrect " ;
00800     echo
" d'utiliser des effectifs absolus." ;
00801     
finp() ;
00802     
00803     
entree_R
("hist02.r") ;
00804     
graphique_R_png
("hist02.png","800") ;
00805     
00806     
p
("texte") ;
00807     echo
"En cas d'histogrammes de fr&eacute;quences pour des tris crois&eacute;s, il faut bien r&eacute;fl&eacute;chir au sens de croisement. Etes-vous capable de voir lequel des deux croisements ci-dessous est " ;
00808     echo
"&laquo;int&eacute;ressant&raquo;&nbsp;?" ;
00809     
finp() ;
00810     
00811     
graphiques_R_png
("../ht.png","../cs.png") ;
00812     
00813     
finsolution() ;
00814     
00815     
finblockquote() ;
00816     
00817     
## -------------------------------------------------------------------------------------------
00818     
00819     
$tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # "Boxplots" et consor
00820     
00821     ## -------------------------------------------------------------------------------------------
00822     
00823     
blockquote() ;
00824     
00825     
blockquote() ;
00826     
00827     
p
("texte") ;
00828     echo
" Qu'est-ce qu'un boxplot&nbsp;? Comment tracer des boxplots en
$R&nbsp;? " ;
00829     echo
" Avec ou sans encoche&nbsp;?" ;
00830     
finp() ;
00831     
00832     
p
("texte") ;
00833     echo
" Qu'est-ce qu'un "
.em("beanplot")."&nbsp;? Et un ".em("violinplot")."&nbsp;? " ;
00834     echo
" Et un "
.em("stemleaf")."&nbsp;? " ;
00835     
finp() ;
00836     
00837     
finblockquote() ;
00838     
00839     
solution
($numExo,$numSerie) ;
00840     
00841     
p
("texte") ;
00842     echo
"Un trac&eacute; en " ;
00843     echo
href
("http://en.wikipedia.org/wiki/Box_plot","boxplot") ;
00844     echo
" ou \n" ;
00845     echo
"graphique de Tukey \n" ;
00846     echo
"est souvent nomm&eacute; en France \n" ;
00847     echo
href
("http://fr.wikipedia.org/wiki/Bo%C3%AEte_%C3%A0_moustaches","&laquo;boite &agrave; moustaches&raquo;") ;
00848     echo
". Bas&eacute; presque toujours (sauf pour Statistica) sur les \n" ;
00849     echo
href
("http://en.wikipedia.org/wiki/Quartile","quartiles").", il permet de repr&eacute;senter la " ;
00850     echo
href
("http://fr.wikipedia.org/wiki/Tendance_centrale","tendance centrale") ;
00851     echo
" et la \n" ;
00852     echo
href
("http://fr.wikipedia.org/wiki/Crit%C3%A8res_de_dispersion","dispersion") ;
00853     echo
" des donn&eacute;es. " ;
00854     echo
" Il existe des variantes. Nous fournissons ci-dessous quelques liens pour approfondir. " ;
00855     
finp() ;
00856     
00857     
blockquote() ;
00858     
table
(1,10,"collapse") ;
00859     
entetesTableau
("Lien Explication") ;
00860     
00861     
tr
() ; td("L") ; echo href("http://www.ilemaths.net/img/forum_img/0506/forum_506497_1.jpg","boxplot 01") ; fintd() ;
00862     
td
() ; echo "Visualisation de la moustache et des quartiles." ; fintd() ; fintr() ;
00863     
00864     
tr
() ; td("L") ; echo href("http://onlinestatbook.com/2/graphing_distributions/boxplots.html","boxplot 02") ; fintd() ;
00865     
td
() ; echo "D&eacute;tail de boxplot avec un quiz. Voir aussi ".href("http://onlinestatbook.com/2/graphing_distributions/boxplot_demo.html","boxplot_demo")."." ; fintd() ; fintr() ;
00866     
00867     
tr
() ; td("L") ; echo href("http://nelsontouchconsulting.wordpress.com/2011/01/07/behold-the-box-plot/","boxplot 03") ; fintd() ; td() ; echo "Boxplot for small datasets (!)." ; fintd() ; fintr() ;
00868     
00869     
tr
() ; td("L") ; echo href("http://web.pdx.edu/~stipakb/download/PA551/boxplot.html","boxplot 04") ; fintd() ; td() ; echo "Eplications sur les boxplots." ; fintd() ; fintr() ;
00870     
00871     
tr
() ; td("L") ; echo href("http://support.sas.com/documentation/cdl/en/grstatproc/62603/HTML/default/viewer.htm#panelvbox-stmt.htm","boxplot 05") ; fintd() ; td() ; echo "Boxplot en SAS." ; fintd() ; fintr() ;
00872     
00873     
tr
() ; td("L") ; echo href("http://fdidio.fr/blog/tag/boxplot/","boxplot 06") ; fintd() ; td() ; echo "Boxplots am&eacute;lior&eacute;s." ; fintd() ; fintr() ;
00874     
00875     
tr
() ; td("L") ; echo href("http://ms.mcmaster.ca/peter/s2ma3/s2ma3_9798/boxplots.html","boxplot 07") ; fintd() ; td() ; echo "Boxplot pour une distribution normale." ; fintd() ; fintr() ;
00876     
00877     
tr
() ; td("L") ; echo href("http://www.dundas.com/onlinedocumentation/winchart2005/BoxPlotChart.html","boxplot 08") ; fintd() ; td() ; echo "Boxplots de ".em("Dundas Data Visualization")."." ; fintd() ; fintr() ;
00878     
00879     
tr
() ; td("L") ; echo href("http://www.itse.be/statistique2010/co/233_Cours_boxplot.html","boxplot 09") ; fintd() ; td() ; echo "D&eacute;tails sur les boxplots modifi&eacute;s." ; fintd() ; fintr() ;
00880     
00881     
tr
() ; td("L") ; echo href("http://documentation.statsoft.com/STATISTICAHelp.aspx?path=Glossary/GlossaryTwo/2dgraphs/2DBoxPlotsWhiskers","boxplot 10") ; fintd() ;
00882     
td
() ; echo "Statistica propose ".b("en plus")." des boxplots bas&eacute;s sur la moyenne et l'&eacute;cart-type. " ; fintd() ; fintr() ;
00883     
00884     
fintable() ;
00885     
finblockquote() ;
00886     
00887     
p
("texte") ;
00888     echo
"Pour R, la fonction associ&eacute;e se nomme tout naturellement " ;
00889     echo
hrrr
("boxplot","graphics")." et comporte de nombreuses options." ;
00890     
finp() ;
00891     
00892     
graphique_R_png
("boxplot01.png","800") ;
00893     
entree_R
("boxplot01.r") ;
00894     
sortie_R
("boxplot01.sor") ;
00895     
00896     
p
("texte") ;
00897     echo
"Les boxplots sont tr&egrave;s pratiques pour comparer des groupes, mais le param&egrave;tre "
.b("varwidth")." n'est pas toujours tr&egrave;s efficace." ;
00898     
finp() ;
00899     
00900     
entree_R
("boxplot02.r") ;
00901     
graphique_R_png
("boxplot02.png","800") ;
00902     
00903     
p
("texte") ;
00904     echo
"Les encoches ("
.em("notch")." en anglais) permettent de visualiser les " ;
00905     echo
href
("http://nobelis.eu/photis/Desgraph/boxplot.html","intervalles de confiance de la mediane","gvert nou") ;
00906     echo
" mais pr&eacute;sentent parfois des "
.em("inversions")."." ;
00907     
finp() ;
00908     
00909     
entree_R
("boxplot03.r") ;
00910     
graphique_R_png
("boxplot03.png","800") ;
00911     
00912     
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
00913     
00914     
p
("texte") ;
00915     echo
"Les boxplots ne sont pas adapt&eacute;s aux "
.href("http://en.wikipedia.org/wiki/Bimodal_distribution","distributions bimodales")." ni " ;
00916     echo
href
("http://www.statsoft.fr/concepts-statistiques/glossaire/d/distribution-multimodale.html","multimodales").". " ;
00917     echo
" Les beanplots le sont. Voir le "
.href("http://www.jstatsoft.org/v28/c01/paper","PDF")." du package " ;
00918     echo
hrrp
("beanplot")." La principale fonction associ&eacute;e est bien s&ucirc;r " ;
00919     echo
hrrr
("beanplot","beanplot").". Voici un exemple parlant&nbsp;:" ;
00920     
finp() ;
00921     
00922     
graphique_R_png
("beanplot01.png","800") ;
00923     
00924     
p
("texte") ;
00925     echo
"Les demi-beanplots sont tr&egrave;s pratiques pour comparer des variables qualitatives binaires&nbsp;" ;
00926     
finp() ;
00927     
00928     
graphiques_R_png
("beanplot02.png","beanplot03.png") ;
00929     
00930     
p
("texte") ;
00931     echo
"Les "
.href("http://en.wikipedia.org/wiki/Violin_plot","violinplots")." sont assez similaires aux beanplots." ;
00932     echo
" Une impl&eacute;mentation en
$R est dans le package " ;
00933     echo
hrrp
("vioplot").", fonction " ;
00934     echo
hrrr
("vioplot","vioplot").". " ;
00935     
finp() ;
00936     
00937     
graphique_R_png
("violinplot.png",600) ;
00938     
00939     
p
("texte") ;
00940     echo
"Une autre impl&eacute;mentation est fournie par " ;
00941     echo
" la fonction "
.hrrr("geom_violin","ggplot2")." du package ".hrrp("ggplot2")." avec " ;
00942     echo
" des "
.href("https://github.com/wch/ggplot2/wiki/geom_violin","possibilit&eacute;s int&eacute;ressantes","rgouge").". " ;
00943     
finp() ;
00944     
00945     
00946     
# wvioplot n'existe plus ? http://www.r-bloggers.com/boxplots-and-beyond-iii-violin-plots/
00947     # ggplot2 forum. The trick is to use geom_violin(adju
00948     # pour bagplot = boxplot en 2D : http://www.statmethods.net/graphs/boxplot.html
00949     
00950     # %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
00951     
00952     
00953     
p
("texte") ;
00954     echo
"Contrairement aux pr&eacute;c&eacute;dents trac&eacute;s, un diagramme " ;
00955     echo
href
("http://en.wikipedia.org/wiki/Stem-and-leaf_display","stemleaf") ;
00956     echo
" ou en " ;
00957     echo
em
("tige et feuilles") ;
00958     echo
" en fran&ccedil;ais \n" ;
00959     echo
" est une fa&ccedil;on de trier et d'afficher les donn&eacute;es de fa&ccedil;on &agrave; faire ressortir des tendances, \n" ;
00960     echo
"un peu comme un histogramme de classes, mais en mode texte. \n" ;
00961     
finp() ;
00962     
00963     
entree_R
("stem.r") ;
00964     
sortie_R
("stem.sor") ;
00965     
00966     
finsolution() ;
00967     
00968     
finblockquote() ;
00969     
00970     
## -------------------------------------------------------------------------------------------
00971     
00972     
$tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Export de graphiques en PNG et PDF
00973     
00974     ## -------------------------------------------------------------------------------------------
00975     
00976     # retrouver les demi beanplot ?
00977     
00978     
blockquote() ;
00979     
00980     
p
("texte") ;
00981     echo
"On veut exporter un graphique en PNG, en PS ou EPS, en PDF. Quelle(s) solution(s) avec
$R&nbsp;?" ;
00982     
finp() ;
00983     
00984     
p
("texte") ;
00985     echo
"Et avec Rstudio&nbsp;?" ;
00986     
finp() ;
00987     
00988     
solution
($numExo,$numSerie) ;
00989     
00990     
p
("texte") ;
00991     echo
"Pour exporter un graphique, il faut utiliser " ;
00992     echo
href
("lls_grdevices.sor","les fonctions") ;
00993     echo
" du package "
.hrrp("grDevices")." et en particulier " ;
00994     echo
hrrr
("png","grDevices").", " ;
00995     echo
hrrr
("postscript","grDevices")." et " ;
00996     echo
hrrr
("pdf","grDevices").". " ;
00997     
finp() ;
00998     
00999     
pre_fichier
("pngps.txt","cadre") ;
01000     
01001     
01002     
p
("texte") ;
01003     echo
"Voil&agrave; concr&egrave;tement comment on fait&nbsp;:" ;
01004     
finp() ;
01005     
01006     
ol() ;
01007     
01008     
debutli() ;
01009     
p() ;
01010     echo
"On ouvre la sortie graphique avec l'une des fonctions cit&eacute;es." ;
01011     
finp() ;
01012     
finli() ;
01013     
01014     
01015     
debutli() ;
01016     
p() ;
01017     echo
"On ex&eacute;cute les instructions qui produisent le(s) graphique(s)." ;
01018     
finp() ;
01019     
finli() ;
01020     
01021     
01022     
debutli() ;
01023     
p() ;
01024     echo
"On ferme le fichier avec "
.b("dev.off()")."." ;
01025     
finp() ;
01026     
finli() ;
01027     
01028     
finol() ;
01029     
01030     
01031     
p
("texte") ;
01032     echo
"Par exemple, pour produire un fichier png correspondant au deux boxplots pr&eacute;c&eacute;dents roses et vert, " ;
01033     echo
" avec un fichier nomm&eacute; \"demoboxplot.png\", de largeur 1400 et de hauteur 100, le code &agrave; &eacute;crire est&nbsp;:" ;
01034     
finp() ;
01035     
01036     
entree_R
("boxplotpng.r") ;
01037     
01038     
p
("texte") ;
01039     echo
"Le fichier r&eacute;sultat est visible "
.href("demoboxplot.png","ici").". " ;
01040     
finp() ;
01041     
01042     
p
("texte") ;
01043     echo
b
("Remarque&nbsp;:")." il faut &eacute;ventuellement changer de chemin d'acc&egrave;s avec ".hrrr("getwd","base","setwd()")." avant de d&eacute;finir " ;
01044     echo
" le fichier graphique, ou indiquer le chemin d'acc&egrave;s. Par exemple&nbsp;:" ;
01045     
finp() ;
01046     
01047     
pre_fichier
("setwd.txt","cadre") ;
01048     
01049     
finsolution() ;
01050     
01051     
finblockquote() ;
01052     
01053     
## -------------------------------------------------------------------------------------------
01054     
01055     
$tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Heatmap, vous avez dit heatmap ?
01056     
01057     ## -------------------------------------------------------------------------------------------
01058     
01059     
blockquote() ;
01060     
01061     
p
("texte") ;
01062     echo
"Est-ce facile de tracer des "
.em("heatmaps am&eacute;lior&eacute;es")." en $R avec des dendrogrammes autour comme ci-dessous&nbsp;?" ;
01063     
finp() ;
01064     
01065     
blockquote() ;
01066     
p
("texte") ;
01067     
$img
= "heatmap.png" ;
01068     echo
href
($img,img($img,"heatmap",400)) ;
01069     
finp() ;
01070     
finblockquote() ;
01071     
01072     
solution
($numExo,$numSerie) ;
01073     
01074     
p
("texte") ;
01075     echo
"Il n'existe pas une impl&eacute;mentation de la notion de "
.em("&laquo;heatmap am&eacute;lior&eacute;e&raquo;")." mais plut&ocirc;t une bonne dizaine. " ;
01076     echo
" La consultation de " ;
01077     echo
href
("http://finzi.psych.upenn.edu/nmz.html","R site search","gbleuf nou") ;
01078     echo
" &agrave; ce sujet est &eacute;difiante&nbsp;: " ;
01079     echo
href
("http://finzi.psych.upenn.edu/cgi-bin/namazu.cgi?query=heatmap&amp;max=100&amp;result=normal&amp;sort=score&amp;idxname=functions&amp;idxname=vignettes&amp;idxname=views","430 liens") ;
01080     echo
" en novembre 2013&nbsp;! " ;
01081     echo
" Il y a par exemple " ;
01082     echo
" la fonction " ;
01083     echo
hrrr
("heatmap","stats")." du package ".hrrp("stats").", \n" ;
01084     echo
" la fonction "
.hrrr("heatmap-methods","apcluster","heatmap()")." du package ".hrrp("apcluster").", \n" ;
01085     echo
hrrr
("heatmap.3","GMD","heatmap()")." du package ".hrrp("GMD").", \n" ;
01086     echo
hrrr
("heatmap.2","gplots","heatmap()")."du package ".hrrp("gplots").", \n" ;
01087     echo
" et enfin (et surtout&nbsp;?) les fonctions \n" ;
01088     echo
b
("GO2heatmap")." et " ;
01089     echo
b
("KEGG2heatmap()")." du package ".href("https://bioconductor.org/packages/release/bioc/html/annotate.html","annotate")."." ;
01090     
finp() ;
01091     
01092     
p
("texte") ;
01093     echo
"La difficut&eacute; en g&eacute;n&eacute;ral n'est pas le trac&eacute;, mais la construction des donn&eacute;es. Voici un exemple peu comment&eacute;&nbsp;:" ;
01094     
finp() ;
01095     
01096     
entree_R
("heatmap01.r") ;
01097     
01098     
p
("texte") ;
01099     echo
"Et son r&eacute;sultat&nbsp;:" ;
01100     
finp() ;
01101     
01102     
graphique_R_png
("heatmap01.png",600) ;
01103     
01104     
p
("texte") ;
01105     echo
"Malgr&eacute; un nombre de param&egrave;tres tr&egrave;s important pour " ;
01106     echo
" la fonction " ;
01107     echo
hrrr
("heatmap","stats")." du package ".hrrp("stats").", l'utilisation en est assez simple, comme on pourra s'en " ;
01108     echo
" convaincre avec "
.b("example(heatmap)").". " ;
01109     
finp() ;
01110     
01111     
pre_fichier
("heatmap_par.txt","cadre") ;
01112     
01113     
01114     
p
("texte") ;
01115     echo
"La pr&eacute;paration des donn&eacute;es et le choix des param&egrave;tres de filtrage pour la bioinformatique via
$R sont assez bien expliqu&eacute;s dans les " ;
01116     echo
" ouvrages suivants&nbsp;:" ;
01117     
finp() ;
01118     
01119     
$book1
= "http://www.springer.com/statistics/life+sciences%2C+medicine+%26+health/book/978-0-387-77239-4" ;
01120     
$book2
= "http://www.springer.com/computer/bioinformatics/book/978-0-387-25146-2" ;
01121     
01122     
blockquote() ;
01123     
table
(0,20,"collapse") ;
01124     
01125     
tr() ;
01126     
td
("C") ; echo href($book1,img("biocase.jpg","",145)) ; fintd() ;
01127     
td
("C") ; echo href($book2,img("bioinfo.jpg","",145)) ; fintd() ;
01128     
fintr() ;
01129     
01130     
tr() ;
01131     
td
("C") ; echo href($book1,"Bioconductor Case Studies")." (2008)" ; fintd() ;
01132     
td
("C") ; echo href($book2,"Bioinformatics[...] using R[...]")." (2005)" ; fintd() ;
01133     
fintr() ;
01134     
01135     
fintable() ;
01136     
finblockquote() ;
01137     
01138     
01139     
p
("texte") ;
01140     echo
"Nous vous laissons le soin de lire ces ouvrages pour trouver dans lequel des deux nous avons recopi&eacute; les instructions " ;
01141     echo
" pour produire la heatmap am&eacute;lior&eacute;e des donn&eacute;es "
.href("http://www.bioconductor.org/packages/release/data/experiment/html/ALL.html","ALL","gvert nou").". " ;
01142     
finp() ;
01143     
01144     
# Bioconductor Case Studies pages 30, 124, 140 et 200
01145     # Bioinformatics[...] using R[...] pages 168, 228, 245.
01146     
01147     
finsolution() ;
01148     
01149     
finblockquote() ;
01150     
01151     
## -------------------------------------------------------------------------------------------
01152     
01153     
$tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Configuration de $R et des graphiques
01154     
01155     ## -------------------------------------------------------------------------------------------
01156     
01157     
blockquote() ;
01158     
01159     
p
("texte") ;
01160     echo
"Comment configurer
$R en g&eacute;n&eacute;ral&nbsp;? Et pour les graphiques&nbsp;? O&ugrave; mettre des options courantes de $R&nbsp;?" ;
01161     echo
" Quelles sont ces options&nbsp;?" ;
01162     
finp() ;
01163     
01164     
solution
($numExo,$numSerie) ;
01165     
01166     
p
("texte") ;
01167     echo
"Si on dit "
.b(".Rprofile.site")." et ".b(".Rprofile").", tout est dit&nbsp;!" ;
01168     
finp() ;
01169     
01170     
01171     
p
("texte") ;
01172     echo
"Le fichier "
.b(".Rprofile")." est un fichier texte qui contient du code $R que $R consulte automatiquement. Il peut y en avoir un " ;
01173     echo
" pour l'utilisateur (configuration g&eacute;n&eacute;rale) et un dans le sous-r&eacute;pertoire courant (configuration sp&eacute;cialis&eacute;e). De plus
$R permet de " ;
01174     echo
" d&eacute;finir des fonctions "
.b(".First()")." et ".b(".Last()")." bien utiles, par exemple pour afficher un message de bienvenue, ou pour " ;
01175     echo
" sauvegarder de fa&ccedil;on incr&eacute;mentale tout le travail effectu&eacute;. Voici quelques liens pour approfondir cette notion de profil&nbsp;:" ;
01176     
finp() ;
01177     
01178     
blockquote() ;
01179     
table
(1,10,"collapse") ;
01180     
tr
("tajaunec") ;
01181     
$url
= "http://www.statmethods.net/interface/customizing.html" ;
01182     
$court
= "customizing R" ;
01183     
$cmt
= "explications du site Quick-R" ;
01184     
td
() ; echo href($url,$court,"gvertf nou") ; fintd() ;
01185     
td
() ; echo $cmt ; fintd() ;
01186     
fintr() ;
01187     
tr
("tajaunec") ;
01188     
$url
= "http://www.dummies.com/how-to/content/how-to-configure-r.html" ;
01189     
$court
= "configure R" ;
01190     
$cmt
= "R for dummies" ;
01191     
td
() ; echo href($url,$court,"gvertf nou") ; fintd() ;
01192     
td
() ; echo $cmt ; fintd() ;
01193     
fintr() ;
01194     
tr
("tajaunec") ;
01195     
$url
= "http://scs.math.yorku.ca/index.php/Rprofile" ;
01196     
$court
= "Rprofile" ;
01197     
$cmt
= "York Wiki for statistical consulting" ;
01198     
td
() ; echo href($url,$court,"gvertf nou") ; fintd() ;
01199     
td
() ; echo $cmt ; fintd() ;
01200     
fintr() ;
01201     
fintable() ;
01202     
finblockquote() ;
01203     
01204     
p
("texte") ;
01205     echo
"Comme d&eacute;j&agrave; dit plus haut, les options g&eacute;n&eacute;rales se g&egrave;rent via " ;
01206     echo
" la fonction "
.hrrr("options") ;
01207     echo
" du package "
.hrrp("base")." et les options graphiques avec " ;
01208     echo
" la fonction "
.hrrr("par","graphics") ;
01209     echo
" du package "
.hrrp("graphics").". " ;
01210     
finp() ;
01211     
01212     
01213     
finsolution() ;
01214     
01215     
finblockquote() ;
01216     
01217     
## -------------------------------------------------------------------------------------------
01218     
01219     
$tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Pr&eacute;sentation des packages graphics, beanplot, lattice, grid, plotrix et ggplot2.
01220     
01221     ## -------------------------------------------------------------------------------------------
01222     
01223     
blockquote() ;
01224     
01225     
p
("texte") ;
01226     echo
"Que contiennent les packages graphics, beanplot, lattice, grid, plotrix et ggplot2&nbsp;?" ;
01227     
finp() ;
01228     
01229     
p
("texte") ;
01230     echo
"Quelles en sont les fonctions les plus importantes&nbsp;?" ;
01231     
finp() ;
01232     
01233     
solution
($numExo,$numSerie) ;
01234     
01235     
p
("texte") ;
01236     echo
"A part pour beanplot, il est illusoire de vouloir pr&eacute;senter ces packages en peu de temps " ;
01237     echo
" donc &agrave; moins d'y passer une bonne dizaine d'heures, il est difficile de connaitre ces packages. " ;
01238     echo
" Le tableau suivant indique le nombre d'objets dans chaque package " ;
01239     echo
" et fournit des liens vers la liste des objets de ces packages." ;
01240     
finp() ;
01241     
01242     
blockquote() ;
01243     
table
(1,15,"collapse") ;
01244     
entetesTableau
("Package Nb_objets Lien","bleu_pastel") ;
01245     
$ldp
= preg_split("/\s+/", "graphics beanplot lattice grid plotrix ggplot2") ;
01246     
$nbo
= preg_split("/\s+/",trim(" 87 1 148 188 144 240")) ;
01247     
$ido
= -1 ;
01248     foreach (
$ldp
as $pkg) {
01249     
$ido++ ;
01250     
tr() ;
01251     
td
("","tagris") ; echo $pkg ; fintd() ;
01252     
td
("R","tajaunec") ; echo $nbo[$ido]."&nbsp;" ; fintd() ;
01253     
$fic
= "lls_".$pkg.".sor" ;
01254     
td
("","tarose") ; echo href($fic,"","grouge nou") ; fintd() ;
01255     
fintr() ;
01256     }
# fin pour ;
01257     
fintable() ;
01258     
finblockquote() ;
01259     
finsolution() ;
01260     
01261     
finblockquote() ;
01262     
01263     
## -------------------------------------------------------------------------------------------
01264     
01265     
$tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Bibliographie graphiques $R
01266     
01267     ## -------------------------------------------------------------------------------------------
01268     
01269     
blockquote() ;
01270     
01271     
p
("texte") ;
01272     echo
"Y a-t-il beaucoup de livres sur les graphiques en
$R&nbsp;?" ;
01273     
finp() ;
01274     
01275     
solution
($numExo,$numSerie) ;
01276     
01277     
p
("texte") ;
01278     echo
"Oui et non&nbsp;!" ;
01279     
finp() ;
01280     
01281     
01282     
p
("texte") ;
01283     echo
"En fait, la plupart des livres qui traitent de
$R pr&eacute;sentent au passage les graphiques de $R. " ;
01284     echo
" Il n'y a par contre que quelques ouvrages sp&eacute;cialis&eacute;s " ;
01285     echo
" sur les graphiques en
$R ou les packages graphiques de $R (moins d'une vingtaine en tout, en novembre 2013). En voici une s&eacute;lection personnelle&nbsp;:" ;
01286     
finp() ;
01287     
01288     
blockquote() ;
01289     
table
(0,20,"collapse") ;
01290     
01291     
tr() ;
01292     
td
("C") ; echo href("http://www.amazon.fr/R-Graphics-Cookbook-Winston-Chang/dp/1449316956/",img("rgraphicscookbook.jpg","",100)) ; fintd() ;
01293     
td
("C") ; echo href("http://www.crcpress.com/product/isbn/9781439831762",img("rgraphics.jpg","",145)) ; fintd() ;
01294     
td
("C") ; echo href("http://www.packtpub.com/r-graph-cookbook/book",img("rgcook.png","",120)) ; fintd() ;
01295     
fintr() ;
01296     
01297     
tr() ;
01298     
td
("C") ; echo href("http://www.amazon.fr/R-Graphics-Cookbook-Winston-Chang/dp/1449316956/","R graphics cookbook") ; fintd() ;
01299     
td
("C") ; echo href("http://www.crcpress.com/product/isbn/9781439831762","R graphics") ; fintd() ;
01300     
td
("C") ; echo href("http://www.packtpub.com/r-graph-cookbook/book","R graphs cookbook") ; fintd() ;
01301     
fintr() ;
01302     
01303     
tr() ;
01304     
#td("C") ; echo href("http://eu.wiley.com/WileyCDA/WileyTitle/productCd-111802639X.html",img("takezawa.jpg","",150)) ; fintd() ;
01305     
td
("C") ; echo href("http://www.amazon.fr/Ggplot2-Elegant-Graphics-Data-Analysis/dp/0387981403/",img("ggplot2.png","",110)) ; fintd() ;
01306     
td
("C") ; echo href("http://www.amazon.fr/Pro-Data-Visualization-using-JavaScript/dp/1430258063",img("proviz.jpg","",110)) ; fintd() ;
01307     
td
("C") ; echo href("http://www.amazon.fr/Lattice-Multivariate-Data-Visualization-Use/dp/0387759689/",img("lattice.png","",110)) ; fintd() ;
01308     
fintr() ;
01309     
01310     
tr() ;
01311     
#td("C") ; echo href("http://eu.wiley.com/WileyCDA/WileyTitle/productCd-111802639X.html","Takezawa") ; fintd() ;
01312     
td
("C") ; echo href("http://www.amazon.fr/Ggplot2-Elegant-Graphics-Data-Analysis/dp/0387981403/","Wickham") ; fintd() ;
01313     
td
("C") ; echo href("http://www.amazon.fr/Pro-Data-Visualization-using-JavaScript/dp/1430258063","Barker") ; fintd() ;
01314     
td
("C") ; echo href("http://www.amazon.fr/Lattice-Multivariate-Data-Visualization-Use/dp/0387759689/","Sarkar") ; fintd() ;
01315     
fintr() ;
01316     
01317     
fintable() ;
01318     
finblockquote() ;
01319     
01320     
01321     
p
("texte") ;
01322     echo
b
("Remarque&nbsp;: ") ;
01323     
finp() ;
01324     
01325     
blockquote() ;
01326     
p
("texte") ;
01327     echo
"Tous les graphiques de l'ouvrage "
.em("R Graphics (Second Edition)")." de Paul Murrell, publi&eacute; en 2011, " ;
01328     echo
" sont visibles, " ;
01329     
br() ;
01330     echo
" avec le code
$R associ&eacute; pour les reproduire, &agrave; l'adresse " ;
01331     echo
href
("https://www.stat.auckland.ac.nz/~paul/RG2e/","RG2e").". " ;
01332     
finp() ;
01333     
01334     
p
("texte") ;
01335     echo
"En particulier le "
.href("https://www.stat.auckland.ac.nz/~paul/RG2e/chapter4.html","chapitre 4") ;
01336     echo
" pr&eacute;sente les graphiques g&eacute;n&eacute;r&eacute;s avec le package "
.hrrp("lattice") ;
01337     echo
" et le "
.href("https://www.stat.auckland.ac.nz/~paul/RG2e/chapter5.html","chapitre 5") ;
01338     echo
" pr&eacute;sente les graphiques g&eacute;n&eacute;r&eacute;s avec le package "
.hrrp("ggplot2")."." ;
01339     
finp() ;
01340     
01341     
finblockquote() ;
01342     
01343     
finsolution() ;
01344     
01345     
finblockquote() ;
01346     
01347     
## -------------------------------------------------------------------------------------------
01348     
01349     
finPageExercices
($numSerie) ; # contient finSection() et finPage() ; la fonction est dans intror_inc.php
01350     
01351     
?>

Pour ne pas voir les numéros de ligne, ajoutez &nl=non à la suite du nom du fichier.

 

 

retour gH    Retour à la page principale de   (gH)