<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>https://odr.inra.fr/intranet/carto/cartowiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ccahuzac</id>
		<title>Wiki ODR - Contributions de l’utilisateur [fr]</title>
		<link rel="self" type="application/atom+xml" href="https://odr.inra.fr/intranet/carto/cartowiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ccahuzac"/>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php/Sp%C3%A9cial:Contributions/Ccahuzac"/>
		<updated>2026-05-31T02:47:09Z</updated>
		<subtitle>Contributions de l’utilisateur</subtitle>
		<generator>MediaWiki 1.28.2</generator>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=M%C3%A9taanalyse_avec_R&amp;diff=5939</id>
		<title>Métaanalyse avec R</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=M%C3%A9taanalyse_avec_R&amp;diff=5939"/>
				<updated>2014-07-18T09:11:42Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectifs == &lt;br /&gt;
&lt;br /&gt;
La méta-analyse est une méthode statistique qui fût inventée en 1904 par Karl Pearson pour tenter de surmonter le problème de puissance statistique réduite dans les études d'échantillons de petites tailles. Aujourd'hui, elle est très utilisée dans le domaine de la santé, où les chercheurs sont confrontés à la multiplicité d'études et d'essais thérapeutiques portant sur un même sujet, mais dont les protocoles mis en place et plus généralement les conditions des études diffèrent. En effet, la méta-analyse consiste en une '''synthèse quantitative''' de ces différents résultats pour obtenir une valeur &amp;quot;corrigée&amp;quot; qui intègre plus d'informations qu'une valeur unique prise dans la littérature (avec plus ou moins de justifications) ou bien qu'une simple moyenne des valeurs de la littérature.&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, il s'agit donc de collecter les valeurs de résultats des essais déjà réalisés, ainsi que les conditions dans lesquelles ils ont été obtenus. Pour celà, il est donc nécessaire de définir au préalable des critères d'inclusion ou non des études qui soient précisément établis. A noter que cette recherche doit être la plus exhaustive possible afin que la méta-analyse soit une synthèse pertinente de la littérature existante sur le sujet défini.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Package METAFOR ==&lt;br /&gt;
Il existe trois packages dans R permettant de réaliser des méta-analyses : META, RMETA et METAFOR. Ce dernier est cependant le plus perfectionné puisqu’il offre la possibilité de réaliser des méta-régressions, d’utiliser un modèle à effets fixes ou bien aléatoires, ou encore car il intègre le calcul de différentes mesures d’hétérogénéité.&lt;br /&gt;
&lt;br /&gt;
''Pour la suite, on prend l’exemple d’un traitement binaire (succès : Y=1 ou échec : Y=0). appliqué à une population test (X=1) mais pas à une population de contrôle (X=0). &amp;lt;br /&amp;gt;&lt;br /&gt;
A noter que X peut aussi être l'exposition à une maladie.''&lt;br /&gt;
&lt;br /&gt;
=== Jeu de données BCG ===&lt;br /&gt;
Pour illustrer, on utilisera le jeu de données « BCG » du package metafor.qui contient les données de 13 essais cliniques du vaccin Bacillus Calmette–Guérin (BCG). Ainsi, le traitement (variable X) consiste en l'administration ou non du vaccin, et la variable observée (Y) est l'infection ou non par la tuberculose. Les données contiennent également trois variables explicatives possibles : &lt;br /&gt;
* l'année de publication&lt;br /&gt;
* la latitude de la région où s'est déroulé l'essai&lt;br /&gt;
* la méthode d'allocation du traitement choisie pour l'essai.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#metafor package&lt;br /&gt;
library(metafor)&lt;br /&gt;
&lt;br /&gt;
### load BCG vaccine data&lt;br /&gt;
data(dat.bcg) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Capture d’écran 2014-04-15 à 09.43.30.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les résultats d’un essai peuvent être représentés sous la forme suivante : &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &lt;br /&gt;
! vacciné&lt;br /&gt;
! non vacciné&lt;br /&gt;
! Total &amp;lt;br /&amp;gt;&lt;br /&gt;
individus&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ''' Tuberculeux '''&lt;br /&gt;
| a = tpos&lt;br /&gt;
| c = cpos&lt;br /&gt;
| n&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''Non tuberculeux'''&lt;br /&gt;
| b = tneg&lt;br /&gt;
| d = cneg&lt;br /&gt;
| n&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calcul de la taille d'effet (&amp;quot;effect size&amp;quot;)===&lt;br /&gt;
Par exemple : Odd ratio, Risque Relatif, Ecart de moyenne,..&lt;br /&gt;
Cette grandeur est nécessaire pour comparer les différentes études, et le but de la méta-analyse est précisément d'en obtenir une valeur corrigée. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il est de convention d’assumer la normalité des grandeurs d'effets ; ce qui n'est pas abusif à partir du moment où l’échantillon est de taille suffisante (application du Théorème Central Limite). Pour normaliser les grandeurs d'effet il est usuel d’utiliser une transformation logarithmique. ([http://www.edii.uclm.es/~useR-2013/Tutorials/kovalchik/kovalchik_meta_tutorial.pdf Tutorial: Performing Meta-Analysis With R - Stephanie A. Kovalchik, National Cancer Institute])&lt;br /&gt;
&lt;br /&gt;
==== A partir des observations (fonction escalc) ====&lt;br /&gt;
Dans le package metafor, la fonction escalc permet de calculer directement les logESs et les variances correspondantes (SElogES&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;) à partir du nombre d'individus observés (tableau).&lt;br /&gt;
Il est important de noter qu'il s'agit bien de la variance du logarithme de l'ES, et non de l'ES directement ! (la formulation utilisée dans certaines sources de documentation peuvent parfois porter à confusion là dessus).&lt;br /&gt;
&lt;br /&gt;
''(Pour la suite on prendra l'exemple des Odd Ratios comme effect size)''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### calculate log odds ratios and corresponding sampling variances&lt;br /&gt;
dat &amp;lt;- escalc(measure=&amp;quot;OR&amp;quot;, ai=tpos, bi=tneg, ci=cpos, di=cneg, data=dat.bcg)&lt;br /&gt;
cbind(dat$yi,dat$vi)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Fichier:escalc.png]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== A partir des données brutes ====&lt;br /&gt;
Si les données recueuillies sur les études sont déjà des Odd ratio, il est possible de retrouver ces grandeurs à l'aide de l'intervalle de confiance de l'OR (à 95%)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} IC(OR)=[a,b] \\&lt;br /&gt;
&lt;br /&gt;
\Rightarrow IC(lnOR)=[lna,lnb] \\&lt;br /&gt;
\\&lt;br /&gt;
Comme lnOR \longrightarrow \mathcal{N}(\mu,SElnOR^2) \\&lt;br /&gt;
IC(lnOR)=[\mu \pm 1,96 \times SElnOR] \\&lt;br /&gt;
\\&lt;br /&gt;
Resoudre : \left\{&lt;br /&gt;
\begin{array}{l}&lt;br /&gt;
  \mu - 1,96 \times SElnOR = lna \\&lt;br /&gt;
  \mu + 1,96 \times SElnOR = lnb&lt;br /&gt;
\end{array}&lt;br /&gt;
\right. \\&lt;br /&gt;
&lt;br /&gt;
\Rightarrow  \left\{&lt;br /&gt;
\begin{array}{l}&lt;br /&gt;
  \mu = \frac{ln(a \times b)}{2} \\&lt;br /&gt;
  SElnOR = \frac{ln(\frac{a}{b})}{2\times 1,96}&lt;br /&gt;
\end{array}&lt;br /&gt;
\right. \\&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Autre méthode envisageable et plus simple ? &amp;lt;big&amp;gt;'''(A discuter !)'''&amp;lt;/big&amp;gt;&lt;br /&gt;
On utilise : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align} &lt;br /&gt;
&lt;br /&gt;
lna = lnOR - 1,96 \times SElnOR \\&lt;br /&gt;
\Rightarrow SElnOR = \frac{lnOR - lna}{1,96} \\&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Méta-analyse ===&lt;br /&gt;
&lt;br /&gt;
Plusieurs fonctions sont disponibles dans le package metafor, voir la documentation du package pour plus de détails.&lt;br /&gt;
Deux fonctions intéressantes : &lt;br /&gt;
* rma.uni&lt;br /&gt;
* rma.mv&lt;br /&gt;
&lt;br /&gt;
==== rma.uni (Random effect Meta-Analysis) ==== &lt;br /&gt;
Permet de réaliser des méta-analyses avec un modèle linéaire : &lt;br /&gt;
* à effets fixes ou mixed/random&lt;br /&gt;
* avec ou sans modérateurs&lt;br /&gt;
&lt;br /&gt;
Par défaut la méthode utilisée est RE REML (Random Effect avec REstricted Maximum Likehood).&lt;br /&gt;
&lt;br /&gt;
Pour la suite, on renomme alpha les lnOR, et beta la variance correspondante (soit SElnOR&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Alpha=LnOR&lt;br /&gt;
#Beta=VarLnOR&lt;br /&gt;
dat$alpha&amp;lt;-dat$yi&lt;br /&gt;
dat$beta&amp;lt;-dat$vi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''exemple 1 : Première régression, sans inclure de modérateurs dans le modèle :'''&lt;br /&gt;
&amp;lt;pre&amp;gt;### random-effects model using rma.uni()&lt;br /&gt;
resrma&amp;lt;-rma.uni(yi=alpha, vi=beta, measure=&amp;quot;OR&amp;quot;,data=dat)&lt;br /&gt;
&lt;br /&gt;
resrma$b #lnOR=-0.745&lt;br /&gt;
exp(-0.745) #OR corrigé = 0.4747&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
avec :&lt;br /&gt;
* yi : vecteur de longueur k (le nombre d’études) des lnOR observés (ou plus généralement les outcomes normalisés)&lt;br /&gt;
* vi (ou sei) : vecteur de longueur k contenant les variances (ou standard errors) correspondantes.&lt;br /&gt;
&lt;br /&gt;
Plusieurs arguments peuvent être ajoutés : &lt;br /&gt;
* mods : permet d’inclure un ou plusieurs modérateurs dans le modèle.&lt;br /&gt;
* weights : par défaut le poids donné à chaque étude dans l’analyse est égal à l’inverse de sa variance, mais il peut être spécifié. &lt;br /&gt;
* method : permet de spécifier un modèle à effets fixes par exemple.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;'''Il est important de noter que dans toutes les fonctions utilisées, les arguments requis (yi et vi) sont les effect size normalisés (que l'on a renommé précédemment alpha et beta), même si l'argument &amp;quot;measure&amp;quot; indique &amp;quot;OR&amp;quot;'''&lt;br /&gt;
&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:without_moderators.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''exemple 2 : fixed effect modèle'''  &lt;br /&gt;
&amp;lt;pre&amp;gt;### fixed-effects model using rma.uni()&lt;br /&gt;
resfe&amp;lt;-rma.uni(yi=alpha, vi=beta, measure=&amp;quot;OR&amp;quot;,data=dat, method=&amp;quot;FE&amp;quot;)&lt;br /&gt;
resfe&lt;br /&gt;
resfe$b #lnOR=-0.4361&lt;br /&gt;
exp(-0.4361) #OR corrigé = 0.6465531&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:fixed_effect.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut vouloir inclure des covariates dans le modèle, devant la forte hétérogénéité observée observée entre les études (I&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;=99.92%) &lt;br /&gt;
&lt;br /&gt;
'''exemple 3 : metaregression avec une seule variable :''' &lt;br /&gt;
&amp;lt;pre&amp;gt;### Meta-regression incluant la variable latitude&lt;br /&gt;
res.lat&amp;lt;-rma.uni(yi=alpha, vi=beta, measure=&amp;quot;OR&amp;quot;,data=dat, mods =ablat)&lt;br /&gt;
res.lat&lt;br /&gt;
&lt;br /&gt;
#Comparaison des résultats :&lt;br /&gt;
exp(c(resrma$b, res.lat$b[1])) #OR corrigé : 0.4587 vs. 1.3513&lt;br /&gt;
&lt;br /&gt;
c(resrma$I2, res.lat$I2) #I^2&lt;br /&gt;
(resrma$I2-res.lat$I2)/resrma$I2 #Baisse de l'hétérogénéité de 42.6%&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Meta_unmoderator.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''exemple 4 : metaregression incluant les trois variables explicatives :'''&lt;br /&gt;
&amp;lt;pre&amp;gt;### Meta-regression incluant les variables latitude, année et allocation du traitement&lt;br /&gt;
res.meta&amp;lt;-rma.uni(yi=alpha, vi=beta, measure=&amp;quot;OR&amp;quot;,data=dat, mods = ~ ablat + factor(alloc) + year )&lt;br /&gt;
res.meta&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:meta_troismoderators.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== rma.mv (Random effect Meta-Analysis via Multivariate/Multilevel Linear Models ====&lt;br /&gt;
Présente l’avantage d’offrir la possibilité de préciser la structure de la corrélation entre les publications (par exemple issues d’une même étude), via les arguments ''struct'' et ''random''.&lt;br /&gt;
&lt;br /&gt;
'''exemple : données BCG'''&lt;br /&gt;
Dans l’exemple, on considère que chaque essai est composée de deux études différentes : une sur la population vaccinée et l’autre sur la population de contrôle. Dans chaque cas, on observe le nombre d’individus atteints ou non par la tuberculose (les variables sont respectivement out1 et out2).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;### bivariate random-effects model using rma.mv()&lt;br /&gt;
&lt;br /&gt;
### change data into long format&lt;br /&gt;
dat.long &amp;lt;- to.long(measure=&amp;quot;OR&amp;quot;, ai=tpos, bi=tneg, ci=cpos, di=cneg, data=dat.bcg)&lt;br /&gt;
#chaque étude divisée en deux : vaccinés (group=1) ou non (group=2)&lt;br /&gt;
#out1=nb d'individus atteints&lt;br /&gt;
#out2=nb non atteints&lt;br /&gt;
&lt;br /&gt;
### calculate log odd-ratios and corresponding sampling variances&lt;br /&gt;
dat.long &amp;lt;- escalc(measure=&amp;quot;PLO&amp;quot;, xi=out1, mi=out2, data=dat.long)&lt;br /&gt;
#yi=ln(out1/out2)&lt;br /&gt;
&lt;br /&gt;
### set &amp;quot;2&amp;quot; (controlled/non-vaccinated) to reference level of group variable&lt;br /&gt;
dat.long$group &amp;lt;- relevel(dat.long$group, ref=2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De nouveau, on renomme alpha et beta respectivement les effect size normalisés et leur variance.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Alpha=LnOR&lt;br /&gt;
#Beta=VarLnOR&lt;br /&gt;
dat.long$alpha&amp;lt;-dat.long$yi&lt;br /&gt;
dat.long$beta&amp;lt;-dat.long$vi&lt;br /&gt;
&lt;br /&gt;
### bivariate random-effects model using rma.mv()&lt;br /&gt;
res &amp;lt;- rma.mv(yi=alpha, vi=beta, mods = ~ group, random = ~ group | study, struct=&amp;quot;UN&amp;quot;, method=&amp;quot;REML&amp;quot;, data=dat.long) &lt;br /&gt;
res&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
avec : &lt;br /&gt;
* xi : nombre d’observations de l’évènement observé (ici la tuberculose)&lt;br /&gt;
* mi : nombre d’observations de l’évènement complémentaire&lt;br /&gt;
ici : yi = ln(out1/out2) &lt;br /&gt;
method : de nouveau : fixed or random-effect model, différentes méthodes d’estimation pour tau2.&lt;br /&gt;
A noter que la méthode du Restricted Maximum Likehood semble être la plus performante.&lt;br /&gt;
* random : permet de spécifier la structure du &amp;quot;random effect&amp;quot; du modèle :&lt;br /&gt;
~ inner | outer (un seul possible) : les outcomes avec des niveaux différents de la variable outer sont considérés indépendants tandis que les outcomes avec un niveau identique de la variable outer sont corrélés suivant un &amp;quot;random effect&amp;quot; correspondant au niveaux de la variable inner. &amp;lt;br /&amp;gt;&lt;br /&gt;
~ 1 | id. Random effect sur la variable &amp;quot;id&amp;quot; : les outcomes avec des niveaux différents de la variable id sont considérés indépendants, mais pas si le niveau est le même (par exemple si les essais proviennent d'une même étude).&lt;br /&gt;
* struct : permet de spécifier la structure de la variance indiquée dans l'argument random (&amp;quot;UN&amp;quot; pour unstructured variance- covariance matrix).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
''Sortie R :''&lt;br /&gt;
[[Fichier:meta.rmamv.png]]&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5938</id>
		<title>Package R ggplot2</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5938"/>
				<updated>2014-07-16T15:04:54Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ggplot2 est un package de R qui permet de réaliser des graphiques plus perfectionnés, et au design plus moderne. Pour cela, il existe deux fonctions : &lt;br /&gt;
* QPLOT (pour &amp;quot;Quick Plot&amp;quot;) qui est la fonction &amp;quot;de base&amp;quot; du package (mais qui offre de grandes possibilités). Syntaxe générale : qplot(x,y,data=database)&lt;br /&gt;
* GGPLOT va permettre de créer des graphiques extrêmement perfectionnés. Sa syntaxe diffère de la syntaxe habituelle : ggplot(data=data,aes=(x,y)) +layers. La fonction ggplot (argument data et aes pour &amp;quot;aesthetic mapping&amp;quot;) va permettre de créer le graphique en lui même, et les layers vont permettre d'ajouter des paramètres modifiant la représentation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##### On installe le package&lt;br /&gt;
install.packages(&amp;quot;ggplot2&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois installé, il suffit de charger le package, avant de vouloir l'utiliser.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge le package&lt;br /&gt;
library(ggplot2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Jeu de données : ==&lt;br /&gt;
Pour illustrer, on utilise le jeu de données « iris » de R, qui contient 150 observations de 5 variables : 4 variables de type quantitatif, et une de type qualitatif (Species).&lt;br /&gt;
* Sepal.Length : longueur de la sépale&lt;br /&gt;
* Sepal.Width : largeur de la sépale Petal.Length : longueur du pétale&lt;br /&gt;
* Petal.Width : largeur du pétale&lt;br /&gt;
* Species : espèce.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge les données&lt;br /&gt;
data(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La fonction head(dataset) permet d’avoir un aperçu des premières lignes du jeu de données : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
head(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Headiris.png]]&lt;br /&gt;
&lt;br /&gt;
Attention ! pour utiliser ggplot2, les données doivent être sous la forme « data.frame », ce qui peut être vérifié par : class(dataset), et corrigé si besoin avec as.data.frame(dataset)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class(iris)&lt;br /&gt;
as.data.frame(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== QPLOT ==&lt;br /&gt;
&lt;br /&gt;
La syntaxe ressemble effectivement à celle de la fonction plot() (package &amp;quot;de base&amp;quot; de R).&lt;br /&gt;
&lt;br /&gt;
''qplot(x, y = NULL, ..., data, facets = NULL, margins = FALSE, geom = &amp;quot;auto&amp;quot;, stat = list(NULL), position = list(NULL), xlim = c(NA,NA), ylim = c(NA, NA), log = &amp;quot;&amp;quot;, main = NULL, xlab = deparse(substitute(x)), ylab = deparse(substitute(y)), asp = NA)''&lt;br /&gt;
&lt;br /&gt;
=== Objet géométrique ===&lt;br /&gt;
&lt;br /&gt;
L’argument geom() (pour objet géométrique) va permettre de réaliser différents graphiques à une ou deux dimensions. &lt;br /&gt;
Par défaut : &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type de la variable&lt;br /&gt;
! Objet par défaut&lt;br /&gt;
|-&lt;br /&gt;
| Quantitative&lt;br /&gt;
| geom =&amp;quot;histogram&amp;quot;  &lt;br /&gt;
|-&lt;br /&gt;
| Qualitative&lt;br /&gt;
| geom=&amp;quot;bar&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Deux variables quantitatives&lt;br /&gt;
| geom=&amp;quot;point&amp;quot; (scatterplot)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
De nombreux graphiques sont possibles (voir geom dans la documentation du package ggplot2, ou  en page 56). Parmi les plus utilisés : &lt;br /&gt;
&lt;br /&gt;
'''Pour une variable à analyser :''' &lt;br /&gt;
* histogram : histogramme (variable quantitative continue)&lt;br /&gt;
* density : trace la courbe de densité (variable quantitative continue)&lt;br /&gt;
* freqpoly : polynôme de fréquence (variable quantitative continue)&lt;br /&gt;
* bar : diagramme en bâton (variable discrète)&lt;br /&gt;
&lt;br /&gt;
'''Pour deux variables :''' &lt;br /&gt;
* point : scatterplot (deux variables continues)&lt;br /&gt;
* smooth : trace une courbe de tendance et son écart-type (deux variables continues)&lt;br /&gt;
* boxplot : boxplot (une variable quantitative continue, une variable discrète)&lt;br /&gt;
&lt;br /&gt;
'''Séries temporelles'''&lt;br /&gt;
* line : trace des lignes entre les points (de la gauche vers la droite)&lt;br /&gt;
* path : trace des lignes entre les points (dans n’importe quelle direction)&lt;br /&gt;
&lt;br /&gt;
A noter également que les objets géométriques peuvent être combinés (à partir du moment où cela est raisonnable sur le plan statistique).&lt;br /&gt;
&lt;br /&gt;
=== Une dimension ===&lt;br /&gt;
&lt;br /&gt;
==== Variable quantitative, continue. ====&lt;br /&gt;
&lt;br /&gt;
===== Histogramme =====&lt;br /&gt;
C'est le graphique tracé par défaut lorsque la variable indiquée est de type quantitatif (continu).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_base_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
On peut l'améliorer : changer la couleur de remplissage (argument '''fill''') et/ou la couleur de la bordure (argument '''colour''') :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;)) ## couleur de remplissage en orange&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;),colour=I(&amp;quot;black&amp;quot;))  ## et bordure en noir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_orange_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_orange_black_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
De plus, QQPLOT permet d’adapter la largeur des classes utilisées pour tracer l’histogramme, et donc d’avoir un degré de précision plus ou moins élevé, grâce à l’argument binwidth.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;),binwidth=1)  ## larges classes&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,binwidth=0.05)  ## classes ressérées&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_large_qplot.png]]&lt;br /&gt;
[[Fichier:histo_serre_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Courbe de densité =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;density&amp;quot;,colour=I(&amp;quot;red&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbe_densité_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Il peut être intéressant de la combiner avec l'histogramme.&lt;br /&gt;
&lt;br /&gt;
===== Polynôme de fréquence =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;freqpoly&amp;quot;,colour=I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:polyfreq_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Variable discrète =====&lt;br /&gt;
&lt;br /&gt;
Le graphique produit par défaut est un diagramme en bâton (à ne pas confondre avec un histogramme !!! voir [[Statistiques descriptives avec R]]) &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Species,data=iris,geom=&amp;quot;bar&amp;quot;,fill=I(&amp;quot;yellow&amp;quot;)) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barplot_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deux dimensions === &lt;br /&gt;
&lt;br /&gt;
==== Deux variables continues ====&lt;br /&gt;
&lt;br /&gt;
===== Scatterplot =====&lt;br /&gt;
&lt;br /&gt;
Le graphique produit par défaut par la fonction est un nuage de points classique.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Deux variables continues&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;point&amp;quot;) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_base_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Les arguments de la fonction peuvent être modifiés, par exemple pour produire un graphique avec des points bleu (et non noirs).... &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## changer la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour = I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_bleu_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
... ou  pour produire un graphique avec des « + » à la place des points.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## changer le symbole&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,shape=I(3))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_plus_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de modifier la taille des points sur le graphique, à l’aide de l’argument size par exemple pour affiner les points ou les grossir(par défaut, size=I(2)).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## taille&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,size=I(3))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_taille_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Enfin, l’argument alpha est utile en cas de nombre conséquent d’observations qui vont se superposer sur le graphique (ce qui n’est pas le cas ici). En ajustant la transparence, il permet d’améliorer la lisibilité du graphique. Par défaut alpha=I(1), et l’utilisateur peut fixer alpha=I(1/x), avec x le nombre nécessaire d’observations qui se superposent pour obtenir une couleur opaque.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## transparence&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,alpha=I(1/10))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_transparence_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Courbe de tendance =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;smooth&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbe_tendance_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
à noter que la méthode pour tracer la courbe de tendance peut être changée par l’utilisateur grâce à l’argument «method= (par défaut, method=« loess » pour un nombre d’observations faible). Par exemple, method=« lm » permet de tracer une droite de regression linéaire.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;smooth&amp;quot;,method=&amp;quot;lm&amp;quot;) # lm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbelm_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Il peut être utile de combiner l'objet géométrique courbe de tendance avec un nuage de points : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),method=&amp;quot;lm&amp;quot;) #combiné&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_lm_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Le tracé peut être plus ou moins sinueux grâce à l’argument span, allant de 0 à 1.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##sinuosité&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),span=0.2)&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),span=1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_lm_span1_qplot.png]]&lt;br /&gt;
[[Fichier:scatt_lm_span2_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Une variable continue, une discrète ====&lt;br /&gt;
Il n'est pas rare de vouloir représenter la distribution une variable continue, selon différentes sous-populations définies par une variable discrète. Pour cela on peut utiliser un boxplot. (voir [[Statistiques descriptives avec R]]). QPLOT va également permettre des représentations plus perfectionnées des graphiques présentés précédemment, en tenant compte de ces différentes sous-populations.&lt;br /&gt;
&lt;br /&gt;
===== Boxplot =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Une continue, une discrete&lt;br /&gt;
qplot(Species,Sepal.Length, data=iris, geom=&amp;quot;boxplot&amp;quot;,fill=I(&amp;quot;purple&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boxplot_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Sous-populations : sur un même graphique ===== &lt;br /&gt;
&lt;br /&gt;
On peut présenter les observations issues de différentes sous-populations définies par les niveaux de la variable facteur group, soit d’une couleur différente (contour ou remplissage), soit d’un symbole différent.&lt;br /&gt;
Rappel : &lt;br /&gt;
* argument colour = bordure&lt;br /&gt;
* argument fill = remplissage&lt;br /&gt;
* argument shape = symbole&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Par exemple l’argument colour=group permet de présenter d'une couleur différente sur le nuage de points, les observations issues de différentes sous-populations, définies par les niveaux de la variable facteur group.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## ajoute de la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour=Species)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
On peut faire de même sur un graphique de type scatterplot grâce à l’argument shape=group, avec cette fois des symboles différents, selon le niveau de la variable group.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,geom=&amp;quot;point&amp;quot;,shape=Species) #symboles&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_Species_symbole_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
C’est aussi réalisable sur des courbes de densité (argument colour).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# densité&lt;br /&gt;
qplot(Sepal.Length, data=iris,geom=&amp;quot;density&amp;quot;,colour=Species)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:densité_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Pour un histogramme, l’agument à utiliser est fill=group pour modifier le remplissage.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=Species) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Attention à ne pas confondre fill=I(&amp;quot;red&amp;quot;) (utilisé pour paramétrer le remplissage en rouge, valable aussi pour l'argument colour..) et fill=group (utilisé pour changer la couleur selon les sous-populations définies pas la variable group). Déclarer fill=&amp;quot;red&amp;quot; et non fill=I(&amp;quot;red&amp;quot;) aurait pour conséquence de créer une nouvelle variable &amp;quot;red&amp;quot;, et de représenter les observations de couleurs différentes selon les modalités prises par cette variable (soit une seule). R ne produira pas de message d'erreur, mais le graphique sera obtenu de manière erronée.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=&amp;quot;red&amp;quot;) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_faux_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Le graphique correct serait : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;red&amp;quot;)) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_faux_correct_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Sous-populations : différents graphiques ===== &lt;br /&gt;
&lt;br /&gt;
QPLOT offre aussi la possibilité de créer plusieurs graphiques juxtaposés, correspondant à un même graphique pour chacune des différentes sous-populations définies par une variable group. On utilise l’argument facets=. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
facets= . ~ group va présenter les graphiques cote à cote (horizontalement), tandis que facets= group ~ . les superposera (verticalement). &lt;br /&gt;
&lt;br /&gt;
Par exemple ici, l’histogramme pour la variable Sepal.Length, pour chaque espèce. On constate qu’il est préférable de les présenter verticalement, sinon les histogrammes sont écrasés et peu lisibles.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,facets = Species ~ .,geom=&amp;quot;histogram&amp;quot;,binwidth=0.1,fill=I(&amp;quot;orange&amp;quot;)) #ordre vertical&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:facet_vertical_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,facets = . ~ Species,geom=&amp;quot;histogram&amp;quot;,binwidth=0.1,fill=I(&amp;quot;orange&amp;quot;)) #ordre horizontal&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:facet_horizontal_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Données en séries temporelles ====&lt;br /&gt;
&lt;br /&gt;
Line et path sont utilisés dans le cas de séries temporelles. On rappelle que la différence entre les deux provient du fait que path relie les points dans n’importe quelle direction (pourvu qu’il apparaissent en suivant dans la base de données), tandis que line relie les points de gauche à droite.&lt;br /&gt;
&lt;br /&gt;
Ainsi, on utilisera line, par exemple pour tracer l’évolution d’un phénomène en fonction de la date, tandis que l’on utilisera path pour relier les différents points selon l’ordre chronologique, dans un graphique à deux dimensions (dont aucune n’est temporelle).&lt;br /&gt;
&lt;br /&gt;
Pour illustrer, étant donné que les données &amp;quot;iris&amp;quot; sont en coupe transversale, on utilise le jeu de données « longley » qui contient des données macro-économiques annuelles (16 observations, entre 1947 et 1962).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
data(longley) #on charge le jeu de données&lt;br /&gt;
head(longley)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Fichier:head_longley.png]]&lt;br /&gt;
&lt;br /&gt;
==== Geom line ====&lt;br /&gt;
Par exemple, on peut utiliser l’argument line pour tracer l’évolution temporelle du taux de chômage.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#evolution temporelle du nombre de personnes au chômage.&lt;br /&gt;
qplot(Year,Unemployed/Population, data=longley, geom=&amp;quot;line&amp;quot;,colour=I(&amp;quot;red&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:line_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Geom path ====&lt;br /&gt;
On trace ensuite par exemple le nombre de personnes au chômage en fonction du taux de chômage. L’argument path va permettre de relier les points pour visualiser la variation d’année en année. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Nombre de personnes au chômage en fonction du taux de chômage&lt;br /&gt;
qplot(Unemployed/Population,Unemployed, data=longley, geom=&amp;quot;path&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:path_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Ici, même sans ajouter la couleur le graphique est clair (il y a peu d’observations, et les tracés ne se superposent pas). Mais dans d'autres cas, l'ajout de ce dégradé de couleur selon l'année permet de rendre le graphique beaucoup plus lisible. (Trois dimensions).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Ajoute la couleur pour l'année&lt;br /&gt;
qplot(Unemployed/Population,Unemployed, data=longley, geom=&amp;quot;path&amp;quot;,colour=Year)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:path_color_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GGPLOT ==&lt;br /&gt;
&lt;br /&gt;
ggplot est la seconde fonction du package ggplot2, et va permettre de produire des graphiques plus complexes et élaborés. &lt;br /&gt;
De plus, alors que la fonction qplot était relativement similaire dans sa syntaxe des fonctions traditionnelles permettant de tracer des graphiques sous R, la syntaxe utilisée par ggplot est totalement différente.&lt;br /&gt;
&lt;br /&gt;
En effet, la fonction en elle-même n’a que deux arguments : &lt;br /&gt;
* data : les données (sous la forme data.frame)&lt;br /&gt;
* une fonction aes (pour &amp;quot;aesthetic mapping&amp;quot;), qui va contenir les variables et les paramètres utilisés pour l’esthétique du graphique.&lt;br /&gt;
&lt;br /&gt;
ggplot fonctionne par l’ajout de calques (« layers »).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ainsi, la commande suivante ne permet pas de tracer un graph, et nécessite pour cela d’ajouter au minimum un calque minimal.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ggplot(data=iris,aes(Sepal.Length,Sepal.Width)) #no layers in plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Par exemple, si l’on souhaite tracer un nuage ce points, on ajoute le layer geom=« point » sous la forme suivante : ''ggplot(data=data,aes(x,y,….)) + layer(geom=« point »,……)''. C'est pourquoi, il est intéressant de &amp;quot;stocker&amp;quot; le graphique dans un objet R, et de le modifier par l'ajout successif de layers, comme ci-dessous.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Ajoute un layer minimal&lt;br /&gt;
plot&amp;lt;-ggplot(data=iris,aes(Sepal.Length,Sepal.Width))&lt;br /&gt;
plot+layer(geom=&amp;quot;point&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Layer ===&lt;br /&gt;
Layer peut prendre différents arguments (le principal étant geom), par exemple : &lt;br /&gt;
* '''geom''' permet de spécifier le type de graphique souhaité (de manière similaire à l’usage dans la fonction qplot)&lt;br /&gt;
* '''geom_params''' va contenir tous les paramètres associés, permettant de personnaliser le graphique.&lt;br /&gt;
* '''stat''' consiste en une transformation statistique des données. De nouvelles variables vont être créées, qui résument les variables d’une certaine manière. Lorsque geom est utilisé, cette transformation va être automatiquement réalisée (selon le type de graphique souhaité). Elle peut éventuellement être l’identité.&lt;br /&gt;
Par exemple, la transformation associée par défaut à l’histogramme est « bin », et va créer trois nouvelles variables : count (le nombre d’observation dans chaque classe), density (le pourcentage divisé par la largeur de la classe), et x (le centre de la classe). &lt;br /&gt;
* '''stat_params''' contient les paramètres associés à cette transformation. Par exemple lorsque que l’on souhaite spécifier la largeur des classes utilisées pour l’histogramme, il va s’agir d’un paramètre stat, et non geom.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ainsi, la commande ci-dessous va permettre de tracer un histogramme pour la longueur de la sépale, de couleur orange, avec une longueur de classe de 0.3.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Histogramme&lt;br /&gt;
ggplot(data=iris,aes(x=Sepal.Length)) + layer(geom=&amp;quot;histogram&amp;quot;,&lt;br /&gt;
                                              geom_params=list(fill=&amp;quot;orange&amp;quot;),&lt;br /&gt;
                                              stat=&amp;quot;bin&amp;quot;,&lt;br /&gt;
                                              stat_params=list(binwidth=2))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cependant, cette syntaxe est relativement lourde, et peut être considérablement allégée.&lt;br /&gt;
&lt;br /&gt;
Tout d’abord, l’argument layer(geom=&amp;quot;histogram&amp;quot;,geom_params=list(fill=&amp;quot;orange&amp;quot;) peut être remplacé par l’argument geom_histogram(fill=« orange »). De plus, en tenant compte du fait que chaque type de graphique (geom) est lié à une transformation statistique (stats), on peut finalement simplifier l’argument layer en : geom_histogram(fill=&amp;quot;orange&amp;quot;,binwidth=0.3)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Ainsi, la commande suivante produit le même graphique.&lt;br /&gt;
#simplification&lt;br /&gt;
hist&amp;lt;-ggplot(data=iris,aes(x=Sepal.Length)) &lt;br /&gt;
hist &amp;lt;- hist + geom_histogram(fill=&amp;quot;orange&amp;quot;,binwidth=0.3)&lt;br /&gt;
hist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
NB : il est parfois nécessaire de demander à imprimer le graphique à l’écran.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On va raisonner de cette façon pour la suite. Ainsi les principaux layers pouvant être ajoutés vont être les suivants : &lt;br /&gt;
* geom_XXX() (par example : geom_point(), geom_histogram(), geom_vline(), etc.) : correspondant au type de graphique à créer&lt;br /&gt;
* stat_XXX() (par exemple : stat_bin(), stat_smooth(), etc.)  : correspondant à la transformation statistique à utiliser &lt;br /&gt;
* scale_XXX() (par exemple : scale_x_continuous(), : contrôlant l’échelle utilisée pour les axes.  &lt;br /&gt;
* coord_XXX() : permettant de contrôler le système de coordonnées utilisé.&lt;br /&gt;
* facet_XXX() : permettant de faire des graphiques pour des sous-groupes&lt;br /&gt;
* position_XXX() :&lt;br /&gt;
&lt;br /&gt;
==== coord ====&lt;br /&gt;
coord() (système de coordonnées à utiliser) et scale()  (échelles des axes) déterminent la position de l’argument géométrique geom.&lt;br /&gt;
&lt;br /&gt;
Par défaut : coord_cartesian (coordonnées cartésiennes « classiques », x est représenté sur l’axe des abscisses (de gauche à droite), et y sur celui des ordonnées (de bas en haut)&lt;br /&gt;
* coord_flip : inverse l’axe des x et des y&lt;br /&gt;
* coord_equal : même échelle pour l’axe des x et celui des y (cartésiens)&lt;br /&gt;
* coord_polar : coordonnées polaires :&lt;br /&gt;
* préciser la variable qui représente theta (l’angle)&lt;br /&gt;
* coord_trans : permet de transformer « manuellement » les axes (nécessite de préciser la transformation voulue)&lt;br /&gt;
* coord_map :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple, on inverse l'axe des x et celui des y :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## coord flip : boxplot&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(y=Sepal.Length, x=Species))&lt;br /&gt;
plot&amp;lt;- plot + geom_boxplot(fill=&amp;quot;#FF9999&amp;quot;)&lt;br /&gt;
plot&amp;lt;- plot + coord_flip()&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## coord flip : scatter + lm&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(x=Sepal.Length, y=Species))&lt;br /&gt;
plot&amp;lt;- plot + geom_point(colour=&amp;quot;red&amp;quot;) +geom_smooth(method=&amp;quot;lm&amp;quot;)&lt;br /&gt;
plot&amp;lt;- plot + coord_flip()&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On utilise des coordonnées polaires, et non plus cartésiennes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## coord_polar&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length, Sepal.Width))&lt;br /&gt;
plot&amp;lt;- plot + geom_point(colour=&amp;quot;red&amp;quot;)+geom_smooth(method=&amp;quot;lm&amp;quot;) &lt;br /&gt;
plot&amp;lt;- plot + coord_polar()&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On utilise une échelle logarithmique pour l'axe des ordonnées.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## coord_trans&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length, Sepal.Width))&lt;br /&gt;
plot&amp;lt;- plot + geom_point(colour=&amp;quot;red&amp;quot;)+geom_smooth(method=&amp;quot;lm&amp;quot;) &lt;br /&gt;
plot&amp;lt;- plot + coord_trans(ytrans=&amp;quot;log10&amp;quot;)&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== scale ====&lt;br /&gt;
L'argument scale permet de contrôler les axes du graphique, par exemple : la transformation, les limites des axes, le pas utilisé, les labels, etc.&lt;br /&gt;
&lt;br /&gt;
===== Changer les labels (axe discret) =====&lt;br /&gt;
On peut changer les labels de l'axe des x (discret). On ajoute également un titre à cet axe, ainsi qu'à l'axe des y.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# changer labels&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(y=Sepal.Length, x=Species))&lt;br /&gt;
plot&amp;lt;- plot + geom_boxplot(fill=&amp;quot;#FF9999&amp;quot;)&lt;br /&gt;
plot&amp;lt;- plot + scale_x_discrete(breaks=c(&amp;quot;setosa&amp;quot;, &amp;quot;versicolor&amp;quot;, &amp;quot;virginica&amp;quot;),labels = c(&amp;quot;Espèce A&amp;quot;,&amp;quot;Espèce B&amp;quot;,&amp;quot;Espèce C&amp;quot;),name=&amp;quot;Code espèce de l'iris&amp;quot;) &lt;br /&gt;
          + scale_y_continuous(name=&amp;quot;Longueur de la Sépale&amp;quot;)&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Changer le pas =====&lt;br /&gt;
Ici, on change le pas de l'axe des y pour un pas tous les 0.25.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# changer le pas&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length, Sepal.Width))&lt;br /&gt;
plot&amp;lt;- plot + geom_point(colour=&amp;quot;red&amp;quot;)&lt;br /&gt;
plot&amp;lt;-plot + scale_y_continuous(breaks=seq(0, 10, 0.25))&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Changer les bornes =====&lt;br /&gt;
On change les limites de l'axe des y (limite entre 3 et 4).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# changer les limites&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length, Sepal.Width))&lt;br /&gt;
plot&amp;lt;- plot + geom_point(colour=&amp;quot;red&amp;quot;)&lt;br /&gt;
plot&amp;lt;-plot + scale_y_continuous(limits=c(3,4))&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention, pour des graphiques de type scatterplot, cela va simplement exclure du graphique les observations en dehors de l'intervalle. Cependant, pour un graphique de type boxplot, si l'objectif est de &amp;quot;zoomer&amp;quot;, le résultat sera alors un boxplot erroné (car portant uniquement sur les observations DE l'intervalle).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# changer les limites : boxplot&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(y=Sepal.Length, x=Species))&lt;br /&gt;
plot&amp;lt;- plot + geom_boxplot(fill=&amp;quot;#FF9999&amp;quot;)&lt;br /&gt;
plot&amp;lt;-plot + scale_y_continuous(limits=c(4.5,6.5))&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il convient alors d'utiliser coord_cartesian() pour définir les limites de l'axe en &amp;quot;zoomant&amp;quot;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#zoom : boxplot&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(y=Sepal.Length, x=Species))&lt;br /&gt;
plot&amp;lt;- plot + geom_boxplot(fill=&amp;quot;#FF9999&amp;quot;)&lt;br /&gt;
plot&amp;lt;-plot + coord_cartesian(ylim=c(4.5,6.5))&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== position ====&lt;br /&gt;
position permet d'ajuster la position de l'objet géométrique. Comme pour stat, une modalité est associée par défaut à chaque geom. Il n’est donc pas nécessaire de le spécifier, sauf si l’on souhaite utiliser un argument différent de la valeur par défaut. &lt;br /&gt;
&lt;br /&gt;
Les ajustement de position disponibles sont : &lt;br /&gt;
* position_identity - default pour la pluspart des geoms. &lt;br /&gt;
* position_jitter - default pour geom_jitter&lt;br /&gt;
* position_dodge - default pour geom_boxplot&lt;br /&gt;
* position_stack - default pour geom_bar, geom_histogram et geom_area&lt;br /&gt;
* position_fill - utile pour geom_bar,geom_histogram et geom_area&lt;br /&gt;
&lt;br /&gt;
Par exemple, il peut être intéressant d'adapter la position dans le cas de barplots ou d'histogrammes.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par défaut position_stack :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### position&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length_cat))&lt;br /&gt;
plot&amp;lt;- plot + geom_bar(aes(fill=Species))&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour des bâtons de même taille : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length_cat))&lt;br /&gt;
plot&amp;lt;- plot + geom_bar(aes(fill=Species),position=&amp;quot;fill&amp;quot;)&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour obtenir des bâtons séparés pour chacune des modalités :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length_cat))&lt;br /&gt;
plot&amp;lt;- plot + geom_bar(aes(fill=Species),position=&amp;quot;dodge&amp;quot;)&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention à réfléchir à la position la plus adaptée. Ici par exemple, le nombre d'observation pour l'espèce virginica et la modalité &amp;quot;petit&amp;quot; recouvre celles des deux autres espèces...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length_cat))&lt;br /&gt;
plot&amp;lt;- plot + geom_bar(aes(fill=Species),position=&amp;quot;identity&amp;quot;)&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== facet ====&lt;br /&gt;
Comme précédemment, facet permet de produire des graphiques séparés selon les différents groupes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Grouping : horizontal&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length, Sepal.Width))&lt;br /&gt;
plot&amp;lt;- plot + geom_point(colour=&amp;quot;red&amp;quot;) &lt;br /&gt;
plot&amp;lt;- plot + facet_grid(. ~ Species)&lt;br /&gt;
plot&lt;br /&gt;
&lt;br /&gt;
#Grouping : graphs verticaux&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length, Sepal.Width))&lt;br /&gt;
plot&amp;lt;- plot + geom_point(colour=&amp;quot;red&amp;quot;) &lt;br /&gt;
plot&amp;lt;- plot +facet_grid(Species~.)&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de séparer les observations selon deux variables (discrètes).&lt;br /&gt;
Par exemple, on crée une nouvelle variable discrète pour illustrer (car la base de données n'en contient qu'une seule). Celle-ci prend la valeur &amp;quot;petit&amp;quot; si la longueur de la Sépale est &amp;lt;=5, &amp;quot;moyen si elle est  comprise entre 5 et 6 (6 inclus), et &amp;quot;grand&amp;quot; si elle est &amp;gt;6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 ## On crée une nouvelle variable facteur : &lt;br /&gt;
iris$Sepal.Length_cat[iris$Sepal.Length&amp;lt;=5]&amp;lt;-&amp;quot;petit&amp;quot;&lt;br /&gt;
iris$Sepal.Length_cat[iris$Sepal.Length&amp;lt;=6 &amp;amp; iris$Sepal.Length&amp;gt;5]&amp;lt;-&amp;quot;moyen&amp;quot;&lt;br /&gt;
iris$Sepal.Length_cat[iris$Sepal.Length&amp;gt;=6]&amp;lt;-&amp;quot;grand&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Grouping : deux variables&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length, Sepal.Width))&lt;br /&gt;
plot&amp;lt;- plot + geom_point(colour=&amp;quot;red&amp;quot;) &lt;br /&gt;
plot&amp;lt;- plot + facet_grid(Sepal.Length_cat ~ Species)&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Données par groupes ===&lt;br /&gt;
Pour afficher les observations issues de groupes différents (ici d'espèces différentes) de couleurs différentes, et de formes différentes, on utilise : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## scatterplot : couleurs et symboles différents pour chaque groupe&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length, Sepal.Width)) &lt;br /&gt;
plot&amp;lt;- plot + geom_point(aes(color = Species,shape = Species))&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour  changer manuellement les couleurs : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plot&amp;lt;- plot + scale_colour_manual(values = c(&amp;quot;red&amp;quot;, &amp;quot;orange&amp;quot;, &amp;quot;purple&amp;quot;))&lt;br /&gt;
plot&amp;lt;-plot + scale_shape_manual(values = c(16, 17, 18))&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Changer le jeu de données ===&lt;br /&gt;
Une fois le graphique créé, il est possible de l'appliquer à un jeu de données différent (à condition que les variables correspondent). Par exemple ici, on créee trois bases de données, contenant les mêmes variables. Pour cela, on divise la base initiale selon l’espèce.&lt;br /&gt;
On crée un graphique de type scatter plot, affichant une droite de regression linéaire pour le sous-jeu de données setosa. L’utilisation de '''« %+% »''' va permettre de produire le même graphique, pour le sous-jeu de données versicolor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Data&lt;br /&gt;
iris_setosa &amp;lt;- subset(iris, Species == &amp;quot;setosa&amp;quot;)&lt;br /&gt;
iris_versi &amp;lt;- subset(iris, Species == &amp;quot;versicolor&amp;quot;)&lt;br /&gt;
iris_virgin &amp;lt;- subset(iris, Species == &amp;quot;virginica&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
plot&amp;lt;-ggplot(iris_setosa,aes(Sepal.Length,Sepal.Width))+geom_point(colour=&amp;quot;red&amp;quot;)&lt;br /&gt;
plot&lt;br /&gt;
&lt;br /&gt;
plot %+% iris_versi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ajouter un titre&lt;br /&gt;
Modifier le thème&lt;br /&gt;
&lt;br /&gt;
== Enregistrer le graphique ==&lt;br /&gt;
Il est possible de sauvegarder un graphique affiché à l'écran grâce à la fonction ggsave (valable pour un graphique créé avec QPLOT ou avec GGPLOT).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#sauver le graphique affiché à l'écran&lt;br /&gt;
hist&amp;lt;-ggplot(data=iris,aes(x=Sepal.Length)) &lt;br /&gt;
hist &amp;lt;- hist + geom_histogram(fill=&amp;quot;orange&amp;quot;,binwidth=0.3)&lt;br /&gt;
hist&lt;br /&gt;
&lt;br /&gt;
ggsave(&amp;quot;plot.pdf&amp;quot;, width=4, height=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5937</id>
		<title>Package R ggplot2</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5937"/>
				<updated>2014-07-16T14:30:05Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ggplot2 est un package de R qui permet de réaliser des graphiques plus perfectionnés, et au design plus moderne. Pour cela, il existe deux fonctions : &lt;br /&gt;
* QPLOT (pour &amp;quot;Quick Plot&amp;quot;) qui est la fonction &amp;quot;de base&amp;quot; du package (mais qui offre de grandes possibilités). Syntaxe générale : qplot(x,y,data=database)&lt;br /&gt;
* GGPLOT va permettre de créer des graphiques extrêmement perfectionnés. Sa syntaxe diffère de la syntaxe habituelle : ggplot(data=data,aes=(x,y)) +layers. La fonction ggplot (argument data et aes pour &amp;quot;aesthetic mapping&amp;quot;) va permettre de créer le graphique en lui même, et les layers vont permettre d'ajouter des paramètres modifiant la représentation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##### On installe le package&lt;br /&gt;
install.packages(&amp;quot;ggplot2&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois installé, il suffit de charger le package, avant de vouloir l'utiliser.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge le package&lt;br /&gt;
library(ggplot2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Jeu de données : ==&lt;br /&gt;
Pour illustrer, on utilise le jeu de données « iris » de R, qui contient 150 observations de 5 variables : 4 variables de type quantitatif, et une de type qualitatif (Species).&lt;br /&gt;
* Sepal.Length : longueur de la sépale&lt;br /&gt;
* Sepal.Width : largeur de la sépale Petal.Length : longueur du pétale&lt;br /&gt;
* Petal.Width : largeur du pétale&lt;br /&gt;
* Species : espèce.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge les données&lt;br /&gt;
data(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La fonction head(dataset) permet d’avoir un aperçu des premières lignes du jeu de données : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
head(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Headiris.png]]&lt;br /&gt;
&lt;br /&gt;
Attention ! pour utiliser ggplot2, les données doivent être sous la forme « data.frame », ce qui peut être vérifié par : class(dataset), et corrigé si besoin avec as.data.frame(dataset)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class(iris)&lt;br /&gt;
as.data.frame(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== QPLOT ==&lt;br /&gt;
&lt;br /&gt;
La syntaxe ressemble effectivement à celle de la fonction plot() (package &amp;quot;de base&amp;quot; de R).&lt;br /&gt;
&lt;br /&gt;
''qplot(x, y = NULL, ..., data, facets = NULL, margins = FALSE, geom = &amp;quot;auto&amp;quot;, stat = list(NULL), position = list(NULL), xlim = c(NA,NA), ylim = c(NA, NA), log = &amp;quot;&amp;quot;, main = NULL, xlab = deparse(substitute(x)), ylab = deparse(substitute(y)), asp = NA)''&lt;br /&gt;
&lt;br /&gt;
=== Objet géométrique ===&lt;br /&gt;
&lt;br /&gt;
L’argument geom() (pour objet géométrique) va permettre de réaliser différents graphiques à une ou deux dimensions. &lt;br /&gt;
Par défaut : &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type de la variable&lt;br /&gt;
! Objet par défaut&lt;br /&gt;
|-&lt;br /&gt;
| Quantitative&lt;br /&gt;
| geom =&amp;quot;histogram&amp;quot;  &lt;br /&gt;
|-&lt;br /&gt;
| Qualitative&lt;br /&gt;
| geom=&amp;quot;bar&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Deux variables quantitatives&lt;br /&gt;
| geom=&amp;quot;point&amp;quot; (scatterplot)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
De nombreux graphiques sont possibles (voir geom dans la documentation du package ggplot2, ou  en page 56). Parmi les plus utilisés : &lt;br /&gt;
&lt;br /&gt;
'''Pour une variable à analyser :''' &lt;br /&gt;
* histogram : histogramme (variable quantitative continue)&lt;br /&gt;
* density : trace la courbe de densité (variable quantitative continue)&lt;br /&gt;
* freqpoly : polynôme de fréquence (variable quantitative continue)&lt;br /&gt;
* bar : diagramme en bâton (variable discrète)&lt;br /&gt;
&lt;br /&gt;
'''Pour deux variables :''' &lt;br /&gt;
* point : scatterplot (deux variables continues)&lt;br /&gt;
* smooth : trace une courbe de tendance et son écart-type (deux variables continues)&lt;br /&gt;
* boxplot : boxplot (une variable quantitative continue, une variable discrète)&lt;br /&gt;
&lt;br /&gt;
'''Séries temporelles'''&lt;br /&gt;
* line : trace des lignes entre les points (de la gauche vers la droite)&lt;br /&gt;
* path : trace des lignes entre les points (dans n’importe quelle direction)&lt;br /&gt;
&lt;br /&gt;
A noter également que les objets géométriques peuvent être combinés (à partir du moment où cela est raisonnable sur le plan statistique).&lt;br /&gt;
&lt;br /&gt;
=== Une dimension ===&lt;br /&gt;
&lt;br /&gt;
==== Variable quantitative, continue. ====&lt;br /&gt;
&lt;br /&gt;
===== Histogramme =====&lt;br /&gt;
C'est le graphique tracé par défaut lorsque la variable indiquée est de type quantitatif (continu).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_base_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
On peut l'améliorer : changer la couleur de remplissage (argument '''fill''') et/ou la couleur de la bordure (argument '''colour''') :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;)) ## couleur de remplissage en orange&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;),colour=I(&amp;quot;black&amp;quot;))  ## et bordure en noir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_orange_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_orange_black_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
De plus, QQPLOT permet d’adapter la largeur des classes utilisées pour tracer l’histogramme, et donc d’avoir un degré de précision plus ou moins élevé, grâce à l’argument binwidth.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;),binwidth=1)  ## larges classes&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,binwidth=0.05)  ## classes ressérées&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_large_qplot.png]]&lt;br /&gt;
[[Fichier:histo_serre_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Courbe de densité =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;density&amp;quot;,colour=I(&amp;quot;red&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbe_densité_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Il peut être intéressant de la combiner avec l'histogramme.&lt;br /&gt;
&lt;br /&gt;
===== Polynôme de fréquence =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;freqpoly&amp;quot;,colour=I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:polyfreq_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Variable discrète =====&lt;br /&gt;
&lt;br /&gt;
Le graphique produit par défaut est un diagramme en bâton (à ne pas confondre avec un histogramme !!! voir [[Statistiques descriptives avec R]]) &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Species,data=iris,geom=&amp;quot;bar&amp;quot;,fill=I(&amp;quot;yellow&amp;quot;)) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barplot_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deux dimensions === &lt;br /&gt;
&lt;br /&gt;
==== Deux variables continues ====&lt;br /&gt;
&lt;br /&gt;
===== Scatterplot =====&lt;br /&gt;
&lt;br /&gt;
Le graphique produit par défaut par la fonction est un nuage de points classique.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Deux variables continues&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;point&amp;quot;) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_base_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Les arguments de la fonction peuvent être modifiés, par exemple pour produire un graphique avec des points bleu (et non noirs).... &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## changer la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour = I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_bleu_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
... ou  pour produire un graphique avec des « + » à la place des points.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## changer le symbole&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,shape=I(3))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_plus_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de modifier la taille des points sur le graphique, à l’aide de l’argument size par exemple pour affiner les points ou les grossir(par défaut, size=I(2)).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## taille&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,size=I(3))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_taille_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Enfin, l’argument alpha est utile en cas de nombre conséquent d’observations qui vont se superposer sur le graphique (ce qui n’est pas le cas ici). En ajustant la transparence, il permet d’améliorer la lisibilité du graphique. Par défaut alpha=I(1), et l’utilisateur peut fixer alpha=I(1/x), avec x le nombre nécessaire d’observations qui se superposent pour obtenir une couleur opaque.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## transparence&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,alpha=I(1/10))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_transparence_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Courbe de tendance =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;smooth&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbe_tendance_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
à noter que la méthode pour tracer la courbe de tendance peut être changée par l’utilisateur grâce à l’argument «method= (par défaut, method=« loess » pour un nombre d’observations faible). Par exemple, method=« lm » permet de tracer une droite de regression linéaire.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;smooth&amp;quot;,method=&amp;quot;lm&amp;quot;) # lm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbelm_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Il peut être utile de combiner l'objet géométrique courbe de tendance avec un nuage de points : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),method=&amp;quot;lm&amp;quot;) #combiné&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_lm_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Le tracé peut être plus ou moins sinueux grâce à l’argument span, allant de 0 à 1.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##sinuosité&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),span=0.2)&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),span=1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_lm_span1_qplot.png]]&lt;br /&gt;
[[Fichier:scatt_lm_span2_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Une variable continue, une discrète ====&lt;br /&gt;
Il n'est pas rare de vouloir représenter la distribution une variable continue, selon différentes sous-populations définies par une variable discrète. Pour cela on peut utiliser un boxplot. (voir [[Statistiques descriptives avec R]]). QPLOT va également permettre des représentations plus perfectionnées des graphiques présentés précédemment, en tenant compte de ces différentes sous-populations.&lt;br /&gt;
&lt;br /&gt;
===== Boxplot =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Une continue, une discrete&lt;br /&gt;
qplot(Species,Sepal.Length, data=iris, geom=&amp;quot;boxplot&amp;quot;,fill=I(&amp;quot;purple&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boxplot_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Sous-populations : sur un même graphique ===== &lt;br /&gt;
&lt;br /&gt;
On peut présenter les observations issues de différentes sous-populations définies par les niveaux de la variable facteur group, soit d’une couleur différente (contour ou remplissage), soit d’un symbole différent.&lt;br /&gt;
Rappel : &lt;br /&gt;
* argument colour = bordure&lt;br /&gt;
* argument fill = remplissage&lt;br /&gt;
* argument shape = symbole&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Par exemple l’argument colour=group permet de présenter d'une couleur différente sur le nuage de points, les observations issues de différentes sous-populations, définies par les niveaux de la variable facteur group.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## ajoute de la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour=Species)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
On peut faire de même sur un graphique de type scatterplot grâce à l’argument shape=group, avec cette fois des symboles différents, selon le niveau de la variable group.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,geom=&amp;quot;point&amp;quot;,shape=Species) #symboles&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_Species_symbole_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
C’est aussi réalisable sur des courbes de densité (argument colour).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# densité&lt;br /&gt;
qplot(Sepal.Length, data=iris,geom=&amp;quot;density&amp;quot;,colour=Species)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:densité_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Pour un histogramme, l’agument à utiliser est fill=group pour modifier le remplissage.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=Species) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Attention à ne pas confondre fill=I(&amp;quot;red&amp;quot;) (utilisé pour paramétrer le remplissage en rouge, valable aussi pour l'argument colour..) et fill=group (utilisé pour changer la couleur selon les sous-populations définies pas la variable group). Déclarer fill=&amp;quot;red&amp;quot; et non fill=I(&amp;quot;red&amp;quot;) aurait pour conséquence de créer une nouvelle variable &amp;quot;red&amp;quot;, et de représenter les observations de couleurs différentes selon les modalités prises par cette variable (soit une seule). R ne produira pas de message d'erreur, mais le graphique sera obtenu de manière erronée.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=&amp;quot;red&amp;quot;) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_faux_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Le graphique correct serait : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;red&amp;quot;)) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_faux_correct_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Sous-populations : différents graphiques ===== &lt;br /&gt;
&lt;br /&gt;
QPLOT offre aussi la possibilité de créer plusieurs graphiques juxtaposés, correspondant à un même graphique pour chacune des différentes sous-populations définies par une variable group. On utilise l’argument facets=. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
facets= . ~ group va présenter les graphiques cote à cote (horizontalement), tandis que facets= group ~ . les superposera (verticalement). &lt;br /&gt;
&lt;br /&gt;
Par exemple ici, l’histogramme pour la variable Sepal.Length, pour chaque espèce. On constate qu’il est préférable de les présenter verticalement, sinon les histogrammes sont écrasés et peu lisibles.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,facets = Species ~ .,geom=&amp;quot;histogram&amp;quot;,binwidth=0.1,fill=I(&amp;quot;orange&amp;quot;)) #ordre vertical&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:facet_vertical_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,facets = . ~ Species,geom=&amp;quot;histogram&amp;quot;,binwidth=0.1,fill=I(&amp;quot;orange&amp;quot;)) #ordre horizontal&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:facet_horizontal_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Données en séries temporelles ====&lt;br /&gt;
&lt;br /&gt;
Line et path sont utilisés dans le cas de séries temporelles. On rappelle que la différence entre les deux provient du fait que path relie les points dans n’importe quelle direction (pourvu qu’il apparaissent en suivant dans la base de données), tandis que line relie les points de gauche à droite.&lt;br /&gt;
&lt;br /&gt;
Ainsi, on utilisera line, par exemple pour tracer l’évolution d’un phénomène en fonction de la date, tandis que l’on utilisera path pour relier les différents points selon l’ordre chronologique, dans un graphique à deux dimensions (dont aucune n’est temporelle).&lt;br /&gt;
&lt;br /&gt;
Pour illustrer, étant donné que les données &amp;quot;iris&amp;quot; sont en coupe transversale, on utilise le jeu de données « longley » qui contient des données macro-économiques annuelles (16 observations, entre 1947 et 1962).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
data(longley) #on charge le jeu de données&lt;br /&gt;
head(longley)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Fichier:head_longley.png]]&lt;br /&gt;
&lt;br /&gt;
==== Geom line ====&lt;br /&gt;
Par exemple, on peut utiliser l’argument line pour tracer l’évolution temporelle du taux de chômage.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#evolution temporelle du nombre de personnes au chômage.&lt;br /&gt;
qplot(Year,Unemployed/Population, data=longley, geom=&amp;quot;line&amp;quot;,colour=I(&amp;quot;red&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:line_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Geom path ====&lt;br /&gt;
On trace ensuite par exemple le nombre de personnes au chômage en fonction du taux de chômage. L’argument path va permettre de relier les points pour visualiser la variation d’année en année. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Nombre de personnes au chômage en fonction du taux de chômage&lt;br /&gt;
qplot(Unemployed/Population,Unemployed, data=longley, geom=&amp;quot;path&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:path_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Ici, même sans ajouter la couleur le graphique est clair (il y a peu d’observations, et les tracés ne se superposent pas). Mais dans d'autres cas, l'ajout de ce dégradé de couleur selon l'année permet de rendre le graphique beaucoup plus lisible. (Trois dimensions).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Ajoute la couleur pour l'année&lt;br /&gt;
qplot(Unemployed/Population,Unemployed, data=longley, geom=&amp;quot;path&amp;quot;,colour=Year)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:path_color_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GGPLOT ==&lt;br /&gt;
&lt;br /&gt;
ggplot est la seconde fonction du package ggplot2, et va permettre de produire des graphiques plus complexes et élaborés. &lt;br /&gt;
De plus, alors que la fonction qplot était relativement similaire dans sa syntaxe des fonctions traditionnelles permettant de tracer des graphiques sous R, la syntaxe utilisée par ggplot est totalement différente.&lt;br /&gt;
&lt;br /&gt;
En effet, la fonction en elle-même n’a que deux arguments : &lt;br /&gt;
* data : les données (sous la forme data.frame)&lt;br /&gt;
* une fonction aes (pour &amp;quot;aesthetic mapping&amp;quot;), qui va contenir les variables et les paramètres utilisés pour l’esthétique du graphique.&lt;br /&gt;
&lt;br /&gt;
ggplot fonctionne par l’ajout de calques (« layers »).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ainsi, la commande suivante ne permet pas de tracer un graph, et nécessite pour cela d’ajouter au minimum un calque minimal.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ggplot(data=iris,aes(Sepal.Length,Sepal.Width)) #no layers in plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Par exemple, si l’on souhaite tracer un nuage ce points, on ajoute le layer geom=« point » sous la forme suivante : ''ggplot(data=data,aes(x,y,….)) + layer(geom=« point »,……)''. C'est pourquoi, il est intéressant de &amp;quot;stocker&amp;quot; le graphique dans un objet R, et de le modifier par l'ajout successif de layers, comme ci-dessous.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Ajoute un layer minimal&lt;br /&gt;
plot&amp;lt;-ggplot(data=iris,aes(Sepal.Length,Sepal.Width))&lt;br /&gt;
plot+layer(geom=&amp;quot;point&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Layer ===&lt;br /&gt;
Layer peut prendre différents arguments (le principal étant geom), par exemple : &lt;br /&gt;
* '''geom''' permet de spécifier le type de graphique souhaité (de manière similaire à l’usage dans la fonction qplot)&lt;br /&gt;
* '''geom_params''' va contenir tous les paramètres associés, permettant de personnaliser le graphique.&lt;br /&gt;
* '''stat''' consiste en une transformation statistique des données. De nouvelles variables vont être créées, qui résument les variables d’une certaine manière. Lorsque geom est utilisé, cette transformation va être automatiquement réalisée (selon le type de graphique souhaité). Elle peut éventuellement être l’identité.&lt;br /&gt;
Par exemple, la transformation associée par défaut à l’histogramme est « bin », et va créer trois nouvelles variables : count (le nombre d’observation dans chaque classe), density (le pourcentage divisé par la largeur de la classe), et x (le centre de la classe). &lt;br /&gt;
* '''stat_params''' contient les paramètres associés à cette transformation. Par exemple lorsque que l’on souhaite spécifier la largeur des classes utilisées pour l’histogramme, il va s’agir d’un paramètre stat, et non geom.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ainsi, la commande ci-dessous va permettre de tracer un histogramme pour la longueur de la sépale, de couleur orange, avec une longueur de classe de 0.3.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Histogramme&lt;br /&gt;
ggplot(data=iris,aes(x=Sepal.Length)) + layer(geom=&amp;quot;histogram&amp;quot;,&lt;br /&gt;
                                              geom_params=list(fill=&amp;quot;orange&amp;quot;),&lt;br /&gt;
                                              stat=&amp;quot;bin&amp;quot;,&lt;br /&gt;
                                              stat_params=list(binwidth=2))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cependant, cette syntaxe est relativement lourde, et peut être considérablement allégée.&lt;br /&gt;
&lt;br /&gt;
Tout d’abord, l’argument layer(geom=&amp;quot;histogram&amp;quot;,geom_params=list(fill=&amp;quot;orange&amp;quot;) peut être remplacé par l’argument geom_histogram(fill=« orange »). De plus, en tenant compte du fait que chaque type de graphique (geom) est lié à une transformation statistique (stats), on peut finalement simplifier l’argument layer en : geom_histogram(fill=&amp;quot;orange&amp;quot;,binwidth=0.3)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Ainsi, la commande suivante produit le même graphique.&lt;br /&gt;
#simplification&lt;br /&gt;
hist&amp;lt;-ggplot(data=iris,aes(x=Sepal.Length)) &lt;br /&gt;
hist &amp;lt;- hist + geom_histogram(fill=&amp;quot;orange&amp;quot;,binwidth=0.3)&lt;br /&gt;
hist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
NB : il est parfois nécessaire de demander à imprimer le graphique à l’écran.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On va raisonner de cette façon pour la suite. Ainsi les principaux layers pouvant être ajoutés vont être les suivants : &lt;br /&gt;
* geom_XXX() (par example : geom_point(), geom_histogram(), geom_vline(), etc.) : correspondant au type de graphique à créer&lt;br /&gt;
* stat_XXX() (par exemple : stat_bin(), stat_smooth(), etc.)  : correspondant à la transformation statistique à utiliser &lt;br /&gt;
* scale_XXX() (par exemple : scale_x_continuous(), : contrôlant l’échelle utilisée pour les axes.  &lt;br /&gt;
* coord_XXX() : permettant de contrôler le système de coordonnées utilisé.&lt;br /&gt;
* facet_XXX() : permettant de faire des graphiques pour des sous-groupes&lt;br /&gt;
* position_XXX() :&lt;br /&gt;
&lt;br /&gt;
==== coord ====&lt;br /&gt;
coord() (système de coordonnées à utiliser) et scale()  (échelles des axes) déterminent la position de l’argument géométrique geom.&lt;br /&gt;
&lt;br /&gt;
Par défaut : coord_cartesian (coordonnées cartésiennes « classiques », x est représenté sur l’axe des abscisses (de gauche à droite), et y sur celui des ordonnées (de bas en haut)&lt;br /&gt;
* coord_flip : inverse l’axe des x et des y&lt;br /&gt;
* coord_equal : même échelle pour l’axe des x et celui des y (cartésiens)&lt;br /&gt;
* coord_polar : coordonnées polaires :&lt;br /&gt;
* préciser la variable qui représente theta (l’angle)&lt;br /&gt;
* coord_trans : permet de transformer « manuellement » les axes (nécessite de préciser la transformation voulue)&lt;br /&gt;
* coord_map :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple, on inverse l'axe des x et celui des y :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## coord flip : boxplot&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(y=Sepal.Length, x=Species))&lt;br /&gt;
plot&amp;lt;- plot + geom_boxplot(fill=&amp;quot;#FF9999&amp;quot;)&lt;br /&gt;
plot&amp;lt;- plot + coord_flip()&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## coord flip : scatter + lm&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(x=Sepal.Length, y=Species))&lt;br /&gt;
plot&amp;lt;- plot + geom_point(colour=&amp;quot;red&amp;quot;) +geom_smooth(method=&amp;quot;lm&amp;quot;)&lt;br /&gt;
plot&amp;lt;- plot + coord_flip()&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On utilise des coordonnées polaires, et non plus cartésiennes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## coord_polar&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length, Sepal.Width))&lt;br /&gt;
plot&amp;lt;- plot + geom_point(colour=&amp;quot;red&amp;quot;)+geom_smooth(method=&amp;quot;lm&amp;quot;) &lt;br /&gt;
plot&amp;lt;- plot + coord_polar()&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On utilise une échelle logarithmique pour l'axe des ordonnées.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## coord_trans&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length, Sepal.Width))&lt;br /&gt;
plot&amp;lt;- plot + geom_point(colour=&amp;quot;red&amp;quot;)+geom_smooth(method=&amp;quot;lm&amp;quot;) &lt;br /&gt;
plot&amp;lt;- plot + coord_trans(ytrans=&amp;quot;log10&amp;quot;)&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== scale ====&lt;br /&gt;
L'argument scale permet de contrôler les axes du graphique, par exemple : la transformation, les limites des axes, le pas utilisé, les labels, etc.&lt;br /&gt;
&lt;br /&gt;
===== Changer les labels (axe discret) =====&lt;br /&gt;
On peut changer les labels de l'axe des x (discret). On ajoute également un titre à cet axe, ainsi qu'à l'axe des y.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# changer labels&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(y=Sepal.Length, x=Species))&lt;br /&gt;
plot&amp;lt;- plot + geom_boxplot(fill=&amp;quot;#FF9999&amp;quot;)&lt;br /&gt;
plot&amp;lt;- plot + scale_x_discrete(breaks=c(&amp;quot;setosa&amp;quot;, &amp;quot;versicolor&amp;quot;, &amp;quot;virginica&amp;quot;),labels = c(&amp;quot;Espèce A&amp;quot;,&amp;quot;Espèce B&amp;quot;,&amp;quot;Espèce C&amp;quot;),name=&amp;quot;Code espèce de l'iris&amp;quot;) &lt;br /&gt;
          + scale_y_continuous(name=&amp;quot;Longueur de la Sépale&amp;quot;)&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Changer le pas =====&lt;br /&gt;
Ici, on change le pas de l'axe des y pour un pas tous les 0.25.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# changer le pas&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length, Sepal.Width))&lt;br /&gt;
plot&amp;lt;- plot + geom_point(colour=&amp;quot;red&amp;quot;)&lt;br /&gt;
plot&amp;lt;-plot + scale_y_continuous(breaks=seq(0, 10, 0.25))&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Changer les bornes =====&lt;br /&gt;
On change les limites de l'axe des y (limite entre 3 et 4).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# changer les limites&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length, Sepal.Width))&lt;br /&gt;
plot&amp;lt;- plot + geom_point(colour=&amp;quot;red&amp;quot;)&lt;br /&gt;
plot&amp;lt;-plot + scale_y_continuous(limits=c(3,4))&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention, pour des graphiques de type scatterplot, cela va simplement exclure du graphique les observations en dehors de l'intervalle. Cependant, pour un graphique de type boxplot, si l'objectif est de &amp;quot;zoomer&amp;quot;, le résultat sera alors un boxplot erroné (car portant uniquement sur les observations DE l'intervalle).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# changer les limites : boxplot&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(y=Sepal.Length, x=Species))&lt;br /&gt;
plot&amp;lt;- plot + geom_boxplot(fill=&amp;quot;#FF9999&amp;quot;)&lt;br /&gt;
plot&amp;lt;-plot + scale_y_continuous(limits=c(4.5,6.5))&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il convient alors d'utiliser coord_cartesian() pour définir les limites de l'axe en &amp;quot;zoomant&amp;quot;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#zoom : boxplot&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(y=Sepal.Length, x=Species))&lt;br /&gt;
plot&amp;lt;- plot + geom_boxplot(fill=&amp;quot;#FF9999&amp;quot;)&lt;br /&gt;
plot&amp;lt;-plot + coord_cartesian(ylim=c(4.5,6.5))&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== position ====&lt;br /&gt;
position : pour ajuster la positions du geom. ???&lt;br /&gt;
Comme pour stat, une modalité est associée par défaut à chaque geom. Il n’est donc pas nécessaire de le spécifier, sauf si l’on souhaite utiliser un argument différent de la valeur par défaut. Si tel est le cas, on peut aussi le spécifier au sein de l’argument geom : geom_XXX(….,position=position_YYY(width=, height=).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il y a deux arguments pour tous les ajustements de position possibles : width et height&lt;br /&gt;
Les ajustement de position disponibles sont : &lt;br /&gt;
* position_identity - default of most geoms&lt;br /&gt;
* position_jitter - default of geom_jitter&lt;br /&gt;
* position_dodge - default of geom_boxplot&lt;br /&gt;
* position_stack - default of geom_bar==geom_histogram and geom_area&lt;br /&gt;
* position_fill - useful for geom_bar==geom_histogram and geom_area&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== facet ====&lt;br /&gt;
Comme précédemment, facet permet de produire des graphiques séparés selon les différents groupes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Grouping : horizontal&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length, Sepal.Width))&lt;br /&gt;
plot&amp;lt;- plot + geom_point(colour=&amp;quot;red&amp;quot;) &lt;br /&gt;
plot&amp;lt;- plot + facet_grid(. ~ Species)&lt;br /&gt;
plot&lt;br /&gt;
&lt;br /&gt;
#Grouping : graphs verticaux&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length, Sepal.Width))&lt;br /&gt;
plot&amp;lt;- plot + geom_point(colour=&amp;quot;red&amp;quot;) &lt;br /&gt;
plot&amp;lt;- plot +facet_grid(Species~.)&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de séparer les observations selon deux variables (discrètes).&lt;br /&gt;
Par exemple, on crée une nouvelle variable discrète pour illustrer (car la base de données n'en contient qu'une seule). Celle-ci prend la valeur &amp;quot;petit&amp;quot; si la longueur de la Sépale est &amp;lt;=5, &amp;quot;moyen si elle est  comprise entre 5 et 6 (6 inclus), et &amp;quot;grand&amp;quot; si elle est &amp;gt;6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 ## On crée une nouvelle variable facteur : &lt;br /&gt;
iris$Sepal.Length_cat[iris$Sepal.Length&amp;lt;=5]&amp;lt;-&amp;quot;petit&amp;quot;&lt;br /&gt;
iris$Sepal.Length_cat[iris$Sepal.Length&amp;lt;=6 &amp;amp; iris$Sepal.Length&amp;gt;5]&amp;lt;-&amp;quot;moyen&amp;quot;&lt;br /&gt;
iris$Sepal.Length_cat[iris$Sepal.Length&amp;gt;=6]&amp;lt;-&amp;quot;grand&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Grouping : deux variables&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length, Sepal.Width))&lt;br /&gt;
plot&amp;lt;- plot + geom_point(colour=&amp;quot;red&amp;quot;) &lt;br /&gt;
plot&amp;lt;- plot + facet_grid(Sepal.Length_cat ~ Species)&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Données par groupes ===&lt;br /&gt;
Pour afficher les observations issues de groupes différents (ici d'espèces différentes) de couleurs différentes, et de formes différentes, on utilise : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## scatterplot : couleurs et symboles différents pour chaque groupe&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length, Sepal.Width)) &lt;br /&gt;
plot&amp;lt;- plot + geom_point(aes(color = Species,shape = Species))&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour  changer manuellement les couleurs : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plot&amp;lt;- plot + scale_colour_manual(values = c(&amp;quot;red&amp;quot;, &amp;quot;orange&amp;quot;, &amp;quot;purple&amp;quot;))&lt;br /&gt;
plot&amp;lt;-plot + scale_shape_manual(values = c(16, 17, 18))&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Changer le jeu de données ===&lt;br /&gt;
Une fois le graphique créé, il est possible de l'appliquer à un jeu de données différent (à condition que les variables correspondent). Par exemple ici, on créee trois bases de données, contenant les mêmes variables. Pour cela, on divise la base initiale selon l’espèce.&lt;br /&gt;
On crée un graphique de type scatter plot, affichant une droite de regression linéaire pour le sous-jeu de données setosa. L’utilisation de '''« %+% »''' va permettre de produire le même graphique, pour le sous-jeu de données versicolor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Data&lt;br /&gt;
iris_setosa &amp;lt;- subset(iris, Species == &amp;quot;setosa&amp;quot;)&lt;br /&gt;
iris_versi &amp;lt;- subset(iris, Species == &amp;quot;versicolor&amp;quot;)&lt;br /&gt;
iris_virgin &amp;lt;- subset(iris, Species == &amp;quot;virginica&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
plot&amp;lt;-ggplot(iris_setosa,aes(Sepal.Length,Sepal.Width))+geom_point(colour=&amp;quot;red&amp;quot;)&lt;br /&gt;
plot&lt;br /&gt;
&lt;br /&gt;
plot %+% iris_versi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ajouter un titre&lt;br /&gt;
Modifier le thème&lt;br /&gt;
&lt;br /&gt;
== Enregistrer le graphique ==&lt;br /&gt;
Il est possible de sauvegarder un graphique affiché à l'écran grâce à la fonction ggsave (valable pour un graphique créé avec QPLOT ou avec GGPLOT).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#sauver le graphique affiché à l'écran&lt;br /&gt;
hist&amp;lt;-ggplot(data=iris,aes(x=Sepal.Length)) &lt;br /&gt;
hist &amp;lt;- hist + geom_histogram(fill=&amp;quot;orange&amp;quot;,binwidth=0.3)&lt;br /&gt;
hist&lt;br /&gt;
&lt;br /&gt;
ggsave(&amp;quot;plot.pdf&amp;quot;, width=4, height=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5936</id>
		<title>Package R ggplot2</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5936"/>
				<updated>2014-07-16T14:23:54Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ggplot2 est un package de R qui permet de réaliser des graphiques plus perfectionnés, et au design plus moderne. Pour cela, il existe deux fonctions : &lt;br /&gt;
* QPLOT (pour &amp;quot;Quick Plot&amp;quot;) qui est la fonction &amp;quot;de base&amp;quot; du package (mais qui offre de grandes possibilités). Syntaxe générale : qplot(x,y,data=database)&lt;br /&gt;
* GGPLOT va permettre de créer des graphiques extrêmement perfectionnés. Sa syntaxe diffère de la syntaxe habituelle : ggplot(data=data,aes=(x,y)) +layers. La fonction ggplot (argument data et aes pour &amp;quot;aesthetic mapping&amp;quot;) va permettre de créer le graphique en lui même, et les layers vont permettre d'ajouter des paramètres modifiant la représentation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##### On installe le package&lt;br /&gt;
install.packages(&amp;quot;ggplot2&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois installé, il suffit de charger le package, avant de vouloir l'utiliser.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge le package&lt;br /&gt;
library(ggplot2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Jeu de données : ==&lt;br /&gt;
Pour illustrer, on utilise le jeu de données « iris » de R, qui contient 150 observations de 5 variables : 4 variables de type quantitatif, et une de type qualitatif (Species).&lt;br /&gt;
* Sepal.Length : longueur de la sépale&lt;br /&gt;
* Sepal.Width : largeur de la sépale Petal.Length : longueur du pétale&lt;br /&gt;
* Petal.Width : largeur du pétale&lt;br /&gt;
* Species : espèce.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge les données&lt;br /&gt;
data(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La fonction head(dataset) permet d’avoir un aperçu des premières lignes du jeu de données : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
head(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Headiris.png]]&lt;br /&gt;
&lt;br /&gt;
Attention ! pour utiliser ggplot2, les données doivent être sous la forme « data.frame », ce qui peut être vérifié par : class(dataset), et corrigé si besoin avec as.data.frame(dataset)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class(iris)&lt;br /&gt;
as.data.frame(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== QPLOT ==&lt;br /&gt;
&lt;br /&gt;
La syntaxe ressemble effectivement à celle de la fonction plot() (package &amp;quot;de base&amp;quot; de R).&lt;br /&gt;
&lt;br /&gt;
''qplot(x, y = NULL, ..., data, facets = NULL, margins = FALSE, geom = &amp;quot;auto&amp;quot;, stat = list(NULL), position = list(NULL), xlim = c(NA,NA), ylim = c(NA, NA), log = &amp;quot;&amp;quot;, main = NULL, xlab = deparse(substitute(x)), ylab = deparse(substitute(y)), asp = NA)''&lt;br /&gt;
&lt;br /&gt;
=== Objet géométrique ===&lt;br /&gt;
&lt;br /&gt;
L’argument geom() (pour objet géométrique) va permettre de réaliser différents graphiques à une ou deux dimensions. &lt;br /&gt;
Par défaut : &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type de la variable&lt;br /&gt;
! Objet par défaut&lt;br /&gt;
|-&lt;br /&gt;
| Quantitative&lt;br /&gt;
| geom =&amp;quot;histogram&amp;quot;  &lt;br /&gt;
|-&lt;br /&gt;
| Qualitative&lt;br /&gt;
| geom=&amp;quot;bar&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Deux variables quantitatives&lt;br /&gt;
| geom=&amp;quot;point&amp;quot; (scatterplot)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
De nombreux graphiques sont possibles (voir geom dans la documentation du package ggplot2, ou  en page 56). Parmi les plus utilisés : &lt;br /&gt;
&lt;br /&gt;
'''Pour une variable à analyser :''' &lt;br /&gt;
* histogram : histogramme (variable quantitative continue)&lt;br /&gt;
* density : trace la courbe de densité (variable quantitative continue)&lt;br /&gt;
* freqpoly : polynôme de fréquence (variable quantitative continue)&lt;br /&gt;
* bar : diagramme en bâton (variable discrète)&lt;br /&gt;
&lt;br /&gt;
'''Pour deux variables :''' &lt;br /&gt;
* point : scatterplot (deux variables continues)&lt;br /&gt;
* smooth : trace une courbe de tendance et son écart-type (deux variables continues)&lt;br /&gt;
* boxplot : boxplot (une variable quantitative continue, une variable discrète)&lt;br /&gt;
&lt;br /&gt;
'''Séries temporelles'''&lt;br /&gt;
* line : trace des lignes entre les points (de la gauche vers la droite)&lt;br /&gt;
* path : trace des lignes entre les points (dans n’importe quelle direction)&lt;br /&gt;
&lt;br /&gt;
A noter également que les objets géométriques peuvent être combinés (à partir du moment où cela est raisonnable sur le plan statistique).&lt;br /&gt;
&lt;br /&gt;
=== Une dimension ===&lt;br /&gt;
&lt;br /&gt;
==== Variable quantitative, continue. ====&lt;br /&gt;
&lt;br /&gt;
===== Histogramme =====&lt;br /&gt;
C'est le graphique tracé par défaut lorsque la variable indiquée est de type quantitatif (continu).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_base_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
On peut l'améliorer : changer la couleur de remplissage (argument '''fill''') et/ou la couleur de la bordure (argument '''colour''') :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;)) ## couleur de remplissage en orange&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;),colour=I(&amp;quot;black&amp;quot;))  ## et bordure en noir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_orange_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_orange_black_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
De plus, QQPLOT permet d’adapter la largeur des classes utilisées pour tracer l’histogramme, et donc d’avoir un degré de précision plus ou moins élevé, grâce à l’argument binwidth.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;),binwidth=1)  ## larges classes&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,binwidth=0.05)  ## classes ressérées&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_large_qplot.png]]&lt;br /&gt;
[[Fichier:histo_serre_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Courbe de densité =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;density&amp;quot;,colour=I(&amp;quot;red&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbe_densité_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Il peut être intéressant de la combiner avec l'histogramme.&lt;br /&gt;
&lt;br /&gt;
===== Polynôme de fréquence =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;freqpoly&amp;quot;,colour=I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:polyfreq_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Variable discrète =====&lt;br /&gt;
&lt;br /&gt;
Le graphique produit par défaut est un diagramme en bâton (à ne pas confondre avec un histogramme !!! voir [[Statistiques descriptives avec R]]) &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Species,data=iris,geom=&amp;quot;bar&amp;quot;,fill=I(&amp;quot;yellow&amp;quot;)) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barplot_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deux dimensions === &lt;br /&gt;
&lt;br /&gt;
==== Deux variables continues ====&lt;br /&gt;
&lt;br /&gt;
===== Scatterplot =====&lt;br /&gt;
&lt;br /&gt;
Le graphique produit par défaut par la fonction est un nuage de points classique.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Deux variables continues&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;point&amp;quot;) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_base_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Les arguments de la fonction peuvent être modifiés, par exemple pour produire un graphique avec des points bleu (et non noirs).... &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## changer la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour = I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_bleu_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
... ou  pour produire un graphique avec des « + » à la place des points.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## changer le symbole&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,shape=I(3))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_plus_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de modifier la taille des points sur le graphique, à l’aide de l’argument size par exemple pour affiner les points ou les grossir(par défaut, size=I(2)).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## taille&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,size=I(3))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_taille_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Enfin, l’argument alpha est utile en cas de nombre conséquent d’observations qui vont se superposer sur le graphique (ce qui n’est pas le cas ici). En ajustant la transparence, il permet d’améliorer la lisibilité du graphique. Par défaut alpha=I(1), et l’utilisateur peut fixer alpha=I(1/x), avec x le nombre nécessaire d’observations qui se superposent pour obtenir une couleur opaque.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## transparence&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,alpha=I(1/10))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_transparence_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Courbe de tendance =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;smooth&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbe_tendance_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
à noter que la méthode pour tracer la courbe de tendance peut être changée par l’utilisateur grâce à l’argument «method= (par défaut, method=« loess » pour un nombre d’observations faible). Par exemple, method=« lm » permet de tracer une droite de regression linéaire.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;smooth&amp;quot;,method=&amp;quot;lm&amp;quot;) # lm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbelm_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Il peut être utile de combiner l'objet géométrique courbe de tendance avec un nuage de points : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),method=&amp;quot;lm&amp;quot;) #combiné&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_lm_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Le tracé peut être plus ou moins sinueux grâce à l’argument span, allant de 0 à 1.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##sinuosité&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),span=0.2)&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),span=1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_lm_span1_qplot.png]]&lt;br /&gt;
[[Fichier:scatt_lm_span2_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Une variable continue, une discrète ====&lt;br /&gt;
Il n'est pas rare de vouloir représenter la distribution une variable continue, selon différentes sous-populations définies par une variable discrète. Pour cela on peut utiliser un boxplot. (voir [[Statistiques descriptives avec R]]). QPLOT va également permettre des représentations plus perfectionnées des graphiques présentés précédemment, en tenant compte de ces différentes sous-populations.&lt;br /&gt;
&lt;br /&gt;
===== Boxplot =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Une continue, une discrete&lt;br /&gt;
qplot(Species,Sepal.Length, data=iris, geom=&amp;quot;boxplot&amp;quot;,fill=I(&amp;quot;purple&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boxplot_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Sous-populations : sur un même graphique ===== &lt;br /&gt;
&lt;br /&gt;
On peut présenter les observations issues de différentes sous-populations définies par les niveaux de la variable facteur group, soit d’une couleur différente (contour ou remplissage), soit d’un symbole différent.&lt;br /&gt;
Rappel : &lt;br /&gt;
* argument colour = bordure&lt;br /&gt;
* argument fill = remplissage&lt;br /&gt;
* argument shape = symbole&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Par exemple l’argument colour=group permet de présenter d'une couleur différente sur le nuage de points, les observations issues de différentes sous-populations, définies par les niveaux de la variable facteur group.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## ajoute de la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour=Species)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
On peut faire de même sur un graphique de type scatterplot grâce à l’argument shape=group, avec cette fois des symboles différents, selon le niveau de la variable group.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,geom=&amp;quot;point&amp;quot;,shape=Species) #symboles&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_Species_symbole_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
C’est aussi réalisable sur des courbes de densité (argument colour).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# densité&lt;br /&gt;
qplot(Sepal.Length, data=iris,geom=&amp;quot;density&amp;quot;,colour=Species)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:densité_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Pour un histogramme, l’agument à utiliser est fill=group pour modifier le remplissage.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=Species) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Attention à ne pas confondre fill=I(&amp;quot;red&amp;quot;) (utilisé pour paramétrer le remplissage en rouge, valable aussi pour l'argument colour..) et fill=group (utilisé pour changer la couleur selon les sous-populations définies pas la variable group). Déclarer fill=&amp;quot;red&amp;quot; et non fill=I(&amp;quot;red&amp;quot;) aurait pour conséquence de créer une nouvelle variable &amp;quot;red&amp;quot;, et de représenter les observations de couleurs différentes selon les modalités prises par cette variable (soit une seule). R ne produira pas de message d'erreur, mais le graphique sera obtenu de manière erronée.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=&amp;quot;red&amp;quot;) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_faux_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Le graphique correct serait : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;red&amp;quot;)) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_faux_correct_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Sous-populations : différents graphiques ===== &lt;br /&gt;
&lt;br /&gt;
QPLOT offre aussi la possibilité de créer plusieurs graphiques juxtaposés, correspondant à un même graphique pour chacune des différentes sous-populations définies par une variable group. On utilise l’argument facets=. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
facets= . ~ group va présenter les graphiques cote à cote (horizontalement), tandis que facets= group ~ . les superposera (verticalement). &lt;br /&gt;
&lt;br /&gt;
Par exemple ici, l’histogramme pour la variable Sepal.Length, pour chaque espèce. On constate qu’il est préférable de les présenter verticalement, sinon les histogrammes sont écrasés et peu lisibles.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,facets = Species ~ .,geom=&amp;quot;histogram&amp;quot;,binwidth=0.1,fill=I(&amp;quot;orange&amp;quot;)) #ordre vertical&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:facet_vertical_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,facets = . ~ Species,geom=&amp;quot;histogram&amp;quot;,binwidth=0.1,fill=I(&amp;quot;orange&amp;quot;)) #ordre horizontal&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:facet_horizontal_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Données en séries temporelles ====&lt;br /&gt;
&lt;br /&gt;
Line et path sont utilisés dans le cas de séries temporelles. On rappelle que la différence entre les deux provient du fait que path relie les points dans n’importe quelle direction (pourvu qu’il apparaissent en suivant dans la base de données), tandis que line relie les points de gauche à droite.&lt;br /&gt;
&lt;br /&gt;
Ainsi, on utilisera line, par exemple pour tracer l’évolution d’un phénomène en fonction de la date, tandis que l’on utilisera path pour relier les différents points selon l’ordre chronologique, dans un graphique à deux dimensions (dont aucune n’est temporelle).&lt;br /&gt;
&lt;br /&gt;
Pour illustrer, étant donné que les données &amp;quot;iris&amp;quot; sont en coupe transversale, on utilise le jeu de données « longley » qui contient des données macro-économiques annuelles (16 observations, entre 1947 et 1962).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
data(longley) #on charge le jeu de données&lt;br /&gt;
head(longley)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Fichier:head_longley.png]]&lt;br /&gt;
&lt;br /&gt;
==== Geom line ====&lt;br /&gt;
Par exemple, on peut utiliser l’argument line pour tracer l’évolution temporelle du taux de chômage.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#evolution temporelle du nombre de personnes au chômage.&lt;br /&gt;
qplot(Year,Unemployed/Population, data=longley, geom=&amp;quot;line&amp;quot;,colour=I(&amp;quot;red&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:line_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Geom path ====&lt;br /&gt;
On trace ensuite par exemple le nombre de personnes au chômage en fonction du taux de chômage. L’argument path va permettre de relier les points pour visualiser la variation d’année en année. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Nombre de personnes au chômage en fonction du taux de chômage&lt;br /&gt;
qplot(Unemployed/Population,Unemployed, data=longley, geom=&amp;quot;path&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:path_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Ici, même sans ajouter la couleur le graphique est clair (il y a peu d’observations, et les tracés ne se superposent pas). Mais dans d'autres cas, l'ajout de ce dégradé de couleur selon l'année permet de rendre le graphique beaucoup plus lisible. (Trois dimensions).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Ajoute la couleur pour l'année&lt;br /&gt;
qplot(Unemployed/Population,Unemployed, data=longley, geom=&amp;quot;path&amp;quot;,colour=Year)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:path_color_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GGPLOT ==&lt;br /&gt;
&lt;br /&gt;
ggplot est la seconde fonction du package ggplot2, et va permettre de produire des graphiques plus complexes et élaborés. &lt;br /&gt;
De plus, alors que la fonction qplot était relativement similaire dans sa syntaxe des fonctions traditionnelles permettant de tracer des graphiques sous R, la syntaxe utilisée par ggplot est totalement différente.&lt;br /&gt;
&lt;br /&gt;
En effet, la fonction en elle-même n’a que deux arguments : &lt;br /&gt;
* data : les données (sous la forme data.frame)&lt;br /&gt;
* une fonction aes (pour &amp;quot;aesthetic mapping&amp;quot;), qui va contenir les variables et les paramètres utilisés pour l’esthétique du graphique.&lt;br /&gt;
&lt;br /&gt;
ggplot fonctionne par l’ajout de calques (« layers »).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ainsi, la commande suivante ne permet pas de tracer un graph, et nécessite pour cela d’ajouter au minimum un calque minimal.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ggplot(data=iris,aes(Sepal.Length,Sepal.Width)) #no layers in plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Par exemple, si l’on souhaite tracer un nuage ce points, on ajoute le layer geom=« point » sous la forme suivante : ''ggplot(data=data,aes(x,y,….)) + layer(geom=« point »,……)''. C'est pourquoi, il est intéressant de &amp;quot;stocker&amp;quot; le graphique dans un objet R, et de le modifier par l'ajout successif de layers, comme ci-dessous.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Ajoute un layer minimal&lt;br /&gt;
plot&amp;lt;-ggplot(data=iris,aes(Sepal.Length,Sepal.Width))&lt;br /&gt;
plot+layer(geom=&amp;quot;point&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Layer ===&lt;br /&gt;
Layer peut prendre différents arguments (le principal étant geom), par exemple : &lt;br /&gt;
* '''geom''' permet de spécifier le type de graphique souhaité (de manière similaire à l’usage dans la fonction qplot)&lt;br /&gt;
* '''geom_params''' va contenir tous les paramètres associés, permettant de personnaliser le graphique.&lt;br /&gt;
* '''stat''' consiste en une transformation statistique des données. De nouvelles variables vont être créées, qui résument les variables d’une certaine manière. Lorsque geom est utilisé, cette transformation va être automatiquement réalisée (selon le type de graphique souhaité). Elle peut éventuellement être l’identité.&lt;br /&gt;
Par exemple, la transformation associée par défaut à l’histogramme est « bin », et va créer trois nouvelles variables : count (le nombre d’observation dans chaque classe), density (le pourcentage divisé par la largeur de la classe), et x (le centre de la classe). &lt;br /&gt;
* '''stat_params''' contient les paramètres associés à cette transformation. Par exemple lorsque que l’on souhaite spécifier la largeur des classes utilisées pour l’histogramme, il va s’agir d’un paramètre stat, et non geom.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ainsi, la commande ci-dessous va permettre de tracer un histogramme pour la longueur de la sépale, de couleur orange, avec une longueur de classe de 0.3.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Histogramme&lt;br /&gt;
ggplot(data=iris,aes(x=Sepal.Length)) + layer(geom=&amp;quot;histogram&amp;quot;,&lt;br /&gt;
                                              geom_params=list(fill=&amp;quot;orange&amp;quot;),&lt;br /&gt;
                                              stat=&amp;quot;bin&amp;quot;,&lt;br /&gt;
                                              stat_params=list(binwidth=2))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cependant, cette syntaxe est relativement lourde, et peut être considérablement allégée.&lt;br /&gt;
&lt;br /&gt;
Tout d’abord, l’argument layer(geom=&amp;quot;histogram&amp;quot;,geom_params=list(fill=&amp;quot;orange&amp;quot;) peut être remplacé par l’argument geom_histogram(fill=« orange »). De plus, en tenant compte du fait que chaque type de graphique (geom) est lié à une transformation statistique (stats), on peut finalement simplifier l’argument layer en : geom_histogram(fill=&amp;quot;orange&amp;quot;,binwidth=0.3)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Ainsi, la commande suivante produit le même graphique.&lt;br /&gt;
#simplification&lt;br /&gt;
hist&amp;lt;-ggplot(data=iris,aes(x=Sepal.Length)) &lt;br /&gt;
hist &amp;lt;- hist + geom_histogram(fill=&amp;quot;orange&amp;quot;,binwidth=0.3)&lt;br /&gt;
hist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
NB : il est parfois nécessaire de demander à imprimer le graphique à l’écran.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On va raisonner de cette façon pour la suite. Ainsi les principaux layers pouvant être ajoutés vont être les suivants : &lt;br /&gt;
* geom_XXX() (par example : geom_point(), geom_histogram(), geom_vline(), etc.) : correspondant au type de graphique à créer&lt;br /&gt;
* stat_XXX() (par exemple : stat_bin(), stat_smooth(), etc.)  : correspondant à la transformation statistique à utiliser &lt;br /&gt;
* scale_XXX() (par exemple : scale_x_continuous(), : contrôlant l’échelle utilisée pour les axes.  &lt;br /&gt;
* coord_XXX() : permettant de contrôler le système de coordonnées utilisé.&lt;br /&gt;
* facet_XXX() : permettant de faire des graphiques pour des sous-groupes&lt;br /&gt;
* position_XXX() :&lt;br /&gt;
&lt;br /&gt;
==== coord ====&lt;br /&gt;
coord() (système de coordonnées à utiliser) et scale()  (échelles des axes) déterminent la position de l’argument géométrique geom.&lt;br /&gt;
&lt;br /&gt;
Par défaut : coord_cartesian (coordonnées cartésiennes « classiques », x est représenté sur l’axe des abscisses (de gauche à droite), et y sur celui des ordonnées (de bas en haut)&lt;br /&gt;
* coord_flip : inverse l’axe des x et des y&lt;br /&gt;
* coord_equal : même échelle pour l’axe des x et celui des y (cartésiens)&lt;br /&gt;
* coord_polar : coordonnées polaires :&lt;br /&gt;
* préciser la variable qui représente theta (l’angle)&lt;br /&gt;
* coord_trans : permet de transformer « manuellement » les axes (nécessite de préciser la transformation voulue)&lt;br /&gt;
* coord_map :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple, on inverse l'axe des x et celui des y :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## coord flip : boxplot&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(y=Sepal.Length, x=Species))&lt;br /&gt;
plot&amp;lt;- plot + geom_boxplot(fill=&amp;quot;#FF9999&amp;quot;)&lt;br /&gt;
plot&amp;lt;- plot + coord_flip()&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## coord flip : scatter + lm&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(x=Sepal.Length, y=Species))&lt;br /&gt;
plot&amp;lt;- plot + geom_point(colour=&amp;quot;red&amp;quot;) +geom_smooth(method=&amp;quot;lm&amp;quot;)&lt;br /&gt;
plot&amp;lt;- plot + coord_flip()&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On utilise des coordonnées polaires, et non plus cartésiennes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## coord_polar&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length, Sepal.Width))&lt;br /&gt;
plot&amp;lt;- plot + geom_point(colour=&amp;quot;red&amp;quot;)+geom_smooth(method=&amp;quot;lm&amp;quot;) &lt;br /&gt;
plot&amp;lt;- plot + coord_polar()&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On utilise une échelle logarithmique pour l'axe des ordonnées.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## coord_trans&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length, Sepal.Width))&lt;br /&gt;
plot&amp;lt;- plot + geom_point(colour=&amp;quot;red&amp;quot;)+geom_smooth(method=&amp;quot;lm&amp;quot;) &lt;br /&gt;
plot&amp;lt;- plot + coord_trans(ytrans=&amp;quot;log10&amp;quot;)&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== scale ====&lt;br /&gt;
L'argument scale permet de contrôler les axes du graphique, par exemple : la transformation, les limites des axes, le pas utilisé, les labels, etc.&lt;br /&gt;
&lt;br /&gt;
===== Changer les labels (axe discret) =====&lt;br /&gt;
On peut changer les labels de l'axe des x (discret). On ajoute également un titre à cet axe, ainsi qu'à l'axe des y.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# changer labels&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(y=Sepal.Length, x=Species))&lt;br /&gt;
plot&amp;lt;- plot + geom_boxplot(fill=&amp;quot;#FF9999&amp;quot;)&lt;br /&gt;
plot&amp;lt;- plot + scale_x_discrete(breaks=c(&amp;quot;setosa&amp;quot;, &amp;quot;versicolor&amp;quot;, &amp;quot;virginica&amp;quot;),labels = c(&amp;quot;Espèce A&amp;quot;,&amp;quot;Espèce B&amp;quot;,&amp;quot;Espèce C&amp;quot;),name=&amp;quot;Code espèce de l'iris&amp;quot;) &lt;br /&gt;
          + scale_y_continuous(name=&amp;quot;Longueur de la Sépale&amp;quot;)&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Changer le pas =====&lt;br /&gt;
Ici, on change le pas de l'axe des y pour un pas tous les 0.25.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# changer le pas&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length, Sepal.Width))&lt;br /&gt;
plot&amp;lt;- plot + geom_point(colour=&amp;quot;red&amp;quot;)&lt;br /&gt;
plot&amp;lt;-plot + scale_y_continuous(breaks=seq(0, 10, 0.25))&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Changer les bornes =====&lt;br /&gt;
On change les limites de l'axe des y (limite entre 3 et 4).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# changer les limites&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length, Sepal.Width))&lt;br /&gt;
plot&amp;lt;- plot + geom_point(colour=&amp;quot;red&amp;quot;)&lt;br /&gt;
plot&amp;lt;-plot + scale_y_continuous(limits=c(3,4))&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention, pour des graphiques de type scatterplot, cela va simplement exclure du graphique les observations en dehors de l'intervalle. Cependant, pour un graphique de type boxplot, si l'objectif est de &amp;quot;zoomer&amp;quot;, le résultat sera alors un boxplot erroné (car portant uniquement sur les observations DE l'intervalle).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# changer les limites : boxplot&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(y=Sepal.Length, x=Species))&lt;br /&gt;
plot&amp;lt;- plot + geom_boxplot(fill=&amp;quot;#FF9999&amp;quot;)&lt;br /&gt;
plot&amp;lt;-plot + scale_y_continuous(limits=c(4.5,6.5))&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il convient alors d'utiliser coord_cartesian() pour définir les limites de l'axe en &amp;quot;zoomant&amp;quot;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#zoom : boxplot&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(y=Sepal.Length, x=Species))&lt;br /&gt;
plot&amp;lt;- plot + geom_boxplot(fill=&amp;quot;#FF9999&amp;quot;)&lt;br /&gt;
plot&amp;lt;-plot + coord_cartesian(ylim=c(4.5,6.5))&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== position ====&lt;br /&gt;
position : pour ajuster la positions du geom. ???&lt;br /&gt;
Comme pour stat, une modalité est associée par défaut à chaque geom. Il n’est donc pas nécessaire de le spécifier, sauf si l’on souhaite utiliser un argument différent de la valeur par défaut. Si tel est le cas, on peut aussi le spécifier au sein de l’argument geom : geom_XXX(….,position=position_YYY(width=, height=).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il y a deux arguments pour tous les ajustements de position possibles : width et height&lt;br /&gt;
Les ajustement de position disponibles sont : &lt;br /&gt;
* position_identity - default of most geoms&lt;br /&gt;
* position_jitter - default of geom_jitter&lt;br /&gt;
* position_dodge - default of geom_boxplot&lt;br /&gt;
* position_stack - default of geom_bar==geom_histogram and geom_area&lt;br /&gt;
* position_fill - useful for geom_bar==geom_histogram and geom_area&lt;br /&gt;
&lt;br /&gt;
=== Données par groupes ===&lt;br /&gt;
Pour afficher les observations issues de groupes différents (ici d'espèces différentes) de couleurs différentes, et de formes différentes, on utilise : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## scatterplot : couleurs et symboles différents pour chaque groupe&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length, Sepal.Width)) &lt;br /&gt;
plot&amp;lt;- plot + geom_point(aes(color = Species,shape = Species))&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour  changer manuellement les couleurs : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
plot&amp;lt;- plot + scale_colour_manual(values = c(&amp;quot;red&amp;quot;, &amp;quot;orange&amp;quot;, &amp;quot;purple&amp;quot;))&lt;br /&gt;
plot&amp;lt;-plot + scale_shape_manual(values = c(16, 17, 18))&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Changer le jeu de données ===&lt;br /&gt;
Une fois le graphique créé, il est possible de l'appliquer à un jeu de données différent (à condition que les variables correspondent). Par exemple ici, on créee trois bases de données, contenant les mêmes variables. Pour cela, on divise la base initiale selon l’espèce.&lt;br /&gt;
On crée un graphique de type scatter plot, affichant une droite de regression linéaire pour le sous-jeu de données setosa. L’utilisation de '''« %+% »''' va permettre de produire le même graphique, pour le sous-jeu de données versicolor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Data&lt;br /&gt;
iris_setosa &amp;lt;- subset(iris, Species == &amp;quot;setosa&amp;quot;)&lt;br /&gt;
iris_versi &amp;lt;- subset(iris, Species == &amp;quot;versicolor&amp;quot;)&lt;br /&gt;
iris_virgin &amp;lt;- subset(iris, Species == &amp;quot;virginica&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
plot&amp;lt;-ggplot(iris_setosa,aes(Sepal.Length,Sepal.Width))+geom_point(colour=&amp;quot;red&amp;quot;)&lt;br /&gt;
plot&lt;br /&gt;
&lt;br /&gt;
plot %+% iris_versi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ajouter un titre&lt;br /&gt;
Modifier le thème&lt;br /&gt;
&lt;br /&gt;
== Enregistrer le graphique ==&lt;br /&gt;
Il est possible de sauvegarder un graphique affiché à l'écran grâce à la fonction ggsave (valable pour un graphique créé avec QPLOT ou avec GGPLOT).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#sauver le graphique affiché à l'écran&lt;br /&gt;
hist&amp;lt;-ggplot(data=iris,aes(x=Sepal.Length)) &lt;br /&gt;
hist &amp;lt;- hist + geom_histogram(fill=&amp;quot;orange&amp;quot;,binwidth=0.3)&lt;br /&gt;
hist&lt;br /&gt;
&lt;br /&gt;
ggsave(&amp;quot;plot.pdf&amp;quot;, width=4, height=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5935</id>
		<title>Package R ggplot2</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5935"/>
				<updated>2014-07-16T14:09:28Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ggplot2 est un package de R qui permet de réaliser des graphiques plus perfectionnés, et au design plus moderne. Pour cela, il existe deux fonctions : &lt;br /&gt;
* QPLOT (pour &amp;quot;Quick Plot&amp;quot;) qui est la fonction &amp;quot;de base&amp;quot; du package (mais qui offre de grandes possibilités). Syntaxe générale : qplot(x,y,data=database)&lt;br /&gt;
* GGPLOT va permettre de créer des graphiques extrêmement perfectionnés. Sa syntaxe diffère de la syntaxe habituelle : ggplot(data=data,aes=(x,y)) +layers. La fonction ggplot (argument data et aes pour &amp;quot;aesthetic mapping&amp;quot;) va permettre de créer le graphique en lui même, et les layers vont permettre d'ajouter des paramètres modifiant la représentation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##### On installe le package&lt;br /&gt;
install.packages(&amp;quot;ggplot2&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois installé, il suffit de charger le package, avant de vouloir l'utiliser.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge le package&lt;br /&gt;
library(ggplot2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Jeu de données : ==&lt;br /&gt;
Pour illustrer, on utilise le jeu de données « iris » de R, qui contient 150 observations de 5 variables : 4 variables de type quantitatif, et une de type qualitatif (Species).&lt;br /&gt;
* Sepal.Length : longueur de la sépale&lt;br /&gt;
* Sepal.Width : largeur de la sépale Petal.Length : longueur du pétale&lt;br /&gt;
* Petal.Width : largeur du pétale&lt;br /&gt;
* Species : espèce.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge les données&lt;br /&gt;
data(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La fonction head(dataset) permet d’avoir un aperçu des premières lignes du jeu de données : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
head(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Headiris.png]]&lt;br /&gt;
&lt;br /&gt;
Attention ! pour utiliser ggplot2, les données doivent être sous la forme « data.frame », ce qui peut être vérifié par : class(dataset), et corrigé si besoin avec as.data.frame(dataset)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class(iris)&lt;br /&gt;
as.data.frame(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== QPLOT ==&lt;br /&gt;
&lt;br /&gt;
La syntaxe ressemble effectivement à celle de la fonction plot() (package &amp;quot;de base&amp;quot; de R).&lt;br /&gt;
&lt;br /&gt;
''qplot(x, y = NULL, ..., data, facets = NULL, margins = FALSE, geom = &amp;quot;auto&amp;quot;, stat = list(NULL), position = list(NULL), xlim = c(NA,NA), ylim = c(NA, NA), log = &amp;quot;&amp;quot;, main = NULL, xlab = deparse(substitute(x)), ylab = deparse(substitute(y)), asp = NA)''&lt;br /&gt;
&lt;br /&gt;
=== Objet géométrique ===&lt;br /&gt;
&lt;br /&gt;
L’argument geom() (pour objet géométrique) va permettre de réaliser différents graphiques à une ou deux dimensions. &lt;br /&gt;
Par défaut : &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type de la variable&lt;br /&gt;
! Objet par défaut&lt;br /&gt;
|-&lt;br /&gt;
| Quantitative&lt;br /&gt;
| geom =&amp;quot;histogram&amp;quot;  &lt;br /&gt;
|-&lt;br /&gt;
| Qualitative&lt;br /&gt;
| geom=&amp;quot;bar&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Deux variables quantitatives&lt;br /&gt;
| geom=&amp;quot;point&amp;quot; (scatterplot)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
De nombreux graphiques sont possibles (voir geom dans la documentation du package ggplot2, ou  en page 56). Parmi les plus utilisés : &lt;br /&gt;
&lt;br /&gt;
'''Pour une variable à analyser :''' &lt;br /&gt;
* histogram : histogramme (variable quantitative continue)&lt;br /&gt;
* density : trace la courbe de densité (variable quantitative continue)&lt;br /&gt;
* freqpoly : polynôme de fréquence (variable quantitative continue)&lt;br /&gt;
* bar : diagramme en bâton (variable discrète)&lt;br /&gt;
&lt;br /&gt;
'''Pour deux variables :''' &lt;br /&gt;
* point : scatterplot (deux variables continues)&lt;br /&gt;
* smooth : trace une courbe de tendance et son écart-type (deux variables continues)&lt;br /&gt;
* boxplot : boxplot (une variable quantitative continue, une variable discrète)&lt;br /&gt;
&lt;br /&gt;
'''Séries temporelles'''&lt;br /&gt;
* line : trace des lignes entre les points (de la gauche vers la droite)&lt;br /&gt;
* path : trace des lignes entre les points (dans n’importe quelle direction)&lt;br /&gt;
&lt;br /&gt;
A noter également que les objets géométriques peuvent être combinés (à partir du moment où cela est raisonnable sur le plan statistique).&lt;br /&gt;
&lt;br /&gt;
=== Une dimension ===&lt;br /&gt;
&lt;br /&gt;
==== Variable quantitative, continue. ====&lt;br /&gt;
&lt;br /&gt;
===== Histogramme =====&lt;br /&gt;
C'est le graphique tracé par défaut lorsque la variable indiquée est de type quantitatif (continu).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_base_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
On peut l'améliorer : changer la couleur de remplissage (argument '''fill''') et/ou la couleur de la bordure (argument '''colour''') :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;)) ## couleur de remplissage en orange&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;),colour=I(&amp;quot;black&amp;quot;))  ## et bordure en noir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_orange_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_orange_black_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
De plus, QQPLOT permet d’adapter la largeur des classes utilisées pour tracer l’histogramme, et donc d’avoir un degré de précision plus ou moins élevé, grâce à l’argument binwidth.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;),binwidth=1)  ## larges classes&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,binwidth=0.05)  ## classes ressérées&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_large_qplot.png]]&lt;br /&gt;
[[Fichier:histo_serre_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Courbe de densité =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;density&amp;quot;,colour=I(&amp;quot;red&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbe_densité_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Il peut être intéressant de la combiner avec l'histogramme.&lt;br /&gt;
&lt;br /&gt;
===== Polynôme de fréquence =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;freqpoly&amp;quot;,colour=I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:polyfreq_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Variable discrète =====&lt;br /&gt;
&lt;br /&gt;
Le graphique produit par défaut est un diagramme en bâton (à ne pas confondre avec un histogramme !!! voir [[Statistiques descriptives avec R]]) &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Species,data=iris,geom=&amp;quot;bar&amp;quot;,fill=I(&amp;quot;yellow&amp;quot;)) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barplot_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deux dimensions === &lt;br /&gt;
&lt;br /&gt;
==== Deux variables continues ====&lt;br /&gt;
&lt;br /&gt;
===== Scatterplot =====&lt;br /&gt;
&lt;br /&gt;
Le graphique produit par défaut par la fonction est un nuage de points classique.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Deux variables continues&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;point&amp;quot;) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_base_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Les arguments de la fonction peuvent être modifiés, par exemple pour produire un graphique avec des points bleu (et non noirs).... &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## changer la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour = I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_bleu_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
... ou  pour produire un graphique avec des « + » à la place des points.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## changer le symbole&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,shape=I(3))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_plus_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de modifier la taille des points sur le graphique, à l’aide de l’argument size par exemple pour affiner les points ou les grossir(par défaut, size=I(2)).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## taille&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,size=I(3))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_taille_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Enfin, l’argument alpha est utile en cas de nombre conséquent d’observations qui vont se superposer sur le graphique (ce qui n’est pas le cas ici). En ajustant la transparence, il permet d’améliorer la lisibilité du graphique. Par défaut alpha=I(1), et l’utilisateur peut fixer alpha=I(1/x), avec x le nombre nécessaire d’observations qui se superposent pour obtenir une couleur opaque.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## transparence&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,alpha=I(1/10))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_transparence_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Courbe de tendance =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;smooth&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbe_tendance_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
à noter que la méthode pour tracer la courbe de tendance peut être changée par l’utilisateur grâce à l’argument «method= (par défaut, method=« loess » pour un nombre d’observations faible). Par exemple, method=« lm » permet de tracer une droite de regression linéaire.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;smooth&amp;quot;,method=&amp;quot;lm&amp;quot;) # lm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbelm_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Il peut être utile de combiner l'objet géométrique courbe de tendance avec un nuage de points : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),method=&amp;quot;lm&amp;quot;) #combiné&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_lm_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Le tracé peut être plus ou moins sinueux grâce à l’argument span, allant de 0 à 1.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##sinuosité&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),span=0.2)&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),span=1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_lm_span1_qplot.png]]&lt;br /&gt;
[[Fichier:scatt_lm_span2_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Une variable continue, une discrète ====&lt;br /&gt;
Il n'est pas rare de vouloir représenter la distribution une variable continue, selon différentes sous-populations définies par une variable discrète. Pour cela on peut utiliser un boxplot. (voir [[Statistiques descriptives avec R]]). QPLOT va également permettre des représentations plus perfectionnées des graphiques présentés précédemment, en tenant compte de ces différentes sous-populations.&lt;br /&gt;
&lt;br /&gt;
===== Boxplot =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Une continue, une discrete&lt;br /&gt;
qplot(Species,Sepal.Length, data=iris, geom=&amp;quot;boxplot&amp;quot;,fill=I(&amp;quot;purple&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boxplot_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Sous-populations : sur un même graphique ===== &lt;br /&gt;
&lt;br /&gt;
On peut présenter les observations issues de différentes sous-populations définies par les niveaux de la variable facteur group, soit d’une couleur différente (contour ou remplissage), soit d’un symbole différent.&lt;br /&gt;
Rappel : &lt;br /&gt;
* argument colour = bordure&lt;br /&gt;
* argument fill = remplissage&lt;br /&gt;
* argument shape = symbole&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Par exemple l’argument colour=group permet de présenter d'une couleur différente sur le nuage de points, les observations issues de différentes sous-populations, définies par les niveaux de la variable facteur group.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## ajoute de la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour=Species)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
On peut faire de même sur un graphique de type scatterplot grâce à l’argument shape=group, avec cette fois des symboles différents, selon le niveau de la variable group.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,geom=&amp;quot;point&amp;quot;,shape=Species) #symboles&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_Species_symbole_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
C’est aussi réalisable sur des courbes de densité (argument colour).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# densité&lt;br /&gt;
qplot(Sepal.Length, data=iris,geom=&amp;quot;density&amp;quot;,colour=Species)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:densité_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Pour un histogramme, l’agument à utiliser est fill=group pour modifier le remplissage.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=Species) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Attention à ne pas confondre fill=I(&amp;quot;red&amp;quot;) (utilisé pour paramétrer le remplissage en rouge, valable aussi pour l'argument colour..) et fill=group (utilisé pour changer la couleur selon les sous-populations définies pas la variable group). Déclarer fill=&amp;quot;red&amp;quot; et non fill=I(&amp;quot;red&amp;quot;) aurait pour conséquence de créer une nouvelle variable &amp;quot;red&amp;quot;, et de représenter les observations de couleurs différentes selon les modalités prises par cette variable (soit une seule). R ne produira pas de message d'erreur, mais le graphique sera obtenu de manière erronée.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=&amp;quot;red&amp;quot;) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_faux_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Le graphique correct serait : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;red&amp;quot;)) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_faux_correct_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Sous-populations : différents graphiques ===== &lt;br /&gt;
&lt;br /&gt;
QPLOT offre aussi la possibilité de créer plusieurs graphiques juxtaposés, correspondant à un même graphique pour chacune des différentes sous-populations définies par une variable group. On utilise l’argument facets=. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
facets= . ~ group va présenter les graphiques cote à cote (horizontalement), tandis que facets= group ~ . les superposera (verticalement). &lt;br /&gt;
&lt;br /&gt;
Par exemple ici, l’histogramme pour la variable Sepal.Length, pour chaque espèce. On constate qu’il est préférable de les présenter verticalement, sinon les histogrammes sont écrasés et peu lisibles.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,facets = Species ~ .,geom=&amp;quot;histogram&amp;quot;,binwidth=0.1,fill=I(&amp;quot;orange&amp;quot;)) #ordre vertical&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:facet_vertical_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,facets = . ~ Species,geom=&amp;quot;histogram&amp;quot;,binwidth=0.1,fill=I(&amp;quot;orange&amp;quot;)) #ordre horizontal&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:facet_horizontal_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Données en séries temporelles ====&lt;br /&gt;
&lt;br /&gt;
Line et path sont utilisés dans le cas de séries temporelles. On rappelle que la différence entre les deux provient du fait que path relie les points dans n’importe quelle direction (pourvu qu’il apparaissent en suivant dans la base de données), tandis que line relie les points de gauche à droite.&lt;br /&gt;
&lt;br /&gt;
Ainsi, on utilisera line, par exemple pour tracer l’évolution d’un phénomène en fonction de la date, tandis que l’on utilisera path pour relier les différents points selon l’ordre chronologique, dans un graphique à deux dimensions (dont aucune n’est temporelle).&lt;br /&gt;
&lt;br /&gt;
Pour illustrer, étant donné que les données &amp;quot;iris&amp;quot; sont en coupe transversale, on utilise le jeu de données « longley » qui contient des données macro-économiques annuelles (16 observations, entre 1947 et 1962).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
data(longley) #on charge le jeu de données&lt;br /&gt;
head(longley)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Fichier:head_longley.png]]&lt;br /&gt;
&lt;br /&gt;
==== Geom line ====&lt;br /&gt;
Par exemple, on peut utiliser l’argument line pour tracer l’évolution temporelle du taux de chômage.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#evolution temporelle du nombre de personnes au chômage.&lt;br /&gt;
qplot(Year,Unemployed/Population, data=longley, geom=&amp;quot;line&amp;quot;,colour=I(&amp;quot;red&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:line_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Geom path ====&lt;br /&gt;
On trace ensuite par exemple le nombre de personnes au chômage en fonction du taux de chômage. L’argument path va permettre de relier les points pour visualiser la variation d’année en année. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Nombre de personnes au chômage en fonction du taux de chômage&lt;br /&gt;
qplot(Unemployed/Population,Unemployed, data=longley, geom=&amp;quot;path&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:path_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Ici, même sans ajouter la couleur le graphique est clair (il y a peu d’observations, et les tracés ne se superposent pas). Mais dans d'autres cas, l'ajout de ce dégradé de couleur selon l'année permet de rendre le graphique beaucoup plus lisible. (Trois dimensions).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Ajoute la couleur pour l'année&lt;br /&gt;
qplot(Unemployed/Population,Unemployed, data=longley, geom=&amp;quot;path&amp;quot;,colour=Year)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:path_color_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GGPLOT ==&lt;br /&gt;
&lt;br /&gt;
ggplot est la seconde fonction du package ggplot2, et va permettre de produire des graphiques plus complexes et élaborés. &lt;br /&gt;
De plus, alors que la fonction qplot était relativement similaire dans sa syntaxe des fonctions traditionnelles permettant de tracer des graphiques sous R, la syntaxe utilisée par ggplot est totalement différente.&lt;br /&gt;
&lt;br /&gt;
En effet, la fonction en elle-même n’a que deux arguments : &lt;br /&gt;
* data : les données (sous la forme data.frame)&lt;br /&gt;
* une fonction aes (pour &amp;quot;aesthetic mapping&amp;quot;), qui va contenir les variables et les paramètres utilisés pour l’esthétique du graphique.&lt;br /&gt;
&lt;br /&gt;
ggplot fonctionne par l’ajout de calques (« layers »).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ainsi, la commande suivante ne permet pas de tracer un graph, et nécessite pour cela d’ajouter au minimum un calque minimal.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ggplot(data=iris,aes(Sepal.Length,Sepal.Width)) #no layers in plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Par exemple, si l’on souhaite tracer un nuage ce points, on ajoute le layer geom=« point » sous la forme suivante : ''ggplot(data=data,aes(x,y,….)) + layer(geom=« point »,……)''. C'est pourquoi, il est intéressant de &amp;quot;stocker&amp;quot; le graphique dans un objet R, et de le modifier par l'ajout successif de layers, comme ci-dessous.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Ajoute un layer minimal&lt;br /&gt;
plot&amp;lt;-ggplot(data=iris,aes(Sepal.Length,Sepal.Width))&lt;br /&gt;
plot+layer(geom=&amp;quot;point&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Layer ===&lt;br /&gt;
Layer peut prendre différents arguments (le principal étant geom), par exemple : &lt;br /&gt;
* '''geom''' permet de spécifier le type de graphique souhaité (de manière similaire à l’usage dans la fonction qplot)&lt;br /&gt;
* '''geom_params''' va contenir tous les paramètres associés, permettant de personnaliser le graphique.&lt;br /&gt;
* '''stat''' consiste en une transformation statistique des données. De nouvelles variables vont être créées, qui résument les variables d’une certaine manière. Lorsque geom est utilisé, cette transformation va être automatiquement réalisée (selon le type de graphique souhaité). Elle peut éventuellement être l’identité.&lt;br /&gt;
Par exemple, la transformation associée par défaut à l’histogramme est « bin », et va créer trois nouvelles variables : count (le nombre d’observation dans chaque classe), density (le pourcentage divisé par la largeur de la classe), et x (le centre de la classe). &lt;br /&gt;
* '''stat_params''' contient les paramètres associés à cette transformation. Par exemple lorsque que l’on souhaite spécifier la largeur des classes utilisées pour l’histogramme, il va s’agir d’un paramètre stat, et non geom.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ainsi, la commande ci-dessous va permettre de tracer un histogramme pour la longueur de la sépale, de couleur orange, avec une longueur de classe de 0.3.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Histogramme&lt;br /&gt;
ggplot(data=iris,aes(x=Sepal.Length)) + layer(geom=&amp;quot;histogram&amp;quot;,&lt;br /&gt;
                                              geom_params=list(fill=&amp;quot;orange&amp;quot;),&lt;br /&gt;
                                              stat=&amp;quot;bin&amp;quot;,&lt;br /&gt;
                                              stat_params=list(binwidth=2))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cependant, cette syntaxe est relativement lourde, et peut être considérablement allégée.&lt;br /&gt;
&lt;br /&gt;
Tout d’abord, l’argument layer(geom=&amp;quot;histogram&amp;quot;,geom_params=list(fill=&amp;quot;orange&amp;quot;) peut être remplacé par l’argument geom_histogram(fill=« orange »). De plus, en tenant compte du fait que chaque type de graphique (geom) est lié à une transformation statistique (stats), on peut finalement simplifier l’argument layer en : geom_histogram(fill=&amp;quot;orange&amp;quot;,binwidth=0.3)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Ainsi, la commande suivante produit le même graphique.&lt;br /&gt;
#simplification&lt;br /&gt;
hist&amp;lt;-ggplot(data=iris,aes(x=Sepal.Length)) &lt;br /&gt;
hist &amp;lt;- hist + geom_histogram(fill=&amp;quot;orange&amp;quot;,binwidth=0.3)&lt;br /&gt;
hist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
NB : il est parfois nécessaire de demander à imprimer le graphique à l’écran.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On va raisonner de cette façon pour la suite. Ainsi les principaux layers pouvant être ajoutés vont être les suivants : &lt;br /&gt;
* geom_XXX() (par example : geom_point(), geom_histogram(), geom_vline(), etc.) : correspondant au type de graphique à créer&lt;br /&gt;
* stat_XXX() (par exemple : stat_bin(), stat_smooth(), etc.)  : correspondant à la transformation statistique à utiliser &lt;br /&gt;
* scale_XXX() (par exemple : scale_x_continuous(), : contrôlant l’échelle utilisée pour les axes.  &lt;br /&gt;
* coord_XXX() : permettant de contrôler le système de coordonnées utilisé.&lt;br /&gt;
* facet_XXX() : permettant de faire des graphiques pour des sous-groupes&lt;br /&gt;
* position_XXX() :&lt;br /&gt;
&lt;br /&gt;
==== coord ====&lt;br /&gt;
coord() (système de coordonnées à utiliser) et scale()  (échelles des axes) déterminent la position de l’argument géométrique geom.&lt;br /&gt;
&lt;br /&gt;
Par défaut : coord_cartesian (coordonnées cartésiennes « classiques », x est représenté sur l’axe des abscisses (de gauche à droite), et y sur celui des ordonnées (de bas en haut)&lt;br /&gt;
* coord_flip : inverse l’axe des x et des y&lt;br /&gt;
* coord_equal : même échelle pour l’axe des x et celui des y (cartésiens)&lt;br /&gt;
* coord_polar : coordonnées polaires :&lt;br /&gt;
* préciser la variable qui représente theta (l’angle)&lt;br /&gt;
* coord_trans : permet de transformer « manuellement » les axes (nécessite de préciser la transformation voulue)&lt;br /&gt;
* coord_map :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple, on inverse l'axe des x et celui des y :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## coord flip : boxplot&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(y=Sepal.Length, x=Species))&lt;br /&gt;
plot&amp;lt;- plot + geom_boxplot(fill=&amp;quot;#FF9999&amp;quot;)&lt;br /&gt;
plot&amp;lt;- plot + coord_flip()&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## coord flip : scatter + lm&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(x=Sepal.Length, y=Species))&lt;br /&gt;
plot&amp;lt;- plot + geom_point(colour=&amp;quot;red&amp;quot;) +geom_smooth(method=&amp;quot;lm&amp;quot;)&lt;br /&gt;
plot&amp;lt;- plot + coord_flip()&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On utilise des coordonnées polaires, et non plus cartésiennes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## coord_polar&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length, Sepal.Width))&lt;br /&gt;
plot&amp;lt;- plot + geom_point(colour=&amp;quot;red&amp;quot;)+geom_smooth(method=&amp;quot;lm&amp;quot;) &lt;br /&gt;
plot&amp;lt;- plot + coord_polar()&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On utilise une échelle logarithmique pour l'axe des ordonnées.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## coord_trans&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length, Sepal.Width))&lt;br /&gt;
plot&amp;lt;- plot + geom_point(colour=&amp;quot;red&amp;quot;)+geom_smooth(method=&amp;quot;lm&amp;quot;) &lt;br /&gt;
plot&amp;lt;- plot + coord_trans(ytrans=&amp;quot;log10&amp;quot;)&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== scale ====&lt;br /&gt;
L'argument scale permet de contrôler les axes du graphique, par exemple : la transformation, les limites des axes, le pas utilisé, les labels, etc.&lt;br /&gt;
&lt;br /&gt;
===== Changer les labels (axe discret) =====&lt;br /&gt;
On peut changer les labels de l'axe des x (discret). On ajoute également un titre à cet axe, ainsi qu'à l'axe des y.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# changer labels&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(y=Sepal.Length, x=Species))&lt;br /&gt;
plot&amp;lt;- plot + geom_boxplot(fill=&amp;quot;#FF9999&amp;quot;)&lt;br /&gt;
plot&amp;lt;- plot + scale_x_discrete(breaks=c(&amp;quot;setosa&amp;quot;, &amp;quot;versicolor&amp;quot;, &amp;quot;virginica&amp;quot;),labels = c(&amp;quot;Espèce A&amp;quot;,&amp;quot;Espèce B&amp;quot;,&amp;quot;Espèce C&amp;quot;),name=&amp;quot;Code espèce de l'iris&amp;quot;) &lt;br /&gt;
          + scale_y_continuous(name=&amp;quot;Longueur de la Sépale&amp;quot;)&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Changer le pas =====&lt;br /&gt;
Ici, on change le pas de l'axe des y pour un pas tous les 0.25.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# changer le pas&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length, Sepal.Width))&lt;br /&gt;
plot&amp;lt;- plot + geom_point(colour=&amp;quot;red&amp;quot;)&lt;br /&gt;
plot&amp;lt;-plot + scale_y_continuous(breaks=seq(0, 10, 0.25))&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Changer les bornes =====&lt;br /&gt;
On change les limites de l'axe des y (limite entre 3 et 4).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# changer les limites&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length, Sepal.Width))&lt;br /&gt;
plot&amp;lt;- plot + geom_point(colour=&amp;quot;red&amp;quot;)&lt;br /&gt;
plot&amp;lt;-plot + scale_y_continuous(limits=c(3,4))&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention, pour des graphiques de type scatterplot, cela va simplement exclure du graphique les observations en dehors de l'intervalle. Cependant, pour un graphique de type boxplot, si l'objectif est de &amp;quot;zoomer&amp;quot;, le résultat sera alors un boxplot erroné (car portant uniquement sur les observations DE l'intervalle).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# changer les limites : boxplot&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(y=Sepal.Length, x=Species))&lt;br /&gt;
plot&amp;lt;- plot + geom_boxplot(fill=&amp;quot;#FF9999&amp;quot;)&lt;br /&gt;
plot&amp;lt;-plot + scale_y_continuous(limits=c(4.5,6.5))&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il convient alors d'utiliser coord_cartesian() pour définir les limites de l'axe en &amp;quot;zoomant&amp;quot;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#zoom : boxplot&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(y=Sepal.Length, x=Species))&lt;br /&gt;
plot&amp;lt;- plot + geom_boxplot(fill=&amp;quot;#FF9999&amp;quot;)&lt;br /&gt;
plot&amp;lt;-plot + coord_cartesian(ylim=c(4.5,6.5))&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== position ====&lt;br /&gt;
position : pour ajuster la positions du geom. ???&lt;br /&gt;
Comme pour stat, une modalité est associée par défaut à chaque geom. Il n’est donc pas nécessaire de le spécifier, sauf si l’on souhaite utiliser un argument différent de la valeur par défaut. Si tel est le cas, on peut aussi le spécifier au sein de l’argument geom : geom_XXX(….,position=position_YYY(width=, height=).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il y a deux arguments pour tous les ajustements de position possibles : width et height&lt;br /&gt;
Les ajustement de position disponibles sont : &lt;br /&gt;
* position_identity - default of most geoms&lt;br /&gt;
* position_jitter - default of geom_jitter&lt;br /&gt;
* position_dodge - default of geom_boxplot&lt;br /&gt;
* position_stack - default of geom_bar==geom_histogram and geom_area&lt;br /&gt;
* position_fill - useful for geom_bar==geom_histogram and geom_area&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Changer le jeu de données ===&lt;br /&gt;
Une fois le graphique créé, il est possible de l'appliquer à un jeu de données différent (à condition que les variables correspondent). Par exemple ici, on créee trois bases de données, contenant les mêmes variables. Pour cela, on divise la base initiale selon l’espèce.&lt;br /&gt;
On crée un graphique de type scatter plot, affichant une droite de regression linéaire pour le sous-jeu de données setosa. L’utilisation de '''« %+% »''' va permettre de produire le même graphique, pour le sous-jeu de données versicolor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Data&lt;br /&gt;
iris_setosa &amp;lt;- subset(iris, Species == &amp;quot;setosa&amp;quot;)&lt;br /&gt;
iris_versi &amp;lt;- subset(iris, Species == &amp;quot;versicolor&amp;quot;)&lt;br /&gt;
iris_virgin &amp;lt;- subset(iris, Species == &amp;quot;virginica&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
plot&amp;lt;-ggplot(iris_setosa,aes(Sepal.Length,Sepal.Width))+geom_point(colour=&amp;quot;red&amp;quot;)&lt;br /&gt;
plot&lt;br /&gt;
&lt;br /&gt;
plot %+% iris_versi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ajouter un titre&lt;br /&gt;
Modifier le thème&lt;br /&gt;
&lt;br /&gt;
== Enregistrer le graphique ==&lt;br /&gt;
Il est possible de sauvegarder un graphique affiché à l'écran grâce à la fonction ggsave (valable pour un graphique créé avec QPLOT ou avec GGPLOT).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#sauver le graphique affiché à l'écran&lt;br /&gt;
hist&amp;lt;-ggplot(data=iris,aes(x=Sepal.Length)) &lt;br /&gt;
hist &amp;lt;- hist + geom_histogram(fill=&amp;quot;orange&amp;quot;,binwidth=0.3)&lt;br /&gt;
hist&lt;br /&gt;
&lt;br /&gt;
ggsave(&amp;quot;plot.pdf&amp;quot;, width=4, height=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5934</id>
		<title>Package R ggplot2</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5934"/>
				<updated>2014-07-16T13:41:27Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ggplot2 est un package de R qui permet de réaliser des graphiques plus perfectionnés, et au design plus moderne. Pour cela, il existe deux fonctions : &lt;br /&gt;
* QPLOT (pour &amp;quot;Quick Plot&amp;quot;) qui est la fonction &amp;quot;de base&amp;quot; du package (mais qui offre de grandes possibilités). Syntaxe générale : qplot(x,y,data=database)&lt;br /&gt;
* GGPLOT va permettre de créer des graphiques extrêmement perfectionnés. Sa syntaxe diffère de la syntaxe habituelle : ggplot(data=data,aes=(x,y)) +layers. La fonction ggplot (argument data et aes pour &amp;quot;aesthetic mapping&amp;quot;) va permettre de créer le graphique en lui même, et les layers vont permettre d'ajouter des paramètres modifiant la représentation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##### On installe le package&lt;br /&gt;
install.packages(&amp;quot;ggplot2&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois installé, il suffit de charger le package, avant de vouloir l'utiliser.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge le package&lt;br /&gt;
library(ggplot2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Jeu de données : ==&lt;br /&gt;
Pour illustrer, on utilise le jeu de données « iris » de R, qui contient 150 observations de 5 variables : 4 variables de type quantitatif, et une de type qualitatif (Species).&lt;br /&gt;
* Sepal.Length : longueur de la sépale&lt;br /&gt;
* Sepal.Width : largeur de la sépale Petal.Length : longueur du pétale&lt;br /&gt;
* Petal.Width : largeur du pétale&lt;br /&gt;
* Species : espèce.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge les données&lt;br /&gt;
data(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La fonction head(dataset) permet d’avoir un aperçu des premières lignes du jeu de données : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
head(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Headiris.png]]&lt;br /&gt;
&lt;br /&gt;
Attention ! pour utiliser ggplot2, les données doivent être sous la forme « data.frame », ce qui peut être vérifié par : class(dataset), et corrigé si besoin avec as.data.frame(dataset)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class(iris)&lt;br /&gt;
as.data.frame(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== QPLOT ==&lt;br /&gt;
&lt;br /&gt;
La syntaxe ressemble effectivement à celle de la fonction plot() (package &amp;quot;de base&amp;quot; de R).&lt;br /&gt;
&lt;br /&gt;
''qplot(x, y = NULL, ..., data, facets = NULL, margins = FALSE, geom = &amp;quot;auto&amp;quot;, stat = list(NULL), position = list(NULL), xlim = c(NA,NA), ylim = c(NA, NA), log = &amp;quot;&amp;quot;, main = NULL, xlab = deparse(substitute(x)), ylab = deparse(substitute(y)), asp = NA)''&lt;br /&gt;
&lt;br /&gt;
=== Objet géométrique ===&lt;br /&gt;
&lt;br /&gt;
L’argument geom() (pour objet géométrique) va permettre de réaliser différents graphiques à une ou deux dimensions. &lt;br /&gt;
Par défaut : &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type de la variable&lt;br /&gt;
! Objet par défaut&lt;br /&gt;
|-&lt;br /&gt;
| Quantitative&lt;br /&gt;
| geom =&amp;quot;histogram&amp;quot;  &lt;br /&gt;
|-&lt;br /&gt;
| Qualitative&lt;br /&gt;
| geom=&amp;quot;bar&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Deux variables quantitatives&lt;br /&gt;
| geom=&amp;quot;point&amp;quot; (scatterplot)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
De nombreux graphiques sont possibles (voir geom dans la documentation du package ggplot2, ou  en page 56). Parmi les plus utilisés : &lt;br /&gt;
&lt;br /&gt;
'''Pour une variable à analyser :''' &lt;br /&gt;
* histogram : histogramme (variable quantitative continue)&lt;br /&gt;
* density : trace la courbe de densité (variable quantitative continue)&lt;br /&gt;
* freqpoly : polynôme de fréquence (variable quantitative continue)&lt;br /&gt;
* bar : diagramme en bâton (variable discrète)&lt;br /&gt;
&lt;br /&gt;
'''Pour deux variables :''' &lt;br /&gt;
* point : scatterplot (deux variables continues)&lt;br /&gt;
* smooth : trace une courbe de tendance et son écart-type (deux variables continues)&lt;br /&gt;
* boxplot : boxplot (une variable quantitative continue, une variable discrète)&lt;br /&gt;
&lt;br /&gt;
'''Séries temporelles'''&lt;br /&gt;
* line : trace des lignes entre les points (de la gauche vers la droite)&lt;br /&gt;
* path : trace des lignes entre les points (dans n’importe quelle direction)&lt;br /&gt;
&lt;br /&gt;
A noter également que les objets géométriques peuvent être combinés (à partir du moment où cela est raisonnable sur le plan statistique).&lt;br /&gt;
&lt;br /&gt;
=== Une dimension ===&lt;br /&gt;
&lt;br /&gt;
==== Variable quantitative, continue. ====&lt;br /&gt;
&lt;br /&gt;
===== Histogramme =====&lt;br /&gt;
C'est le graphique tracé par défaut lorsque la variable indiquée est de type quantitatif (continu).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_base_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
On peut l'améliorer : changer la couleur de remplissage (argument '''fill''') et/ou la couleur de la bordure (argument '''colour''') :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;)) ## couleur de remplissage en orange&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;),colour=I(&amp;quot;black&amp;quot;))  ## et bordure en noir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_orange_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_orange_black_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
De plus, QQPLOT permet d’adapter la largeur des classes utilisées pour tracer l’histogramme, et donc d’avoir un degré de précision plus ou moins élevé, grâce à l’argument binwidth.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;),binwidth=1)  ## larges classes&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,binwidth=0.05)  ## classes ressérées&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_large_qplot.png]]&lt;br /&gt;
[[Fichier:histo_serre_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Courbe de densité =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;density&amp;quot;,colour=I(&amp;quot;red&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbe_densité_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Il peut être intéressant de la combiner avec l'histogramme.&lt;br /&gt;
&lt;br /&gt;
===== Polynôme de fréquence =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;freqpoly&amp;quot;,colour=I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:polyfreq_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Variable discrète =====&lt;br /&gt;
&lt;br /&gt;
Le graphique produit par défaut est un diagramme en bâton (à ne pas confondre avec un histogramme !!! voir [[Statistiques descriptives avec R]]) &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Species,data=iris,geom=&amp;quot;bar&amp;quot;,fill=I(&amp;quot;yellow&amp;quot;)) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barplot_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deux dimensions === &lt;br /&gt;
&lt;br /&gt;
==== Deux variables continues ====&lt;br /&gt;
&lt;br /&gt;
===== Scatterplot =====&lt;br /&gt;
&lt;br /&gt;
Le graphique produit par défaut par la fonction est un nuage de points classique.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Deux variables continues&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;point&amp;quot;) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_base_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Les arguments de la fonction peuvent être modifiés, par exemple pour produire un graphique avec des points bleu (et non noirs).... &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## changer la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour = I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_bleu_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
... ou  pour produire un graphique avec des « + » à la place des points.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## changer le symbole&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,shape=I(3))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_plus_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de modifier la taille des points sur le graphique, à l’aide de l’argument size par exemple pour affiner les points ou les grossir(par défaut, size=I(2)).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## taille&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,size=I(3))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_taille_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Enfin, l’argument alpha est utile en cas de nombre conséquent d’observations qui vont se superposer sur le graphique (ce qui n’est pas le cas ici). En ajustant la transparence, il permet d’améliorer la lisibilité du graphique. Par défaut alpha=I(1), et l’utilisateur peut fixer alpha=I(1/x), avec x le nombre nécessaire d’observations qui se superposent pour obtenir une couleur opaque.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## transparence&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,alpha=I(1/10))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_transparence_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Courbe de tendance =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;smooth&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbe_tendance_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
à noter que la méthode pour tracer la courbe de tendance peut être changée par l’utilisateur grâce à l’argument «method= (par défaut, method=« loess » pour un nombre d’observations faible). Par exemple, method=« lm » permet de tracer une droite de regression linéaire.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;smooth&amp;quot;,method=&amp;quot;lm&amp;quot;) # lm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbelm_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Il peut être utile de combiner l'objet géométrique courbe de tendance avec un nuage de points : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),method=&amp;quot;lm&amp;quot;) #combiné&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_lm_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Le tracé peut être plus ou moins sinueux grâce à l’argument span, allant de 0 à 1.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##sinuosité&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),span=0.2)&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),span=1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_lm_span1_qplot.png]]&lt;br /&gt;
[[Fichier:scatt_lm_span2_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Une variable continue, une discrète ====&lt;br /&gt;
Il n'est pas rare de vouloir représenter la distribution une variable continue, selon différentes sous-populations définies par une variable discrète. Pour cela on peut utiliser un boxplot. (voir [[Statistiques descriptives avec R]]). QPLOT va également permettre des représentations plus perfectionnées des graphiques présentés précédemment, en tenant compte de ces différentes sous-populations.&lt;br /&gt;
&lt;br /&gt;
===== Boxplot =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Une continue, une discrete&lt;br /&gt;
qplot(Species,Sepal.Length, data=iris, geom=&amp;quot;boxplot&amp;quot;,fill=I(&amp;quot;purple&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boxplot_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Sous-populations : sur un même graphique ===== &lt;br /&gt;
&lt;br /&gt;
On peut présenter les observations issues de différentes sous-populations définies par les niveaux de la variable facteur group, soit d’une couleur différente (contour ou remplissage), soit d’un symbole différent.&lt;br /&gt;
Rappel : &lt;br /&gt;
* argument colour = bordure&lt;br /&gt;
* argument fill = remplissage&lt;br /&gt;
* argument shape = symbole&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Par exemple l’argument colour=group permet de présenter d'une couleur différente sur le nuage de points, les observations issues de différentes sous-populations, définies par les niveaux de la variable facteur group.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## ajoute de la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour=Species)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
On peut faire de même sur un graphique de type scatterplot grâce à l’argument shape=group, avec cette fois des symboles différents, selon le niveau de la variable group.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,geom=&amp;quot;point&amp;quot;,shape=Species) #symboles&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_Species_symbole_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
C’est aussi réalisable sur des courbes de densité (argument colour).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# densité&lt;br /&gt;
qplot(Sepal.Length, data=iris,geom=&amp;quot;density&amp;quot;,colour=Species)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:densité_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Pour un histogramme, l’agument à utiliser est fill=group pour modifier le remplissage.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=Species) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Attention à ne pas confondre fill=I(&amp;quot;red&amp;quot;) (utilisé pour paramétrer le remplissage en rouge, valable aussi pour l'argument colour..) et fill=group (utilisé pour changer la couleur selon les sous-populations définies pas la variable group). Déclarer fill=&amp;quot;red&amp;quot; et non fill=I(&amp;quot;red&amp;quot;) aurait pour conséquence de créer une nouvelle variable &amp;quot;red&amp;quot;, et de représenter les observations de couleurs différentes selon les modalités prises par cette variable (soit une seule). R ne produira pas de message d'erreur, mais le graphique sera obtenu de manière erronée.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=&amp;quot;red&amp;quot;) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_faux_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Le graphique correct serait : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;red&amp;quot;)) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_faux_correct_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Sous-populations : différents graphiques ===== &lt;br /&gt;
&lt;br /&gt;
QPLOT offre aussi la possibilité de créer plusieurs graphiques juxtaposés, correspondant à un même graphique pour chacune des différentes sous-populations définies par une variable group. On utilise l’argument facets=. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
facets= . ~ group va présenter les graphiques cote à cote (horizontalement), tandis que facets= group ~ . les superposera (verticalement). &lt;br /&gt;
&lt;br /&gt;
Par exemple ici, l’histogramme pour la variable Sepal.Length, pour chaque espèce. On constate qu’il est préférable de les présenter verticalement, sinon les histogrammes sont écrasés et peu lisibles.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,facets = Species ~ .,geom=&amp;quot;histogram&amp;quot;,binwidth=0.1,fill=I(&amp;quot;orange&amp;quot;)) #ordre vertical&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:facet_vertical_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,facets = . ~ Species,geom=&amp;quot;histogram&amp;quot;,binwidth=0.1,fill=I(&amp;quot;orange&amp;quot;)) #ordre horizontal&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:facet_horizontal_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Données en séries temporelles ====&lt;br /&gt;
&lt;br /&gt;
Line et path sont utilisés dans le cas de séries temporelles. On rappelle que la différence entre les deux provient du fait que path relie les points dans n’importe quelle direction (pourvu qu’il apparaissent en suivant dans la base de données), tandis que line relie les points de gauche à droite.&lt;br /&gt;
&lt;br /&gt;
Ainsi, on utilisera line, par exemple pour tracer l’évolution d’un phénomène en fonction de la date, tandis que l’on utilisera path pour relier les différents points selon l’ordre chronologique, dans un graphique à deux dimensions (dont aucune n’est temporelle).&lt;br /&gt;
&lt;br /&gt;
Pour illustrer, étant donné que les données &amp;quot;iris&amp;quot; sont en coupe transversale, on utilise le jeu de données « longley » qui contient des données macro-économiques annuelles (16 observations, entre 1947 et 1962).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
data(longley) #on charge le jeu de données&lt;br /&gt;
head(longley)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Fichier:head_longley.png]]&lt;br /&gt;
&lt;br /&gt;
==== Geom line ====&lt;br /&gt;
Par exemple, on peut utiliser l’argument line pour tracer l’évolution temporelle du taux de chômage.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#evolution temporelle du nombre de personnes au chômage.&lt;br /&gt;
qplot(Year,Unemployed/Population, data=longley, geom=&amp;quot;line&amp;quot;,colour=I(&amp;quot;red&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:line_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Geom path ====&lt;br /&gt;
On trace ensuite par exemple le nombre de personnes au chômage en fonction du taux de chômage. L’argument path va permettre de relier les points pour visualiser la variation d’année en année. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Nombre de personnes au chômage en fonction du taux de chômage&lt;br /&gt;
qplot(Unemployed/Population,Unemployed, data=longley, geom=&amp;quot;path&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:path_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Ici, même sans ajouter la couleur le graphique est clair (il y a peu d’observations, et les tracés ne se superposent pas). Mais dans d'autres cas, l'ajout de ce dégradé de couleur selon l'année permet de rendre le graphique beaucoup plus lisible. (Trois dimensions).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Ajoute la couleur pour l'année&lt;br /&gt;
qplot(Unemployed/Population,Unemployed, data=longley, geom=&amp;quot;path&amp;quot;,colour=Year)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:path_color_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GGPLOT ==&lt;br /&gt;
&lt;br /&gt;
ggplot est la seconde fonction du package ggplot2, et va permettre de produire des graphiques plus complexes et élaborés. &lt;br /&gt;
De plus, alors que la fonction qplot était relativement similaire dans sa syntaxe des fonctions traditionnelles permettant de tracer des graphiques sous R, la syntaxe utilisée par ggplot est totalement différente.&lt;br /&gt;
&lt;br /&gt;
En effet, la fonction en elle-même n’a que deux arguments : &lt;br /&gt;
* data : les données (sous la forme data.frame)&lt;br /&gt;
* une fonction aes (pour &amp;quot;aesthetic mapping&amp;quot;), qui va contenir les variables et les paramètres utilisés pour l’esthétique du graphique.&lt;br /&gt;
&lt;br /&gt;
ggplot fonctionne par l’ajout de calques (« layers »).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ainsi, la commande suivante ne permet pas de tracer un graph, et nécessite pour cela d’ajouter au minimum un calque minimal.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ggplot(data=iris,aes(Sepal.Length,Sepal.Width)) #no layers in plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Par exemple, si l’on souhaite tracer un nuage ce points, on ajoute le layer geom=« point » sous la forme suivante : ''ggplot(data=data,aes(x,y,….)) + layer(geom=« point »,……)''. C'est pourquoi, il est intéressant de &amp;quot;stocker&amp;quot; le graphique dans un objet R, et de le modifier par l'ajout successif de layers, comme ci-dessous.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Ajoute un layer minimal&lt;br /&gt;
plot&amp;lt;-ggplot(data=iris,aes(Sepal.Length,Sepal.Width))&lt;br /&gt;
plot+layer(geom=&amp;quot;point&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Layer ===&lt;br /&gt;
Layer peut prendre différents arguments (le principal étant geom), par exemple : &lt;br /&gt;
* '''geom''' permet de spécifier le type de graphique souhaité (de manière similaire à l’usage dans la fonction qplot)&lt;br /&gt;
* '''geom_params''' va contenir tous les paramètres associés, permettant de personnaliser le graphique.&lt;br /&gt;
* '''stat''' consiste en une transformation statistique des données. De nouvelles variables vont être créées, qui résument les variables d’une certaine manière. Lorsque geom est utilisé, cette transformation va être automatiquement réalisée (selon le type de graphique souhaité). Elle peut éventuellement être l’identité.&lt;br /&gt;
Par exemple, la transformation associée par défaut à l’histogramme est « bin », et va créer trois nouvelles variables : count (le nombre d’observation dans chaque classe), density (le pourcentage divisé par la largeur de la classe), et x (le centre de la classe). &lt;br /&gt;
* '''stat_params''' contient les paramètres associés à cette transformation. Par exemple lorsque que l’on souhaite spécifier la largeur des classes utilisées pour l’histogramme, il va s’agir d’un paramètre stat, et non geom.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ainsi, la commande ci-dessous va permettre de tracer un histogramme pour la longueur de la sépale, de couleur orange, avec une longueur de classe de 0.3.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Histogramme&lt;br /&gt;
ggplot(data=iris,aes(x=Sepal.Length)) + layer(geom=&amp;quot;histogram&amp;quot;,&lt;br /&gt;
                                              geom_params=list(fill=&amp;quot;orange&amp;quot;),&lt;br /&gt;
                                              stat=&amp;quot;bin&amp;quot;,&lt;br /&gt;
                                              stat_params=list(binwidth=2))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cependant, cette syntaxe est relativement lourde, et peut être considérablement allégée.&lt;br /&gt;
&lt;br /&gt;
Tout d’abord, l’argument layer(geom=&amp;quot;histogram&amp;quot;,geom_params=list(fill=&amp;quot;orange&amp;quot;) peut être remplacé par l’argument geom_histogram(fill=« orange »). De plus, en tenant compte du fait que chaque type de graphique (geom) est lié à une transformation statistique (stats), on peut finalement simplifier l’argument layer en : geom_histogram(fill=&amp;quot;orange&amp;quot;,binwidth=0.3)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Ainsi, la commande suivante produit le même graphique.&lt;br /&gt;
#simplification&lt;br /&gt;
hist&amp;lt;-ggplot(data=iris,aes(x=Sepal.Length)) &lt;br /&gt;
hist &amp;lt;- hist + geom_histogram(fill=&amp;quot;orange&amp;quot;,binwidth=0.3)&lt;br /&gt;
hist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
NB : il est parfois nécessaire de demander à imprimer le graphique à l’écran.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On va raisonner de cette façon pour la suite. Ainsi les principaux layers pouvant être ajoutés vont être les suivants : &lt;br /&gt;
* geom_XXX() (par example : geom_point(), geom_histogram(), geom_vline(), etc.) : correspondant au type de graphique à créer&lt;br /&gt;
* stat_XXX() (par exemple : stat_bin(), stat_smooth(), etc.)  : correspondant à la transformation statistique à utiliser &lt;br /&gt;
* scale_XXX() (par exemple : scale_x_continuous(), : contrôlant l’échelle utilisée pour les axes.  &lt;br /&gt;
* coord_XXX() : permettant de contrôler le système de coordonnées utilisé.&lt;br /&gt;
* facet_XXX() : permettant de faire des graphiques pour des sous-groupes&lt;br /&gt;
* position_XXX() :&lt;br /&gt;
&lt;br /&gt;
==== coord ====&lt;br /&gt;
coord() (système de coordonnées à utiliser) et scale()  (échelles des axes) déterminent la position de l’argument géométrique geom.&lt;br /&gt;
&lt;br /&gt;
Par défaut : coord_cartesian (coordonnées cartésiennes « classiques », x est représenté sur l’axe des abscisses (de gauche à droite), et y sur celui des ordonnées (de bas en haut)&lt;br /&gt;
* coord_flip : inverse l’axe des x et des y&lt;br /&gt;
* coord_equal : même échelle pour l’axe des x et celui des y (cartésiens)&lt;br /&gt;
* coord_polar : coordonnées polaires :&lt;br /&gt;
* préciser la variable qui représente theta (l’angle)&lt;br /&gt;
* coord_trans : permet de transformer « manuellement » les axes (nécessite de préciser la transformation voulue)&lt;br /&gt;
* coord_map :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple, on inverse l'axe des x et celui des y :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## coord flip : boxplot&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(y=Sepal.Length, x=Species))&lt;br /&gt;
plot&amp;lt;- plot + geom_boxplot(fill=&amp;quot;#FF9999&amp;quot;)&lt;br /&gt;
plot&amp;lt;- plot + coord_flip()&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## coord flip : scatter + lm&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(x=Sepal.Length, y=Species))&lt;br /&gt;
plot&amp;lt;- plot + geom_point(colour=&amp;quot;red&amp;quot;) +geom_smooth(method=&amp;quot;lm&amp;quot;)&lt;br /&gt;
plot&amp;lt;- plot + coord_flip()&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On utilise des coordonnées polaires, et non plus cartésiennes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## coord_polar&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length, Sepal.Width))&lt;br /&gt;
plot&amp;lt;- plot + geom_point(colour=&amp;quot;red&amp;quot;)+geom_smooth(method=&amp;quot;lm&amp;quot;) &lt;br /&gt;
plot&amp;lt;- plot + coord_polar()&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== scale ====&lt;br /&gt;
L'argument scale permet de contrôler les axes du graphique, par exemple : la transformation, les limites des axes, le pas utilisé, les labels, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== position ====&lt;br /&gt;
position : pour ajuster la positions du geom. ???&lt;br /&gt;
Comme pour stat, une modalité est associée par défaut à chaque geom. Il n’est donc pas nécessaire de le spécifier, sauf si l’on souhaite utiliser un argument différent de la valeur par défaut. Si tel est le cas, on peut aussi le spécifier au sein de l’argument geom : geom_XXX(….,position=position_YYY(width=, height=).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il y a deux arguments pour tous les ajustements de position possibles : width et height&lt;br /&gt;
Les ajustement de position disponibles sont : &lt;br /&gt;
* position_identity - default of most geoms&lt;br /&gt;
* position_jitter - default of geom_jitter&lt;br /&gt;
* position_dodge - default of geom_boxplot&lt;br /&gt;
* position_stack - default of geom_bar==geom_histogram and geom_area&lt;br /&gt;
* position_fill - useful for geom_bar==geom_histogram and geom_area&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Changer le jeu de données ===&lt;br /&gt;
Une fois le graphique créé, il est possible de l'appliquer à un jeu de données différent (à condition que les variables correspondent). Par exemple ici, on créee trois bases de données, contenant les mêmes variables. Pour cela, on divise la base initiale selon l’espèce.&lt;br /&gt;
On crée un graphique de type scatter plot, affichant une droite de regression linéaire pour le sous-jeu de données setosa. L’utilisation de '''« %+% »''' va permettre de produire le même graphique, pour le sous-jeu de données versicolor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Data&lt;br /&gt;
iris_setosa &amp;lt;- subset(iris, Species == &amp;quot;setosa&amp;quot;)&lt;br /&gt;
iris_versi &amp;lt;- subset(iris, Species == &amp;quot;versicolor&amp;quot;)&lt;br /&gt;
iris_virgin &amp;lt;- subset(iris, Species == &amp;quot;virginica&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
plot&amp;lt;-ggplot(iris_setosa,aes(Sepal.Length,Sepal.Width))+geom_point(colour=&amp;quot;red&amp;quot;)&lt;br /&gt;
plot&lt;br /&gt;
&lt;br /&gt;
plot %+% iris_versi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ajouter un titre&lt;br /&gt;
Modifier le thème&lt;br /&gt;
&lt;br /&gt;
== Enregistrer le graphique ==&lt;br /&gt;
Il est possible de sauvegarder un graphique affiché à l'écran grâce à la fonction ggsave (valable pour un graphique créé avec QPLOT ou avec GGPLOT).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#sauver le graphique affiché à l'écran&lt;br /&gt;
hist&amp;lt;-ggplot(data=iris,aes(x=Sepal.Length)) &lt;br /&gt;
hist &amp;lt;- hist + geom_histogram(fill=&amp;quot;orange&amp;quot;,binwidth=0.3)&lt;br /&gt;
hist&lt;br /&gt;
&lt;br /&gt;
ggsave(&amp;quot;plot.pdf&amp;quot;, width=4, height=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5933</id>
		<title>Package R ggplot2</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5933"/>
				<updated>2014-07-16T12:30:07Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ggplot2 est un package de R qui permet de réaliser des graphiques plus perfectionnés, et au design plus moderne. Pour cela, il existe deux fonctions : &lt;br /&gt;
* QPLOT (pour &amp;quot;Quick Plot&amp;quot;) qui est la fonction &amp;quot;de base&amp;quot; du package (mais qui offre de grandes possibilités). Syntaxe générale : qplot(x,y,data=database)&lt;br /&gt;
* GGPLOT va permettre de créer des graphiques extrêmement perfectionnés. Sa syntaxe diffère de la syntaxe habituelle : ggplot(data=data,aes=(x,y)) +layers. La fonction ggplot (argument data et aes pour &amp;quot;aesthetic mapping&amp;quot;) va permettre de créer le graphique en lui même, et les layers vont permettre d'ajouter des paramètres modifiant la représentation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##### On installe le package&lt;br /&gt;
install.packages(&amp;quot;ggplot2&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois installé, il suffit de charger le package, avant de vouloir l'utiliser.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge le package&lt;br /&gt;
library(ggplot2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Jeu de données : ==&lt;br /&gt;
Pour illustrer, on utilise le jeu de données « iris » de R, qui contient 150 observations de 5 variables : 4 variables de type quantitatif, et une de type qualitatif (Species).&lt;br /&gt;
* Sepal.Length : longueur de la sépale&lt;br /&gt;
* Sepal.Width : largeur de la sépale Petal.Length : longueur du pétale&lt;br /&gt;
* Petal.Width : largeur du pétale&lt;br /&gt;
* Species : espèce.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge les données&lt;br /&gt;
data(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La fonction head(dataset) permet d’avoir un aperçu des premières lignes du jeu de données : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
head(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Headiris.png]]&lt;br /&gt;
&lt;br /&gt;
Attention ! pour utiliser ggplot2, les données doivent être sous la forme « data.frame », ce qui peut être vérifié par : class(dataset), et corrigé si besoin avec as.data.frame(dataset)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class(iris)&lt;br /&gt;
as.data.frame(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== QPLOT ==&lt;br /&gt;
&lt;br /&gt;
La syntaxe ressemble effectivement à celle de la fonction plot() (package &amp;quot;de base&amp;quot; de R).&lt;br /&gt;
&lt;br /&gt;
''qplot(x, y = NULL, ..., data, facets = NULL, margins = FALSE, geom = &amp;quot;auto&amp;quot;, stat = list(NULL), position = list(NULL), xlim = c(NA,NA), ylim = c(NA, NA), log = &amp;quot;&amp;quot;, main = NULL, xlab = deparse(substitute(x)), ylab = deparse(substitute(y)), asp = NA)''&lt;br /&gt;
&lt;br /&gt;
=== Objet géométrique ===&lt;br /&gt;
&lt;br /&gt;
L’argument geom() (pour objet géométrique) va permettre de réaliser différents graphiques à une ou deux dimensions. &lt;br /&gt;
Par défaut : &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type de la variable&lt;br /&gt;
! Objet par défaut&lt;br /&gt;
|-&lt;br /&gt;
| Quantitative&lt;br /&gt;
| geom =&amp;quot;histogram&amp;quot;  &lt;br /&gt;
|-&lt;br /&gt;
| Qualitative&lt;br /&gt;
| geom=&amp;quot;bar&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Deux variables quantitatives&lt;br /&gt;
| geom=&amp;quot;point&amp;quot; (scatterplot)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
De nombreux graphiques sont possibles (voir geom dans la documentation du package ggplot2, ou  en page 56). Parmi les plus utilisés : &lt;br /&gt;
&lt;br /&gt;
'''Pour une variable à analyser :''' &lt;br /&gt;
* histogram : histogramme (variable quantitative continue)&lt;br /&gt;
* density : trace la courbe de densité (variable quantitative continue)&lt;br /&gt;
* freqpoly : polynôme de fréquence (variable quantitative continue)&lt;br /&gt;
* bar : diagramme en bâton (variable discrète)&lt;br /&gt;
&lt;br /&gt;
'''Pour deux variables :''' &lt;br /&gt;
* point : scatterplot (deux variables continues)&lt;br /&gt;
* smooth : trace une courbe de tendance et son écart-type (deux variables continues)&lt;br /&gt;
* boxplot : boxplot (une variable quantitative continue, une variable discrète)&lt;br /&gt;
&lt;br /&gt;
'''Séries temporelles'''&lt;br /&gt;
* line : trace des lignes entre les points (de la gauche vers la droite)&lt;br /&gt;
* path : trace des lignes entre les points (dans n’importe quelle direction)&lt;br /&gt;
&lt;br /&gt;
A noter également que les objets géométriques peuvent être combinés (à partir du moment où cela est raisonnable sur le plan statistique).&lt;br /&gt;
&lt;br /&gt;
=== Une dimension ===&lt;br /&gt;
&lt;br /&gt;
==== Variable quantitative, continue. ====&lt;br /&gt;
&lt;br /&gt;
===== Histogramme =====&lt;br /&gt;
C'est le graphique tracé par défaut lorsque la variable indiquée est de type quantitatif (continu).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_base_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
On peut l'améliorer : changer la couleur de remplissage (argument '''fill''') et/ou la couleur de la bordure (argument '''colour''') :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;)) ## couleur de remplissage en orange&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;),colour=I(&amp;quot;black&amp;quot;))  ## et bordure en noir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_orange_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_orange_black_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
De plus, QQPLOT permet d’adapter la largeur des classes utilisées pour tracer l’histogramme, et donc d’avoir un degré de précision plus ou moins élevé, grâce à l’argument binwidth.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;),binwidth=1)  ## larges classes&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,binwidth=0.05)  ## classes ressérées&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_large_qplot.png]]&lt;br /&gt;
[[Fichier:histo_serre_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Courbe de densité =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;density&amp;quot;,colour=I(&amp;quot;red&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbe_densité_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Polynôme de fréquence =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;freqpoly&amp;quot;,colour=I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:polyfreq_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Variable discrète =====&lt;br /&gt;
&lt;br /&gt;
Le graphique produit par défaut est un diagramme en bâton (à ne pas confondre avec un histogramme !!! voir [[Statistiques descriptives avec R]]) &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Species,data=iris,geom=&amp;quot;bar&amp;quot;,fill=I(&amp;quot;yellow&amp;quot;)) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barplot_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deux dimensions === &lt;br /&gt;
&lt;br /&gt;
==== Deux variables continues ====&lt;br /&gt;
&lt;br /&gt;
===== Scatterplot =====&lt;br /&gt;
&lt;br /&gt;
Le graphique produit par défaut par la fonction est un nuage de points classique.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Deux variables continues&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;point&amp;quot;) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_base_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Les arguments de la fonction peuvent être modifiés, par exemple pour produire un graphique avec des points bleu (et non noirs).... &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## changer la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour = I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_bleu_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
... ou  pour produire un graphique avec des « + » à la place des points.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## changer le symbole&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,shape=I(3))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_plus_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de modifier la taille des points sur le graphique, à l’aide de l’argument size par exemple pour affiner les points ou les grossir(par défaut, size=I(2)).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## taille&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,size=I(3))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_taille_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Enfin, l’argument alpha est utile en cas de nombre conséquent d’observations qui vont se superposer sur le graphique (ce qui n’est pas le cas ici). En ajustant la transparence, il permet d’améliorer la lisibilité du graphique. Par défaut alpha=I(1), et l’utilisateur peut fixer alpha=I(1/x), avec x le nombre nécessaire d’observations qui se superposent pour obtenir une couleur opaque.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## transparence&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,alpha=I(1/10))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_transparence_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Courbe de tendance =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;smooth&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbe_tendance_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
à noter que la méthode pour tracer la courbe de tendance peut être changée par l’utilisateur grâce à l’argument «method= (par défaut, method=« loess » pour un nombre d’observations faible). Par exemple, method=« lm » permet de tracer une droite de regression linéaire.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;smooth&amp;quot;,method=&amp;quot;lm&amp;quot;) # lm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbelm_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Il peut être utile de combiner l'objet géométrique courbe de tendance avec un nuage de points : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),method=&amp;quot;lm&amp;quot;) #combiné&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_lm_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Le tracé peut être plus ou moins sinueux grâce à l’argument span, allant de 0 à 1.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##sinuosité&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),span=0.2)&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),span=1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_lm_span1_qplot.png]]&lt;br /&gt;
[[Fichier:scatt_lm_span2_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Une variable continue, une discrète ====&lt;br /&gt;
Il n'est pas rare de vouloir représenter la distribution une variable continue, selon différentes sous-populations définies par une variable discrète. Pour cela on peut utiliser un boxplot. (voir [[Statistiques descriptives avec R]]). QPLOT va également permettre des représentations plus perfectionnées des graphiques présentés précédemment, en tenant compte de ces différentes sous-populations.&lt;br /&gt;
&lt;br /&gt;
===== Boxplot =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Une continue, une discrete&lt;br /&gt;
qplot(Species,Sepal.Length, data=iris, geom=&amp;quot;boxplot&amp;quot;,fill=I(&amp;quot;purple&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boxplot_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Sous-populations : sur un même graphique ===== &lt;br /&gt;
&lt;br /&gt;
On peut présenter les observations issues de différentes sous-populations définies par les niveaux de la variable facteur group, soit d’une couleur différente (contour ou remplissage), soit d’un symbole différent.&lt;br /&gt;
Rappel : &lt;br /&gt;
* argument colour = bordure&lt;br /&gt;
* argument fill = remplissage&lt;br /&gt;
* argument shape = symbole&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Par exemple l’argument colour=group permet de présenter d'une couleur différente sur le nuage de points, les observations issues de différentes sous-populations, définies par les niveaux de la variable facteur group.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## ajoute de la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour=Species)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
On peut faire de même sur un graphique de type scatterplot grâce à l’argument shape=group, avec cette fois des symboles différents, selon le niveau de la variable group.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,geom=&amp;quot;point&amp;quot;,shape=Species) #symboles&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_Species_symbole_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
C’est aussi réalisable sur des courbes de densité (argument colour).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# densité&lt;br /&gt;
qplot(Sepal.Length, data=iris,geom=&amp;quot;density&amp;quot;,colour=Species)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:densité_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Pour un histogramme, l’agument à utiliser est fill=group pour modifier le remplissage.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=Species) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Attention à ne pas confondre fill=I(&amp;quot;red&amp;quot;) (utilisé pour paramétrer le remplissage en rouge, valable aussi pour l'argument colour..) et fill=group (utilisé pour changer la couleur selon les sous-populations définies pas la variable group). Déclarer fill=&amp;quot;red&amp;quot; et non fill=I(&amp;quot;red&amp;quot;) aurait pour conséquence de créer une nouvelle variable &amp;quot;red&amp;quot;, et de représenter les observations de couleurs différentes selon les modalités prises par cette variable (soit une seule). R ne produira pas de message d'erreur, mais le graphique sera obtenu de manière erronée.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=&amp;quot;red&amp;quot;) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_faux_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Le graphique correct serait : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;red&amp;quot;)) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_faux_correct_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Sous-populations : différents graphiques ===== &lt;br /&gt;
&lt;br /&gt;
QPLOT offre aussi la possibilité de créer plusieurs graphiques juxtaposés, correspondant à un même graphique pour chacune des différentes sous-populations définies par une variable group. On utilise l’argument facets=. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
facets= . ~ group va présenter les graphiques cote à cote (horizontalement), tandis que facets= group ~ . les superposera (verticalement). &lt;br /&gt;
&lt;br /&gt;
Par exemple ici, l’histogramme pour la variable Sepal.Length, pour chaque espèce. On constate qu’il est préférable de les présenter verticalement, sinon les histogrammes sont écrasés et peu lisibles.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,facets = Species ~ .,geom=&amp;quot;histogram&amp;quot;,binwidth=0.1,fill=I(&amp;quot;orange&amp;quot;)) #ordre vertical&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:facet_vertical_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,facets = . ~ Species,geom=&amp;quot;histogram&amp;quot;,binwidth=0.1,fill=I(&amp;quot;orange&amp;quot;)) #ordre horizontal&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:facet_horizontal_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Données en séries temporelles ====&lt;br /&gt;
&lt;br /&gt;
Line et path sont utilisés dans le cas de séries temporelles. On rappelle que la différence entre les deux provient du fait que path relie les points dans n’importe quelle direction (pourvu qu’il apparaissent en suivant dans la base de données), tandis que line relie les points de gauche à droite.&lt;br /&gt;
&lt;br /&gt;
Ainsi, on utilisera line, par exemple pour tracer l’évolution d’un phénomène en fonction de la date, tandis que l’on utilisera path pour relier les différents points selon l’ordre chronologique, dans un graphique à deux dimensions (dont aucune n’est temporelle).&lt;br /&gt;
&lt;br /&gt;
Pour illustrer, étant donné que les données &amp;quot;iris&amp;quot; sont en coupe transversale, on utilise le jeu de données « longley » qui contient des données macro-économiques annuelles (16 observations, entre 1947 et 1962).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
data(longley) #on charge le jeu de données&lt;br /&gt;
head(longley)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Fichier:head_longley.png]]&lt;br /&gt;
&lt;br /&gt;
==== Geom line ====&lt;br /&gt;
Par exemple, on peut utiliser l’argument line pour tracer l’évolution temporelle du taux de chômage.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#evolution temporelle du nombre de personnes au chômage.&lt;br /&gt;
qplot(Year,Unemployed/Population, data=longley, geom=&amp;quot;line&amp;quot;,colour=I(&amp;quot;red&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:line_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Geom path ====&lt;br /&gt;
On trace ensuite par exemple le nombre de personnes au chômage en fonction du taux de chômage. L’argument path va permettre de relier les points pour visualiser la variation d’année en année. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Nombre de personnes au chômage en fonction du taux de chômage&lt;br /&gt;
qplot(Unemployed/Population,Unemployed, data=longley, geom=&amp;quot;path&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:path_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Ici, même sans ajouter la couleur le graphique est clair (il y a peu d’observations, et les tracés ne se superposent pas). Mais dans d'autres cas, l'ajout de ce dégradé de couleur selon l'année permet de rendre le graphique beaucoup plus lisible. (Trois dimensions).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Ajoute la couleur pour l'année&lt;br /&gt;
qplot(Unemployed/Population,Unemployed, data=longley, geom=&amp;quot;path&amp;quot;,colour=Year)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:path_color_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GGPLOT ==&lt;br /&gt;
&lt;br /&gt;
ggplot est la seconde fonction du package ggplot2, et va permettre de produire des graphiques plus complexes et élaborés. &lt;br /&gt;
De plus, alors que la fonction qplot était relativement similaire dans sa syntaxe des fonctions traditionnelles permettant de tracer des graphiques sous R, la syntaxe utilisée par ggplot est totalement différente.&lt;br /&gt;
&lt;br /&gt;
En effet, la fonction en elle-même n’a que deux arguments : &lt;br /&gt;
* data : les données (sous la forme data.frame)&lt;br /&gt;
* une fonction aes (pour &amp;quot;aesthetic mapping&amp;quot;), qui va contenir les variables et les paramètres utilisés pour l’esthétique du graphique.&lt;br /&gt;
&lt;br /&gt;
ggplot fonctionne par l’ajout de calques (« layers »).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ainsi, la commande suivante ne permet pas de tracer un graph, et nécessite pour cela d’ajouter au minimum un calque minimal.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ggplot(data=iris,aes(Sepal.Length,Sepal.Width)) #no layers in plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Par exemple, si l’on souhaite tracer un nuage ce points, on ajoute le layer geom=« point » sous la forme suivante : ''ggplot(data=data,aes(x,y,….)) + layer(geom=« point »,……)''. C'est pourquoi, il est intéressant de &amp;quot;stocker&amp;quot; le graphique dans un objet R, et de le modifier par l'ajout successif de layers, comme ci-dessous.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Ajoute un layer minimal&lt;br /&gt;
plot&amp;lt;-ggplot(data=iris,aes(Sepal.Length,Sepal.Width))&lt;br /&gt;
plot+layer(geom=&amp;quot;point&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Layer ===&lt;br /&gt;
Layer peut prendre différents arguments (le principal étant geom), par exemple : &lt;br /&gt;
* '''geom''' permet de spécifier le type de graphique souhaité (de manière similaire à l’usage dans la fonction qplot)&lt;br /&gt;
* '''geom_params''' va contenir tous les paramètres associés, permettant de personnaliser le graphique.&lt;br /&gt;
* '''stat''' consiste en une transformation statistique des données. De nouvelles variables vont être créées, qui résument les variables d’une certaine manière. Lorsque geom est utilisé, cette transformation va être automatiquement réalisée (selon le type de graphique souhaité). Elle peut éventuellement être l’identité.&lt;br /&gt;
Par exemple, la transformation associée par défaut à l’histogramme est « bin », et va créer trois nouvelles variables : count (le nombre d’observation dans chaque classe), density (le pourcentage divisé par la largeur de la classe), et x (le centre de la classe). &lt;br /&gt;
* '''stat_params''' contient les paramètres associés à cette transformation. Par exemple lorsque que l’on souhaite spécifier la largeur des classes utilisées pour l’histogramme, il va s’agir d’un paramètre stat, et non geom.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ainsi, la commande ci-dessous va permettre de tracer un histogramme pour la longueur de la sépale, de couleur orange, avec une longueur de classe de 0.3.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Histogramme&lt;br /&gt;
ggplot(data=iris,aes(x=Sepal.Length)) + layer(geom=&amp;quot;histogram&amp;quot;,&lt;br /&gt;
                                              geom_params=list(fill=&amp;quot;orange&amp;quot;),&lt;br /&gt;
                                              stat=&amp;quot;bin&amp;quot;,&lt;br /&gt;
                                              stat_params=list(binwidth=2))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cependant, cette syntaxe est relativement lourde, et peut être considérablement allégée.&lt;br /&gt;
&lt;br /&gt;
Tout d’abord, l’argument layer(geom=&amp;quot;histogram&amp;quot;,geom_params=list(fill=&amp;quot;orange&amp;quot;) peut être remplacé par l’argument geom_histogram(fill=« orange »). De plus, en tenant compte du fait que chaque type de graphique (geom) est lié à une transformation statistique (stats), on peut finalement simplifier l’argument layer en : geom_histogram(fill=&amp;quot;orange&amp;quot;,binwidth=0.3)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Ainsi, la commande suivante produit le même graphique.&lt;br /&gt;
#simplification&lt;br /&gt;
hist&amp;lt;-ggplot(data=iris,aes(x=Sepal.Length)) &lt;br /&gt;
hist &amp;lt;- hist + geom_histogram(fill=&amp;quot;orange&amp;quot;,binwidth=0.3)&lt;br /&gt;
hist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
NB : il est parfois nécessaire de demander à imprimer le graphique à l’écran.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On va raisonner de cette façon pour la suite. Ainsi les principaux layers pouvant être ajoutés vont être les suivants : &lt;br /&gt;
* geom_XXX() (par example : geom_point(), geom_histogram(), etc.) : correspondant au type de graphique à créer&lt;br /&gt;
* stat_XXX() (par exemple : stat_bin(), stat_smooth(), etc.)  : correspondant à la transformation statistique à utiliser &lt;br /&gt;
* scale_XXX() (par exemple : scale_x_continuous(), : contrôlant l’échelle utilisée pour les axes.  &lt;br /&gt;
* coord_XXX() : permettant de contrôler le système de coordonnées utilisé.&lt;br /&gt;
* facet_XXX() : permettant de faire des graphiques pour des sous-groupes&lt;br /&gt;
* position_XXX() :&lt;br /&gt;
&lt;br /&gt;
==== coord ====&lt;br /&gt;
coord() (système de coordonnées à utiliser) et scale()  (échelles des axes) déterminent la position de l’argument géométrique geom.&lt;br /&gt;
&lt;br /&gt;
Par défaut : coord_cartesian (coordonnées cartésiennes « classiques », x est représenté sur l’axe des abscisses (de gauche à droite), et y sur celui des ordonnées (de bas en haut)&lt;br /&gt;
* coord_flip : inverse l’axe des x et des y&lt;br /&gt;
* coord_equal : même échelle pour l’axe des x et celui des y (cartésiens)&lt;br /&gt;
* coord_polar : coordonnées polaires :&lt;br /&gt;
* préciser la variable qui représente theta (l’angle)&lt;br /&gt;
* coord_trans : permet de transformer « manuellement » les axes (nécessite de préciser la transformation voulue)&lt;br /&gt;
* coord_map :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple, on inverse l'axe des x et celui des y :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## coord flip&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length, Sepal.Width))&lt;br /&gt;
plot&amp;lt;- plot + geom_point(colour=&amp;quot;red&amp;quot;) +geom_smooth(method=&amp;quot;lm&amp;quot;)&lt;br /&gt;
plot&amp;lt;- plot + coord_flip()&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On utilise des coordonnées polaires, et non plus cartésiennes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## coord_polar&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length, Sepal.Width))&lt;br /&gt;
plot&amp;lt;- plot + geom_point(colour=&amp;quot;red&amp;quot;)+geom_smooth(method=&amp;quot;lm&amp;quot;) &lt;br /&gt;
plot&amp;lt;- plot + coord_polar()&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== scale ====&lt;br /&gt;
&lt;br /&gt;
==== position ====&lt;br /&gt;
position : pour ajuster la positions du geom. ???&lt;br /&gt;
Comme pour stat, une modalité est associée par défaut à chaque geom. Il n’est donc pas nécessaire de le spécifier, sauf si l’on souhaite utiliser un argument différent de la valeur par défaut. Si tel est le cas, on peut aussi le spécifier au sein de l’argument geom : geom_XXX(….,position=position_YYY(width=, height=).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il y a deux arguments pour tous les ajustements de position possibles : width et height&lt;br /&gt;
Les ajustement de position disponibles sont : &lt;br /&gt;
* position_identity - default of most geoms&lt;br /&gt;
* position_jitter - default of geom_jitter&lt;br /&gt;
* position_dodge - default of geom_boxplot&lt;br /&gt;
* position_stack - default of geom_bar==geom_histogram and geom_area&lt;br /&gt;
* position_fill - useful for geom_bar==geom_histogram and geom_area&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Changer le jeu de données ===&lt;br /&gt;
Une fois le graphique créé, il est possible de l'appliquer à un jeu de données différent (à condition que les variables correspondent). Par exemple ici, on créee trois bases de données, contenant les mêmes variables. Pour cela, on divise la base initiale selon l’espèce.&lt;br /&gt;
On crée un graphique de type scatter plot, affichant une droite de regression linéaire pour le sous-jeu de données setosa. L’utilisation de '''« %+% »''' va permettre de produire le même graphique, pour le sous-jeu de données versicolor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Data&lt;br /&gt;
iris_setosa &amp;lt;- subset(iris, Species == &amp;quot;setosa&amp;quot;)&lt;br /&gt;
iris_versi &amp;lt;- subset(iris, Species == &amp;quot;versicolor&amp;quot;)&lt;br /&gt;
iris_virgin &amp;lt;- subset(iris, Species == &amp;quot;virginica&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
plot&amp;lt;-ggplot(iris_setosa,aes(Sepal.Length,Sepal.Width))+geom_point(colour=&amp;quot;red&amp;quot;)&lt;br /&gt;
plot&lt;br /&gt;
&lt;br /&gt;
plot %+% iris_versi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ajouter un titre&lt;br /&gt;
Modifier le thème&lt;br /&gt;
&lt;br /&gt;
== Enregistrer le graphique ==&lt;br /&gt;
Il est possible de sauvegarder un graphique affiché à l'écran grâce à la fonction ggsave (valable pour un graphique créé avec QPLOT ou avec GGPLOT).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#sauver le graphique affiché à l'écran&lt;br /&gt;
hist&amp;lt;-ggplot(data=iris,aes(x=Sepal.Length)) &lt;br /&gt;
hist &amp;lt;- hist + geom_histogram(fill=&amp;quot;orange&amp;quot;,binwidth=0.3)&lt;br /&gt;
hist&lt;br /&gt;
&lt;br /&gt;
ggsave(&amp;quot;plot.pdf&amp;quot;, width=4, height=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5932</id>
		<title>Package R ggplot2</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5932"/>
				<updated>2014-07-16T12:09:46Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ggplot2 est un package de R qui permet de réaliser des graphiques plus perfectionnés, et au design plus moderne. Pour cela, il existe deux fonctions : &lt;br /&gt;
* QPLOT (pour &amp;quot;Quick Plot&amp;quot;) qui est la fonction &amp;quot;de base&amp;quot; du package (mais qui offre de grandes possibilités). Syntaxe générale : qplot(x,y,data=database)&lt;br /&gt;
* GGPLOT va permettre de créer des graphiques extrêmement perfectionnés. Sa syntaxe diffère de la syntaxe habituelle : ggplot(data=data,aes=(x,y)) +layers. La fonction ggplot (argument data et aes pour &amp;quot;aesthetic mapping&amp;quot;) va permettre de créer le graphique en lui même, et les layers vont permettre d'ajouter des paramètres modifiant la représentation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##### On installe le package&lt;br /&gt;
install.packages(&amp;quot;ggplot2&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois installé, il suffit de charger le package, avant de vouloir l'utiliser.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge le package&lt;br /&gt;
library(ggplot2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Jeu de données : ==&lt;br /&gt;
Pour illustrer, on utilise le jeu de données « iris » de R, qui contient 150 observations de 5 variables : 4 variables de type quantitatif, et une de type qualitatif (Species).&lt;br /&gt;
* Sepal.Length : longueur de la sépale&lt;br /&gt;
* Sepal.Width : largeur de la sépale Petal.Length : longueur du pétale&lt;br /&gt;
* Petal.Width : largeur du pétale&lt;br /&gt;
* Species : espèce.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge les données&lt;br /&gt;
data(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La fonction head(dataset) permet d’avoir un aperçu des premières lignes du jeu de données : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
head(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Headiris.png]]&lt;br /&gt;
&lt;br /&gt;
Attention ! pour utiliser ggplot2, les données doivent être sous la forme « data.frame », ce qui peut être vérifié par : class(dataset), et corrigé si besoin avec as.data.frame(dataset)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class(iris)&lt;br /&gt;
as.data.frame(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== QPLOT ==&lt;br /&gt;
&lt;br /&gt;
La syntaxe ressemble effectivement à celle de la fonction plot() (package &amp;quot;de base&amp;quot; de R).&lt;br /&gt;
&lt;br /&gt;
''qplot(x, y = NULL, ..., data, facets = NULL, margins = FALSE, geom = &amp;quot;auto&amp;quot;, stat = list(NULL), position = list(NULL), xlim = c(NA,NA), ylim = c(NA, NA), log = &amp;quot;&amp;quot;, main = NULL, xlab = deparse(substitute(x)), ylab = deparse(substitute(y)), asp = NA)''&lt;br /&gt;
&lt;br /&gt;
=== Objet géométrique ===&lt;br /&gt;
&lt;br /&gt;
L’argument geom() (pour objet géométrique) va permettre de réaliser différents graphiques à une ou deux dimensions. &lt;br /&gt;
Par défaut : &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type de la variable&lt;br /&gt;
! Objet par défaut&lt;br /&gt;
|-&lt;br /&gt;
| Quantitative&lt;br /&gt;
| geom =&amp;quot;histogram&amp;quot;  &lt;br /&gt;
|-&lt;br /&gt;
| Qualitative&lt;br /&gt;
| geom=&amp;quot;bar&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Deux variables quantitatives&lt;br /&gt;
| geom=&amp;quot;point&amp;quot; (scatterplot)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
De nombreux graphiques sont possibles (voir geom dans la documentation du package ggplot2, ou  en page 56). Parmi les plus utilisés : &lt;br /&gt;
&lt;br /&gt;
'''Pour une variable à analyser :''' &lt;br /&gt;
* histogram : histogramme (variable quantitative continue)&lt;br /&gt;
* density : trace la courbe de densité (variable quantitative continue)&lt;br /&gt;
* freqpoly : polynôme de fréquence (variable quantitative continue)&lt;br /&gt;
* bar : diagramme en bâton (variable discrète)&lt;br /&gt;
&lt;br /&gt;
'''Pour deux variables :''' &lt;br /&gt;
* point : scatterplot (deux variables continues)&lt;br /&gt;
* smooth : trace une courbe de tendance et son écart-type (deux variables continues)&lt;br /&gt;
* boxplot : boxplot (une variable quantitative continue, une variable discrète)&lt;br /&gt;
&lt;br /&gt;
'''Séries temporelles'''&lt;br /&gt;
* line : trace des lignes entre les points (de la gauche vers la droite)&lt;br /&gt;
* path : trace des lignes entre les points (dans n’importe quelle direction)&lt;br /&gt;
&lt;br /&gt;
A noter également que les objets géométriques peuvent être combinés (à partir du moment où cela est raisonnable sur le plan statistique).&lt;br /&gt;
&lt;br /&gt;
=== Une dimension ===&lt;br /&gt;
&lt;br /&gt;
==== Variable quantitative, continue. ====&lt;br /&gt;
&lt;br /&gt;
===== Histogramme =====&lt;br /&gt;
C'est le graphique tracé par défaut lorsque la variable indiquée est de type quantitatif (continu).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_base_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
On peut l'améliorer : changer la couleur de remplissage (argument '''fill''') et/ou la couleur de la bordure (argument '''colour''') :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;)) ## couleur de remplissage en orange&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;),colour=I(&amp;quot;black&amp;quot;))  ## et bordure en noir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_orange_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_orange_black_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
De plus, QQPLOT permet d’adapter la largeur des classes utilisées pour tracer l’histogramme, et donc d’avoir un degré de précision plus ou moins élevé, grâce à l’argument binwidth.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;),binwidth=1)  ## larges classes&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,binwidth=0.05)  ## classes ressérées&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_large_qplot.png]]&lt;br /&gt;
[[Fichier:histo_serre_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Courbe de densité =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;density&amp;quot;,colour=I(&amp;quot;red&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbe_densité_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Polynôme de fréquence =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;freqpoly&amp;quot;,colour=I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:polyfreq_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Variable discrète =====&lt;br /&gt;
&lt;br /&gt;
Le graphique produit par défaut est un diagramme en bâton (à ne pas confondre avec un histogramme !!! voir [[Statistiques descriptives avec R]]) &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Species,data=iris,geom=&amp;quot;bar&amp;quot;,fill=I(&amp;quot;yellow&amp;quot;)) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barplot_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deux dimensions === &lt;br /&gt;
&lt;br /&gt;
==== Deux variables continues ====&lt;br /&gt;
&lt;br /&gt;
===== Scatterplot =====&lt;br /&gt;
&lt;br /&gt;
Le graphique produit par défaut par la fonction est un nuage de points classique.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Deux variables continues&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;point&amp;quot;) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_base_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Les arguments de la fonction peuvent être modifiés, par exemple pour produire un graphique avec des points bleu (et non noirs).... &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## changer la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour = I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_bleu_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
... ou  pour produire un graphique avec des « + » à la place des points.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## changer le symbole&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,shape=I(3))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_plus_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de modifier la taille des points sur le graphique, à l’aide de l’argument size par exemple pour affiner les points ou les grossir(par défaut, size=I(2)).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## taille&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,size=I(3))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_taille_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Enfin, l’argument alpha est utile en cas de nombre conséquent d’observations qui vont se superposer sur le graphique (ce qui n’est pas le cas ici). En ajustant la transparence, il permet d’améliorer la lisibilité du graphique. Par défaut alpha=I(1), et l’utilisateur peut fixer alpha=I(1/x), avec x le nombre nécessaire d’observations qui se superposent pour obtenir une couleur opaque.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## transparence&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,alpha=I(1/10))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_transparence_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Courbe de tendance =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;smooth&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbe_tendance_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
à noter que la méthode pour tracer la courbe de tendance peut être changée par l’utilisateur grâce à l’argument «method= (par défaut, method=« loess » pour un nombre d’observations faible). Par exemple, method=« lm » permet de tracer une droite de regression linéaire.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;smooth&amp;quot;,method=&amp;quot;lm&amp;quot;) # lm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbelm_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Il peut être utile de combiner l'objet géométrique courbe de tendance avec un nuage de points : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),method=&amp;quot;lm&amp;quot;) #combiné&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_lm_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Le tracé peut être plus ou moins sinueux grâce à l’argument span, allant de 0 à 1.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##sinuosité&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),span=0.2)&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),span=1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_lm_span1_qplot.png]]&lt;br /&gt;
[[Fichier:scatt_lm_span2_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Une variable continue, une discrète ====&lt;br /&gt;
Il n'est pas rare de vouloir représenter la distribution une variable continue, selon différentes sous-populations définies par une variable discrète. Pour cela on peut utiliser un boxplot. (voir [[Statistiques descriptives avec R]]). QPLOT va également permettre des représentations plus perfectionnées des graphiques présentés précédemment, en tenant compte de ces différentes sous-populations.&lt;br /&gt;
&lt;br /&gt;
===== Boxplot =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Une continue, une discrete&lt;br /&gt;
qplot(Species,Sepal.Length, data=iris, geom=&amp;quot;boxplot&amp;quot;,fill=I(&amp;quot;purple&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boxplot_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Sous-populations : sur un même graphique ===== &lt;br /&gt;
&lt;br /&gt;
On peut présenter les observations issues de différentes sous-populations définies par les niveaux de la variable facteur group, soit d’une couleur différente (contour ou remplissage), soit d’un symbole différent.&lt;br /&gt;
Rappel : &lt;br /&gt;
* argument colour = bordure&lt;br /&gt;
* argument fill = remplissage&lt;br /&gt;
* argument shape = symbole&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Par exemple l’argument colour=group permet de présenter d'une couleur différente sur le nuage de points, les observations issues de différentes sous-populations, définies par les niveaux de la variable facteur group.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## ajoute de la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour=Species)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
On peut faire de même sur un graphique de type scatterplot grâce à l’argument shape=group, avec cette fois des symboles différents, selon le niveau de la variable group.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,geom=&amp;quot;point&amp;quot;,shape=Species) #symboles&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_Species_symbole_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
C’est aussi réalisable sur des courbes de densité (argument colour).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# densité&lt;br /&gt;
qplot(Sepal.Length, data=iris,geom=&amp;quot;density&amp;quot;,colour=Species)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:densité_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Pour un histogramme, l’agument à utiliser est fill=group pour modifier le remplissage.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=Species) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Attention à ne pas confondre fill=I(&amp;quot;red&amp;quot;) (utilisé pour paramétrer le remplissage en rouge, valable aussi pour l'argument colour..) et fill=group (utilisé pour changer la couleur selon les sous-populations définies pas la variable group). Déclarer fill=&amp;quot;red&amp;quot; et non fill=I(&amp;quot;red&amp;quot;) aurait pour conséquence de créer une nouvelle variable &amp;quot;red&amp;quot;, et de représenter les observations de couleurs différentes selon les modalités prises par cette variable (soit une seule). R ne produira pas de message d'erreur, mais le graphique sera obtenu de manière erronée.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=&amp;quot;red&amp;quot;) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_faux_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Le graphique correct serait : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;red&amp;quot;)) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_faux_correct_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Sous-populations : différents graphiques ===== &lt;br /&gt;
&lt;br /&gt;
QPLOT offre aussi la possibilité de créer plusieurs graphiques juxtaposés, correspondant à un même graphique pour chacune des différentes sous-populations définies par une variable group. On utilise l’argument facets=. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
facets= . ~ group va présenter les graphiques cote à cote (horizontalement), tandis que facets= group ~ . les superposera (verticalement). &lt;br /&gt;
&lt;br /&gt;
Par exemple ici, l’histogramme pour la variable Sepal.Length, pour chaque espèce. On constate qu’il est préférable de les présenter verticalement, sinon les histogrammes sont écrasés et peu lisibles.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,facets = Species ~ .,geom=&amp;quot;histogram&amp;quot;,binwidth=0.1,fill=I(&amp;quot;orange&amp;quot;)) #ordre vertical&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:facet_vertical_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,facets = . ~ Species,geom=&amp;quot;histogram&amp;quot;,binwidth=0.1,fill=I(&amp;quot;orange&amp;quot;)) #ordre horizontal&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:facet_horizontal_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Données en séries temporelles ====&lt;br /&gt;
&lt;br /&gt;
Line et path sont utilisés dans le cas de séries temporelles. On rappelle que la différence entre les deux provient du fait que path relie les points dans n’importe quelle direction (pourvu qu’il apparaissent en suivant dans la base de données), tandis que line relie les points de gauche à droite.&lt;br /&gt;
&lt;br /&gt;
Ainsi, on utilisera line, par exemple pour tracer l’évolution d’un phénomène en fonction de la date, tandis que l’on utilisera path pour relier les différents points selon l’ordre chronologique, dans un graphique à deux dimensions (dont aucune n’est temporelle).&lt;br /&gt;
&lt;br /&gt;
Pour illustrer, étant donné que les données &amp;quot;iris&amp;quot; sont en coupe transversale, on utilise le jeu de données « longley » qui contient des données macro-économiques annuelles (16 observations, entre 1947 et 1962).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
data(longley) #on charge le jeu de données&lt;br /&gt;
head(longley)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Fichier:head_longley.png]]&lt;br /&gt;
&lt;br /&gt;
==== Geom line ====&lt;br /&gt;
Par exemple, on peut utiliser l’argument line pour tracer l’évolution temporelle du taux de chômage.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#evolution temporelle du nombre de personnes au chômage.&lt;br /&gt;
qplot(Year,Unemployed/Population, data=longley, geom=&amp;quot;line&amp;quot;,colour=I(&amp;quot;red&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:line_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Geom path ====&lt;br /&gt;
On trace ensuite par exemple le nombre de personnes au chômage en fonction du taux de chômage. L’argument path va permettre de relier les points pour visualiser la variation d’année en année. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Nombre de personnes au chômage en fonction du taux de chômage&lt;br /&gt;
qplot(Unemployed/Population,Unemployed, data=longley, geom=&amp;quot;path&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:path_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Ici, même sans ajouter la couleur le graphique est clair (il y a peu d’observations, et les tracés ne se superposent pas). Mais dans d'autres cas, l'ajout de ce dégradé de couleur selon l'année permet de rendre le graphique beaucoup plus lisible. (Trois dimensions).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Ajoute la couleur pour l'année&lt;br /&gt;
qplot(Unemployed/Population,Unemployed, data=longley, geom=&amp;quot;path&amp;quot;,colour=Year)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:path_color_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GGPLOT ==&lt;br /&gt;
&lt;br /&gt;
ggplot est la seconde fonction du package ggplot2, et va permettre de produire des graphiques plus complexes et élaborés. &lt;br /&gt;
De plus, alors que la fonction qplot était relativement similaire dans sa syntaxe des fonctions traditionnelles permettant de tracer des graphiques sous R, la syntaxe utilisée par ggplot est totalement différente.&lt;br /&gt;
&lt;br /&gt;
En effet, la fonction en elle-même n’a que deux arguments : &lt;br /&gt;
* data : les données (sous la forme data.frame)&lt;br /&gt;
* une fonction aes (pour &amp;quot;aesthetic mapping&amp;quot;), qui va contenir les variables et les paramètres utilisés pour l’esthétique du graphique.&lt;br /&gt;
&lt;br /&gt;
ggplot fonctionne par l’ajout de calques (« layers »).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ainsi, la commande suivante ne permet pas de tracer un graph, et nécessite pour cela d’ajouter au minimum un calque minimal.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ggplot(data=iris,aes(Sepal.Length,Sepal.Width)) #no layers in plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Par exemple, si l’on souhaite tracer un nuage ce points, on ajoute le layer geom=« point » sous la forme suivante : ''ggplot(data=data,aes(x,y,….)) + layer(geom=« point »,……)''. C'est pourquoi, il est intéressant de &amp;quot;stocker&amp;quot; le graphique dans un objet R, et de le modifier par l'ajout successif de layers, comme ci-dessous.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Ajoute un layer minimal&lt;br /&gt;
plot&amp;lt;-ggplot(data=iris,aes(Sepal.Length,Sepal.Width))&lt;br /&gt;
plot+layer(geom=&amp;quot;point&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Layer ===&lt;br /&gt;
Layer peut prendre différents arguments (le principal étant geom), par exemple : &lt;br /&gt;
* '''geom''' permet de spécifier le type de graphique souhaité (de manière similaire à l’usage dans la fonction qplot)&lt;br /&gt;
* '''geom_params''' va contenir tous les paramètres associés, permettant de personnaliser le graphique.&lt;br /&gt;
* '''stat''' consiste en une transformation statistique des données. De nouvelles variables vont être créées, qui résument les variables d’une certaine manière. Lorsque geom est utilisé, cette transformation va être automatiquement réalisée (selon le type de graphique souhaité). Elle peut éventuellement être l’identité.&lt;br /&gt;
Par exemple, la transformation associée par défaut à l’histogramme est « bin », et va créer trois nouvelles variables : count (le nombre d’observation dans chaque classe), density (le pourcentage divisé par la largeur de la classe), et x (le centre de la classe). &lt;br /&gt;
* '''stat_params''' contient les paramètres associés à cette transformation. Par exemple lorsque que l’on souhaite spécifier la largeur des classes utilisées pour l’histogramme, il va s’agir d’un paramètre stat, et non geom.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ainsi, la commande ci-dessous va permettre de tracer un histogramme pour la longueur de la sépale, de couleur orange, avec une longueur de classe de 0.3.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Histogramme&lt;br /&gt;
ggplot(data=iris,aes(x=Sepal.Length)) + layer(geom=&amp;quot;histogram&amp;quot;,&lt;br /&gt;
                                              geom_params=list(fill=&amp;quot;orange&amp;quot;),&lt;br /&gt;
                                              stat=&amp;quot;bin&amp;quot;,&lt;br /&gt;
                                              stat_params=list(binwidth=2))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cependant, cette syntaxe est relativement lourde, et peut être considérablement allégée.&lt;br /&gt;
&lt;br /&gt;
Tout d’abord, l’argument layer(geom=&amp;quot;histogram&amp;quot;,geom_params=list(fill=&amp;quot;orange&amp;quot;) peut être remplacé par l’argument geom_histogram(fill=« orange »). De plus, en tenant compte du fait que chaque type de graphique (geom) est lié à une transformation statistique (stats), on peut finalement simplifier l’argument layer en : geom_histogram(fill=&amp;quot;orange&amp;quot;,binwidth=0.3)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Ainsi, la commande suivante produit le même graphique.&lt;br /&gt;
#simplification&lt;br /&gt;
hist&amp;lt;-ggplot(data=iris,aes(x=Sepal.Length)) &lt;br /&gt;
hist &amp;lt;- hist + geom_histogram(fill=&amp;quot;orange&amp;quot;,binwidth=0.3)&lt;br /&gt;
hist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
NB : il est parfois nécessaire de demander à imprimer le graphique à l’écran.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On va raisonner de cette façon pour la suite. Ainsi les principaux layers pouvant être ajoutés vont être les suivants : &lt;br /&gt;
* geom_XXX() (par example : geom_point(), geom_histogram(), etc.) : correspondant au type de graphique à créer&lt;br /&gt;
* stat_XXX() (par exemple : stat_bin(), stat_smooth(), etc.)  : correspondant à la transformation statistique à utiliser &lt;br /&gt;
* scale_XXX() (par exemple : scale_x_continuous(), : contrôlant l’échelle utilisée pour les axes.  &lt;br /&gt;
* coord_XXX() : permettant de contrôler le système de coordonnées utilisé.&lt;br /&gt;
* facet_XXX() : permettant de faire des graphiques pour des sous-groupes&lt;br /&gt;
* position_XXX() :&lt;br /&gt;
&lt;br /&gt;
==== coord ====&lt;br /&gt;
coord() (système de coordonnées à utiliser) et scale()  (échelles des axes) déterminent la position de l’argument géométrique geom.&lt;br /&gt;
&lt;br /&gt;
Par défaut : coord_cartesian (coordonnées cartésiennes « classiques », x est représenté sur l’axe des abscisses (de gauche à droite), et y sur celui des ordonnées (de bas en haut)&lt;br /&gt;
* coord_flip : inverse l’axe des x et des y&lt;br /&gt;
* coord_equal : même échelle pour l’axe des x et celui des y (cartésiens)&lt;br /&gt;
* coord_polar : coordonnées polaires :&lt;br /&gt;
* préciser la variable qui représente theta (l’angle)&lt;br /&gt;
* coord_trans : permet de transformer « manuellement » les axes (nécessite de préciser la transformation voulue)&lt;br /&gt;
* coord_map :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple, on inverse l'axe des x et celui des y :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## coord flip&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length, Sepal.Width))&lt;br /&gt;
plot&amp;lt;- plot + geom_point(colour=&amp;quot;red&amp;quot;) +geom_smooth(method=&amp;quot;lm&amp;quot;)&lt;br /&gt;
plot&amp;lt;- plot + coord_flip()&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On utilise des coordonnées polaires, et non plus cartésiennes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## coord_polar&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length, Sepal.Width))&lt;br /&gt;
plot&amp;lt;- plot + geom_point(colour=&amp;quot;red&amp;quot;)+geom_smooth(method=&amp;quot;lm&amp;quot;) &lt;br /&gt;
plot&amp;lt;- plot + coord_polar()&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== scale ====&lt;br /&gt;
&lt;br /&gt;
==== position ====&lt;br /&gt;
position : pour ajuster la positions du geom. ???&lt;br /&gt;
Comme pour stat, une modalité est associée par défaut à chaque geom. Il n’est donc pas nécessaire de le spécifier, sauf si l’on souhaite utiliser un argument différent de la valeur par défaut. Si tel est le cas, on peut aussi le spécifier au sein de l’argument geom : geom_XXX(….,position=position_YYY(width=, height=).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il y a deux arguments pour tous les ajustements de position possibles : width et height&lt;br /&gt;
Les ajustement de position disponibles sont : &lt;br /&gt;
* position_identity - default of most geoms&lt;br /&gt;
* position_jitter - default of geom_jitter&lt;br /&gt;
* position_dodge - default of geom_boxplot&lt;br /&gt;
* position_stack - default of geom_bar==geom_histogram and geom_area&lt;br /&gt;
* position_fill - useful for geom_bar==geom_histogram and geom_area&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Changer le jeu de données ===&lt;br /&gt;
Une fois le graphique créé, il est possible de l'appliquer à un jeu de données différent (à condition que les variables correspondent). Par exemple ici, on créee trois bases de données, contenant les mêmes variables. Pour cela, on divise la base initiale selon l’espèce.&lt;br /&gt;
On crée un graphique de type scatter plot, affichant une droite de regression linéaire pour le sous-jeu de données setosa. L’utilisation de '''« %+% »''' va permettre de produire le même graphique, pour le sous-jeu de données versicolor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Data&lt;br /&gt;
iris_setosa &amp;lt;- subset(iris, Species == &amp;quot;setosa&amp;quot;)&lt;br /&gt;
iris_versi &amp;lt;- subset(iris, Species == &amp;quot;versicolor&amp;quot;)&lt;br /&gt;
iris_virgin &amp;lt;- subset(iris, Species == &amp;quot;virginica&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
plot&amp;lt;-ggplot(iris_setosa,aes(Sepal.Length,Sepal.Width))+geom_point(colour=&amp;quot;red&amp;quot;)&lt;br /&gt;
plot&lt;br /&gt;
&lt;br /&gt;
plot %+% iris_versi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5931</id>
		<title>Package R ggplot2</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5931"/>
				<updated>2014-07-16T12:04:27Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ggplot2 est un package de R qui permet de réaliser des graphiques plus perfectionnés, et au design plus moderne. Pour cela, il existe deux fonctions : &lt;br /&gt;
* QPLOT (pour &amp;quot;Quick Plot&amp;quot;) qui est la fonction &amp;quot;de base&amp;quot; du package (mais qui offre de grandes possibilités). Syntaxe générale : qplot(x,y,data=database)&lt;br /&gt;
* GGPLOT va permettre de créer des graphiques extrêmement perfectionnés. Sa syntaxe diffère de la syntaxe habituelle : ggplot(data=data,aes=(x,y)) +layers. La fonction ggplot (argument data et aes pour &amp;quot;aesthetic mapping&amp;quot;) va permettre de créer le graphique en lui même, et les layers vont permettre d'ajouter des paramètres modifiant la représentation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##### On installe le package&lt;br /&gt;
install.packages(&amp;quot;ggplot2&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois installé, il suffit de charger le package, avant de vouloir l'utiliser.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge le package&lt;br /&gt;
library(ggplot2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Jeu de données : ==&lt;br /&gt;
Pour illustrer, on utilise le jeu de données « iris » de R, qui contient 150 observations de 5 variables : 4 variables de type quantitatif, et une de type qualitatif (Species).&lt;br /&gt;
* Sepal.Length : longueur de la sépale&lt;br /&gt;
* Sepal.Width : largeur de la sépale Petal.Length : longueur du pétale&lt;br /&gt;
* Petal.Width : largeur du pétale&lt;br /&gt;
* Species : espèce.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge les données&lt;br /&gt;
data(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La fonction head(dataset) permet d’avoir un aperçu des premières lignes du jeu de données : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
head(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Headiris.png]]&lt;br /&gt;
&lt;br /&gt;
Attention ! pour utiliser ggplot2, les données doivent être sous la forme « data.frame », ce qui peut être vérifié par : class(dataset), et corrigé si besoin avec as.data.frame(dataset)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class(iris)&lt;br /&gt;
as.data.frame(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== QPLOT ==&lt;br /&gt;
&lt;br /&gt;
La syntaxe ressemble effectivement à celle de la fonction plot() (package &amp;quot;de base&amp;quot; de R).&lt;br /&gt;
&lt;br /&gt;
''qplot(x, y = NULL, ..., data, facets = NULL, margins = FALSE, geom = &amp;quot;auto&amp;quot;, stat = list(NULL), position = list(NULL), xlim = c(NA,NA), ylim = c(NA, NA), log = &amp;quot;&amp;quot;, main = NULL, xlab = deparse(substitute(x)), ylab = deparse(substitute(y)), asp = NA)''&lt;br /&gt;
&lt;br /&gt;
=== Objet géométrique ===&lt;br /&gt;
&lt;br /&gt;
L’argument geom() (pour objet géométrique) va permettre de réaliser différents graphiques à une ou deux dimensions. &lt;br /&gt;
Par défaut : &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type de la variable&lt;br /&gt;
! Objet par défaut&lt;br /&gt;
|-&lt;br /&gt;
| Quantitative&lt;br /&gt;
| geom =&amp;quot;histogram&amp;quot;  &lt;br /&gt;
|-&lt;br /&gt;
| Qualitative&lt;br /&gt;
| geom=&amp;quot;bar&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Deux variables quantitatives&lt;br /&gt;
| geom=&amp;quot;point&amp;quot; (scatterplot)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
De nombreux graphiques sont possibles (voir geom dans la documentation du package ggplot2, ou  en page 56). Parmi les plus utilisés : &lt;br /&gt;
&lt;br /&gt;
'''Pour une variable à analyser :''' &lt;br /&gt;
* histogram : histogramme (variable quantitative continue)&lt;br /&gt;
* density : trace la courbe de densité (variable quantitative continue)&lt;br /&gt;
* freqpoly : polynôme de fréquence (variable quantitative continue)&lt;br /&gt;
* bar : diagramme en bâton (variable discrète)&lt;br /&gt;
&lt;br /&gt;
'''Pour deux variables :''' &lt;br /&gt;
* point : scatterplot (deux variables continues)&lt;br /&gt;
* smooth : trace une courbe de tendance et son écart-type (deux variables continues)&lt;br /&gt;
* boxplot : boxplot (une variable quantitative continue, une variable discrète)&lt;br /&gt;
&lt;br /&gt;
'''Séries temporelles'''&lt;br /&gt;
* line : trace des lignes entre les points (de la gauche vers la droite)&lt;br /&gt;
* path : trace des lignes entre les points (dans n’importe quelle direction)&lt;br /&gt;
&lt;br /&gt;
A noter également que les objets géométriques peuvent être combinés (à partir du moment où cela est raisonnable sur le plan statistique).&lt;br /&gt;
&lt;br /&gt;
=== Une dimension ===&lt;br /&gt;
&lt;br /&gt;
==== Variable quantitative, continue. ====&lt;br /&gt;
&lt;br /&gt;
===== Histogramme =====&lt;br /&gt;
C'est le graphique tracé par défaut lorsque la variable indiquée est de type quantitatif (continu).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_base_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
On peut l'améliorer : changer la couleur de remplissage (argument '''fill''') et/ou la couleur de la bordure (argument '''colour''') :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;)) ## couleur de remplissage en orange&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;),colour=I(&amp;quot;black&amp;quot;))  ## et bordure en noir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_orange_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_orange_black_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
De plus, QQPLOT permet d’adapter la largeur des classes utilisées pour tracer l’histogramme, et donc d’avoir un degré de précision plus ou moins élevé, grâce à l’argument binwidth.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;),binwidth=1)  ## larges classes&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,binwidth=0.05)  ## classes ressérées&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_large_qplot.png]]&lt;br /&gt;
[[Fichier:histo_serre_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Courbe de densité =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;density&amp;quot;,colour=I(&amp;quot;red&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbe_densité_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Polynôme de fréquence =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;freqpoly&amp;quot;,colour=I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:polyfreq_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Variable discrète =====&lt;br /&gt;
&lt;br /&gt;
Le graphique produit par défaut est un diagramme en bâton (à ne pas confondre avec un histogramme !!! voir [[Statistiques descriptives avec R]]) &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Species,data=iris,geom=&amp;quot;bar&amp;quot;,fill=I(&amp;quot;yellow&amp;quot;)) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barplot_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deux dimensions === &lt;br /&gt;
&lt;br /&gt;
==== Deux variables continues ====&lt;br /&gt;
&lt;br /&gt;
===== Scatterplot =====&lt;br /&gt;
&lt;br /&gt;
Le graphique produit par défaut par la fonction est un nuage de points classique.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Deux variables continues&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;point&amp;quot;) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_base_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Les arguments de la fonction peuvent être modifiés, par exemple pour produire un graphique avec des points bleu (et non noirs).... &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## changer la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour = I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_bleu_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
... ou  pour produire un graphique avec des « + » à la place des points.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## changer le symbole&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,shape=I(3))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_plus_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de modifier la taille des points sur le graphique, à l’aide de l’argument size par exemple pour affiner les points ou les grossir(par défaut, size=I(2)).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## taille&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,size=I(3))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_taille_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Enfin, l’argument alpha est utile en cas de nombre conséquent d’observations qui vont se superposer sur le graphique (ce qui n’est pas le cas ici). En ajustant la transparence, il permet d’améliorer la lisibilité du graphique. Par défaut alpha=I(1), et l’utilisateur peut fixer alpha=I(1/x), avec x le nombre nécessaire d’observations qui se superposent pour obtenir une couleur opaque.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## transparence&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,alpha=I(1/10))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_transparence_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Courbe de tendance =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;smooth&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbe_tendance_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
à noter que la méthode pour tracer la courbe de tendance peut être changée par l’utilisateur grâce à l’argument «method= (par défaut, method=« loess » pour un nombre d’observations faible). Par exemple, method=« lm » permet de tracer une droite de regression linéaire.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;smooth&amp;quot;,method=&amp;quot;lm&amp;quot;) # lm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbelm_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Il peut être utile de combiner l'objet géométrique courbe de tendance avec un nuage de points : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),method=&amp;quot;lm&amp;quot;) #combiné&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_lm_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Le tracé peut être plus ou moins sinueux grâce à l’argument span, allant de 0 à 1.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##sinuosité&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),span=0.2)&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),span=1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_lm_span1_qplot.png]]&lt;br /&gt;
[[Fichier:scatt_lm_span2_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Une variable continue, une discrète ====&lt;br /&gt;
Il n'est pas rare de vouloir représenter la distribution une variable continue, selon différentes sous-populations définies par une variable discrète. Pour cela on peut utiliser un boxplot. (voir [[Statistiques descriptives avec R]]). QPLOT va également permettre des représentations plus perfectionnées des graphiques présentés précédemment, en tenant compte de ces différentes sous-populations.&lt;br /&gt;
&lt;br /&gt;
===== Boxplot =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Une continue, une discrete&lt;br /&gt;
qplot(Species,Sepal.Length, data=iris, geom=&amp;quot;boxplot&amp;quot;,fill=I(&amp;quot;purple&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boxplot_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Sous-populations : sur un même graphique ===== &lt;br /&gt;
&lt;br /&gt;
On peut présenter les observations issues de différentes sous-populations définies par les niveaux de la variable facteur group, soit d’une couleur différente (contour ou remplissage), soit d’un symbole différent.&lt;br /&gt;
Rappel : &lt;br /&gt;
* argument colour = bordure&lt;br /&gt;
* argument fill = remplissage&lt;br /&gt;
* argument shape = symbole&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Par exemple l’argument colour=group permet de présenter d'une couleur différente sur le nuage de points, les observations issues de différentes sous-populations, définies par les niveaux de la variable facteur group.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## ajoute de la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour=Species)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
On peut faire de même sur un graphique de type scatterplot grâce à l’argument shape=group, avec cette fois des symboles différents, selon le niveau de la variable group.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,geom=&amp;quot;point&amp;quot;,shape=Species) #symboles&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_Species_symbole_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
C’est aussi réalisable sur des courbes de densité (argument colour).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# densité&lt;br /&gt;
qplot(Sepal.Length, data=iris,geom=&amp;quot;density&amp;quot;,colour=Species)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:densité_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Pour un histogramme, l’agument à utiliser est fill=group pour modifier le remplissage.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=Species) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Attention à ne pas confondre fill=I(&amp;quot;red&amp;quot;) (utilisé pour paramétrer le remplissage en rouge, valable aussi pour l'argument colour..) et fill=group (utilisé pour changer la couleur selon les sous-populations définies pas la variable group). Déclarer fill=&amp;quot;red&amp;quot; et non fill=I(&amp;quot;red&amp;quot;) aurait pour conséquence de créer une nouvelle variable &amp;quot;red&amp;quot;, et de représenter les observations de couleurs différentes selon les modalités prises par cette variable (soit une seule). R ne produira pas de message d'erreur, mais le graphique sera obtenu de manière erronée.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=&amp;quot;red&amp;quot;) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_faux_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Le graphique correct serait : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;red&amp;quot;)) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_faux_correct_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Sous-populations : différents graphiques ===== &lt;br /&gt;
&lt;br /&gt;
QPLOT offre aussi la possibilité de créer plusieurs graphiques juxtaposés, correspondant à un même graphique pour chacune des différentes sous-populations définies par une variable group. On utilise l’argument facets=. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
facets= . ~ group va présenter les graphiques cote à cote (horizontalement), tandis que facets= group ~ . les superposera (verticalement). &lt;br /&gt;
&lt;br /&gt;
Par exemple ici, l’histogramme pour la variable Sepal.Length, pour chaque espèce. On constate qu’il est préférable de les présenter verticalement, sinon les histogrammes sont écrasés et peu lisibles.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,facets = Species ~ .,geom=&amp;quot;histogram&amp;quot;,binwidth=0.1,fill=I(&amp;quot;orange&amp;quot;)) #ordre vertical&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:facet_vertical_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,facets = . ~ Species,geom=&amp;quot;histogram&amp;quot;,binwidth=0.1,fill=I(&amp;quot;orange&amp;quot;)) #ordre horizontal&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:facet_horizontal_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Données en séries temporelles ====&lt;br /&gt;
&lt;br /&gt;
Line et path sont utilisés dans le cas de séries temporelles. On rappelle que la différence entre les deux provient du fait que path relie les points dans n’importe quelle direction (pourvu qu’il apparaissent en suivant dans la base de données), tandis que line relie les points de gauche à droite.&lt;br /&gt;
&lt;br /&gt;
Ainsi, on utilisera line, par exemple pour tracer l’évolution d’un phénomène en fonction de la date, tandis que l’on utilisera path pour relier les différents points selon l’ordre chronologique, dans un graphique à deux dimensions (dont aucune n’est temporelle).&lt;br /&gt;
&lt;br /&gt;
Pour illustrer, étant donné que les données &amp;quot;iris&amp;quot; sont en coupe transversale, on utilise le jeu de données « longley » qui contient des données macro-économiques annuelles (16 observations, entre 1947 et 1962).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
data(longley) #on charge le jeu de données&lt;br /&gt;
head(longley)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Fichier:head_longley.png]]&lt;br /&gt;
&lt;br /&gt;
==== Geom line ====&lt;br /&gt;
Par exemple, on peut utiliser l’argument line pour tracer l’évolution temporelle du taux de chômage.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#evolution temporelle du nombre de personnes au chômage.&lt;br /&gt;
qplot(Year,Unemployed/Population, data=longley, geom=&amp;quot;line&amp;quot;,colour=I(&amp;quot;red&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:line_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Geom path ====&lt;br /&gt;
On trace ensuite par exemple le nombre de personnes au chômage en fonction du taux de chômage. L’argument path va permettre de relier les points pour visualiser la variation d’année en année. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Nombre de personnes au chômage en fonction du taux de chômage&lt;br /&gt;
qplot(Unemployed/Population,Unemployed, data=longley, geom=&amp;quot;path&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:path_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Ici, même sans ajouter la couleur le graphique est clair (il y a peu d’observations, et les tracés ne se superposent pas). Mais dans d'autres cas, l'ajout de ce dégradé de couleur selon l'année permet de rendre le graphique beaucoup plus lisible. (Trois dimensions).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Ajoute la couleur pour l'année&lt;br /&gt;
qplot(Unemployed/Population,Unemployed, data=longley, geom=&amp;quot;path&amp;quot;,colour=Year)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:path_color_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GGPLOT ==&lt;br /&gt;
&lt;br /&gt;
ggplot est la seconde fonction du package ggplot2, et va permettre de produire des graphiques plus complexes et élaborés. &lt;br /&gt;
De plus, alors que la fonction qplot était relativement similaire dans sa syntaxe des fonctions traditionnelles permettant de tracer des graphiques sous R, la syntaxe utilisée par ggplot est totalement différente.&lt;br /&gt;
&lt;br /&gt;
En effet, la fonction en elle-même n’a que deux arguments : &lt;br /&gt;
* data : les données (sous la forme data.frame)&lt;br /&gt;
* une fonction aes (pour &amp;quot;aesthetic mapping&amp;quot;), qui va contenir les variables et les paramètres utilisés pour l’esthétique du graphique.&lt;br /&gt;
&lt;br /&gt;
ggplot fonctionne par l’ajout de calques (« layers »).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ainsi, la commande suivante ne permet pas de tracer un graph, et nécessite pour cela d’ajouter au minimum un calque minimal.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ggplot(data=iris,aes(Sepal.Length,Sepal.Width)) #no layers in plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Par exemple, si l’on souhaite tracer un nuage ce points, on ajoute le layer geom=« point » sous la forme suivante : ''ggplot(data=data,aes(x,y,….)) + layer(geom=« point »,……)''. C'est pourquoi, il est intéressant de &amp;quot;stocker&amp;quot; le graphique dans un objet R, et de le modifier par l'ajout successif de layers, comme ci-dessous.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Ajoute un layer minimal&lt;br /&gt;
plot&amp;lt;-ggplot(data=iris,aes(Sepal.Length,Sepal.Width))&lt;br /&gt;
plot+layer(geom=&amp;quot;point&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Layer ===&lt;br /&gt;
Layer peut prendre différents arguments (le principal étant geom), par exemple : &lt;br /&gt;
* '''geom''' permet de spécifier le type de graphique souhaité (de manière similaire à l’usage dans la fonction qplot)&lt;br /&gt;
* '''geom_params''' va contenir tous les paramètres associés, permettant de personnaliser le graphique.&lt;br /&gt;
* '''stat''' consiste en une transformation statistique des données. De nouvelles variables vont être créées, qui résument les variables d’une certaine manière. Lorsque geom est utilisé, cette transformation va être automatiquement réalisée (selon le type de graphique souhaité). Elle peut éventuellement être l’identité.&lt;br /&gt;
Par exemple, la transformation associée par défaut à l’histogramme est « bin », et va créer trois nouvelles variables : count (le nombre d’observation dans chaque classe), density (le pourcentage divisé par la largeur de la classe), et x (le centre de la classe). &lt;br /&gt;
* '''stat_params''' contient les paramètres associés à cette transformation. Par exemple lorsque que l’on souhaite spécifier la largeur des classes utilisées pour l’histogramme, il va s’agir d’un paramètre stat, et non geom.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ainsi, la commande ci-dessous va permettre de tracer un histogramme pour la longueur de la sépale, de couleur orange, avec une longueur de classe de 0.3.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Histogramme&lt;br /&gt;
ggplot(data=iris,aes(x=Sepal.Length)) + layer(geom=&amp;quot;histogram&amp;quot;,&lt;br /&gt;
                                              geom_params=list(fill=&amp;quot;orange&amp;quot;),&lt;br /&gt;
                                              stat=&amp;quot;bin&amp;quot;,&lt;br /&gt;
                                              stat_params=list(binwidth=2))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cependant, cette syntaxe est relativement lourde, et peut être considérablement allégée.&lt;br /&gt;
&lt;br /&gt;
Tout d’abord, l’argument layer(geom=&amp;quot;histogram&amp;quot;,geom_params=list(fill=&amp;quot;orange&amp;quot;) peut être remplacé par l’argument geom_histogram(fill=« orange »). De plus, en tenant compte du fait que chaque type de graphique (geom) est lié à une transformation statistique (stats), on peut finalement simplifier l’argument layer en : geom_histogram(fill=&amp;quot;orange&amp;quot;,binwidth=0.3)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Ainsi, la commande suivante produit le même graphique.&lt;br /&gt;
#simplification&lt;br /&gt;
hist&amp;lt;-ggplot(data=iris,aes(x=Sepal.Length)) &lt;br /&gt;
hist &amp;lt;- hist + geom_histogram(fill=&amp;quot;orange&amp;quot;,binwidth=0.3)&lt;br /&gt;
hist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
NB : il est parfois nécessaire de demander à imprimer le graphique à l’écran.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On va raisonner de cette façon pour la suite. Ainsi les principaux layers pouvant être ajoutés vont être les suivants : &lt;br /&gt;
* geom_XXX() (par example : geom_point(), geom_histogram(), etc.) : correspondant au type de graphique à créer&lt;br /&gt;
* stat_XXX() (par exemple : stat_bin(), stat_smooth(), etc.)  : correspondant à la transformation statistique à utiliser &lt;br /&gt;
* scale_XXX() (par exemple : scale_x_continuous(), : contrôlant l’échelle utilisée pour les axes.  &lt;br /&gt;
* coord_XXX() : permettant de contrôler le système de coordonnées utilisé.&lt;br /&gt;
* facet_XXX() : permettant de faire des graphiques pour des sous-groupes&lt;br /&gt;
* position_XXX() :&lt;br /&gt;
&lt;br /&gt;
==== coord ====&lt;br /&gt;
coord() (système de coordonnées à utiliser) et scale()  (échelles des axes) déterminent la position de l’argument géométrique geom.&lt;br /&gt;
&lt;br /&gt;
Par défaut : coord_cartesian (coordonnées cartésiennes « classiques », x est représenté sur l’axe des abscisses (de gauche à droite), et y sur celui des ordonnées (de bas en haut)&lt;br /&gt;
* coord_flip : inverse l’axe des x et des y&lt;br /&gt;
* coord_equal : même échelle pour l’axe des x et celui des y (cartésiens)&lt;br /&gt;
* coord_polar : coordonnées polaires :&lt;br /&gt;
* préciser la variable qui représente theta (l’angle)&lt;br /&gt;
* coord_trans : permet de transformer « manuellement » les axes (nécessite de préciser la transformation voulue)&lt;br /&gt;
* coord_map :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple, on inverse l'axe des x et celui des y :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## coord flip&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length, Sepal.Width))&lt;br /&gt;
plot&amp;lt;- plot + geom_point(colour=&amp;quot;red&amp;quot;) +geom_smooth(method=&amp;quot;lm&amp;quot;)&lt;br /&gt;
plot&amp;lt;- plot + coord_flip()&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On utilise des coordonnées polaires, et non plus cartésiennes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## coord_polar&lt;br /&gt;
plot &amp;lt;- ggplot(iris, aes(Sepal.Length, Sepal.Width))&lt;br /&gt;
plot&amp;lt;- plot + geom_point(colour=&amp;quot;red&amp;quot;)+geom_smooth(method=&amp;quot;lm&amp;quot;) &lt;br /&gt;
plot&amp;lt;- plot + coord_polar()&lt;br /&gt;
plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5930</id>
		<title>Package R ggplot2</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5930"/>
				<updated>2014-07-16T11:57:24Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ggplot2 est un package de R qui permet de réaliser des graphiques plus perfectionnés, et au design plus moderne. Pour cela, il existe deux fonctions : &lt;br /&gt;
* QPLOT (pour &amp;quot;Quick Plot&amp;quot;) qui est la fonction &amp;quot;de base&amp;quot; du package (mais qui offre de grandes possibilités). Syntaxe générale : qplot(x,y,data=database)&lt;br /&gt;
* GGPLOT va permettre de créer des graphiques extrêmement perfectionnés. Sa syntaxe diffère de la syntaxe habituelle : ggplot(data=data,aes=(x,y)) +layers. La fonction ggplot (argument data et aes pour &amp;quot;aesthetic mapping&amp;quot;) va permettre de créer le graphique en lui même, et les layers vont permettre d'ajouter des paramètres modifiant la représentation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##### On installe le package&lt;br /&gt;
install.packages(&amp;quot;ggplot2&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois installé, il suffit de charger le package, avant de vouloir l'utiliser.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge le package&lt;br /&gt;
library(ggplot2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Jeu de données : ==&lt;br /&gt;
Pour illustrer, on utilise le jeu de données « iris » de R, qui contient 150 observations de 5 variables : 4 variables de type quantitatif, et une de type qualitatif (Species).&lt;br /&gt;
* Sepal.Length : longueur de la sépale&lt;br /&gt;
* Sepal.Width : largeur de la sépale Petal.Length : longueur du pétale&lt;br /&gt;
* Petal.Width : largeur du pétale&lt;br /&gt;
* Species : espèce.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge les données&lt;br /&gt;
data(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La fonction head(dataset) permet d’avoir un aperçu des premières lignes du jeu de données : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
head(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Headiris.png]]&lt;br /&gt;
&lt;br /&gt;
Attention ! pour utiliser ggplot2, les données doivent être sous la forme « data.frame », ce qui peut être vérifié par : class(dataset), et corrigé si besoin avec as.data.frame(dataset)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class(iris)&lt;br /&gt;
as.data.frame(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== QPLOT ==&lt;br /&gt;
&lt;br /&gt;
La syntaxe ressemble effectivement à celle de la fonction plot() (package &amp;quot;de base&amp;quot; de R).&lt;br /&gt;
&lt;br /&gt;
''qplot(x, y = NULL, ..., data, facets = NULL, margins = FALSE, geom = &amp;quot;auto&amp;quot;, stat = list(NULL), position = list(NULL), xlim = c(NA,NA), ylim = c(NA, NA), log = &amp;quot;&amp;quot;, main = NULL, xlab = deparse(substitute(x)), ylab = deparse(substitute(y)), asp = NA)''&lt;br /&gt;
&lt;br /&gt;
=== Objet géométrique ===&lt;br /&gt;
&lt;br /&gt;
L’argument geom() (pour objet géométrique) va permettre de réaliser différents graphiques à une ou deux dimensions. &lt;br /&gt;
Par défaut : &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type de la variable&lt;br /&gt;
! Objet par défaut&lt;br /&gt;
|-&lt;br /&gt;
| Quantitative&lt;br /&gt;
| geom =&amp;quot;histogram&amp;quot;  &lt;br /&gt;
|-&lt;br /&gt;
| Qualitative&lt;br /&gt;
| geom=&amp;quot;bar&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Deux variables quantitatives&lt;br /&gt;
| geom=&amp;quot;point&amp;quot; (scatterplot)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
De nombreux graphiques sont possibles (voir geom dans la documentation du package ggplot2, ou  en page 56). Parmi les plus utilisés : &lt;br /&gt;
&lt;br /&gt;
'''Pour une variable à analyser :''' &lt;br /&gt;
* histogram : histogramme (variable quantitative continue)&lt;br /&gt;
* density : trace la courbe de densité (variable quantitative continue)&lt;br /&gt;
* freqpoly : polynôme de fréquence (variable quantitative continue)&lt;br /&gt;
* bar : diagramme en bâton (variable discrète)&lt;br /&gt;
&lt;br /&gt;
'''Pour deux variables :''' &lt;br /&gt;
* point : scatterplot (deux variables continues)&lt;br /&gt;
* smooth : trace une courbe de tendance et son écart-type (deux variables continues)&lt;br /&gt;
* boxplot : boxplot (une variable quantitative continue, une variable discrète)&lt;br /&gt;
&lt;br /&gt;
'''Séries temporelles'''&lt;br /&gt;
* line : trace des lignes entre les points (de la gauche vers la droite)&lt;br /&gt;
* path : trace des lignes entre les points (dans n’importe quelle direction)&lt;br /&gt;
&lt;br /&gt;
A noter également que les objets géométriques peuvent être combinés (à partir du moment où cela est raisonnable sur le plan statistique).&lt;br /&gt;
&lt;br /&gt;
=== Une dimension ===&lt;br /&gt;
&lt;br /&gt;
==== Variable quantitative, continue. ====&lt;br /&gt;
&lt;br /&gt;
===== Histogramme =====&lt;br /&gt;
C'est le graphique tracé par défaut lorsque la variable indiquée est de type quantitatif (continu).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_base_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
On peut l'améliorer : changer la couleur de remplissage (argument '''fill''') et/ou la couleur de la bordure (argument '''colour''') :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;)) ## couleur de remplissage en orange&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;),colour=I(&amp;quot;black&amp;quot;))  ## et bordure en noir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_orange_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_orange_black_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
De plus, QQPLOT permet d’adapter la largeur des classes utilisées pour tracer l’histogramme, et donc d’avoir un degré de précision plus ou moins élevé, grâce à l’argument binwidth.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;),binwidth=1)  ## larges classes&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,binwidth=0.05)  ## classes ressérées&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_large_qplot.png]]&lt;br /&gt;
[[Fichier:histo_serre_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Courbe de densité =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;density&amp;quot;,colour=I(&amp;quot;red&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbe_densité_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Polynôme de fréquence =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;freqpoly&amp;quot;,colour=I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:polyfreq_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Variable discrète =====&lt;br /&gt;
&lt;br /&gt;
Le graphique produit par défaut est un diagramme en bâton (à ne pas confondre avec un histogramme !!! voir [[Statistiques descriptives avec R]]) &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Species,data=iris,geom=&amp;quot;bar&amp;quot;,fill=I(&amp;quot;yellow&amp;quot;)) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barplot_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deux dimensions === &lt;br /&gt;
&lt;br /&gt;
==== Deux variables continues ====&lt;br /&gt;
&lt;br /&gt;
===== Scatterplot =====&lt;br /&gt;
&lt;br /&gt;
Le graphique produit par défaut par la fonction est un nuage de points classique.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Deux variables continues&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;point&amp;quot;) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_base_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Les arguments de la fonction peuvent être modifiés, par exemple pour produire un graphique avec des points bleu (et non noirs).... &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## changer la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour = I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_bleu_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
... ou  pour produire un graphique avec des « + » à la place des points.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## changer le symbole&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,shape=I(3))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_plus_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de modifier la taille des points sur le graphique, à l’aide de l’argument size par exemple pour affiner les points ou les grossir(par défaut, size=I(2)).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## taille&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,size=I(3))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_taille_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Enfin, l’argument alpha est utile en cas de nombre conséquent d’observations qui vont se superposer sur le graphique (ce qui n’est pas le cas ici). En ajustant la transparence, il permet d’améliorer la lisibilité du graphique. Par défaut alpha=I(1), et l’utilisateur peut fixer alpha=I(1/x), avec x le nombre nécessaire d’observations qui se superposent pour obtenir une couleur opaque.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## transparence&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,alpha=I(1/10))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_transparence_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Courbe de tendance =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;smooth&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbe_tendance_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
à noter que la méthode pour tracer la courbe de tendance peut être changée par l’utilisateur grâce à l’argument «method= (par défaut, method=« loess » pour un nombre d’observations faible). Par exemple, method=« lm » permet de tracer une droite de regression linéaire.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;smooth&amp;quot;,method=&amp;quot;lm&amp;quot;) # lm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbelm_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Il peut être utile de combiner l'objet géométrique courbe de tendance avec un nuage de points : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),method=&amp;quot;lm&amp;quot;) #combiné&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_lm_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Le tracé peut être plus ou moins sinueux grâce à l’argument span, allant de 0 à 1.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##sinuosité&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),span=0.2)&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),span=1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_lm_span1_qplot.png]]&lt;br /&gt;
[[Fichier:scatt_lm_span2_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Une variable continue, une discrète ====&lt;br /&gt;
Il n'est pas rare de vouloir représenter la distribution une variable continue, selon différentes sous-populations définies par une variable discrète. Pour cela on peut utiliser un boxplot. (voir [[Statistiques descriptives avec R]]). QPLOT va également permettre des représentations plus perfectionnées des graphiques présentés précédemment, en tenant compte de ces différentes sous-populations.&lt;br /&gt;
&lt;br /&gt;
===== Boxplot =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Une continue, une discrete&lt;br /&gt;
qplot(Species,Sepal.Length, data=iris, geom=&amp;quot;boxplot&amp;quot;,fill=I(&amp;quot;purple&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boxplot_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Sous-populations : sur un même graphique ===== &lt;br /&gt;
&lt;br /&gt;
On peut présenter les observations issues de différentes sous-populations définies par les niveaux de la variable facteur group, soit d’une couleur différente (contour ou remplissage), soit d’un symbole différent.&lt;br /&gt;
Rappel : &lt;br /&gt;
* argument colour = bordure&lt;br /&gt;
* argument fill = remplissage&lt;br /&gt;
* argument shape = symbole&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Par exemple l’argument colour=group permet de présenter d'une couleur différente sur le nuage de points, les observations issues de différentes sous-populations, définies par les niveaux de la variable facteur group.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## ajoute de la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour=Species)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
On peut faire de même sur un graphique de type scatterplot grâce à l’argument shape=group, avec cette fois des symboles différents, selon le niveau de la variable group.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,geom=&amp;quot;point&amp;quot;,shape=Species) #symboles&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_Species_symbole_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
C’est aussi réalisable sur des courbes de densité (argument colour).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# densité&lt;br /&gt;
qplot(Sepal.Length, data=iris,geom=&amp;quot;density&amp;quot;,colour=Species)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:densité_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Pour un histogramme, l’agument à utiliser est fill=group pour modifier le remplissage.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=Species) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Attention à ne pas confondre fill=I(&amp;quot;red&amp;quot;) (utilisé pour paramétrer le remplissage en rouge, valable aussi pour l'argument colour..) et fill=group (utilisé pour changer la couleur selon les sous-populations définies pas la variable group). Déclarer fill=&amp;quot;red&amp;quot; et non fill=I(&amp;quot;red&amp;quot;) aurait pour conséquence de créer une nouvelle variable &amp;quot;red&amp;quot;, et de représenter les observations de couleurs différentes selon les modalités prises par cette variable (soit une seule). R ne produira pas de message d'erreur, mais le graphique sera obtenu de manière erronée.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=&amp;quot;red&amp;quot;) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_faux_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Le graphique correct serait : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;red&amp;quot;)) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_faux_correct_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Sous-populations : différents graphiques ===== &lt;br /&gt;
&lt;br /&gt;
QPLOT offre aussi la possibilité de créer plusieurs graphiques juxtaposés, correspondant à un même graphique pour chacune des différentes sous-populations définies par une variable group. On utilise l’argument facets=. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
facets= . ~ group va présenter les graphiques cote à cote (horizontalement), tandis que facets= group ~ . les superposera (verticalement). &lt;br /&gt;
&lt;br /&gt;
Par exemple ici, l’histogramme pour la variable Sepal.Length, pour chaque espèce. On constate qu’il est préférable de les présenter verticalement, sinon les histogrammes sont écrasés et peu lisibles.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,facets = Species ~ .,geom=&amp;quot;histogram&amp;quot;,binwidth=0.1,fill=I(&amp;quot;orange&amp;quot;)) #ordre vertical&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:facet_vertical_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,facets = . ~ Species,geom=&amp;quot;histogram&amp;quot;,binwidth=0.1,fill=I(&amp;quot;orange&amp;quot;)) #ordre horizontal&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:facet_horizontal_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Données en séries temporelles ====&lt;br /&gt;
&lt;br /&gt;
Line et path sont utilisés dans le cas de séries temporelles. On rappelle que la différence entre les deux provient du fait que path relie les points dans n’importe quelle direction (pourvu qu’il apparaissent en suivant dans la base de données), tandis que line relie les points de gauche à droite.&lt;br /&gt;
&lt;br /&gt;
Ainsi, on utilisera line, par exemple pour tracer l’évolution d’un phénomène en fonction de la date, tandis que l’on utilisera path pour relier les différents points selon l’ordre chronologique, dans un graphique à deux dimensions (dont aucune n’est temporelle).&lt;br /&gt;
&lt;br /&gt;
Pour illustrer, étant donné que les données &amp;quot;iris&amp;quot; sont en coupe transversale, on utilise le jeu de données « longley » qui contient des données macro-économiques annuelles (16 observations, entre 1947 et 1962).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
data(longley) #on charge le jeu de données&lt;br /&gt;
head(longley)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Fichier:head_longley.png]]&lt;br /&gt;
&lt;br /&gt;
==== Geom line ====&lt;br /&gt;
Par exemple, on peut utiliser l’argument line pour tracer l’évolution temporelle du taux de chômage.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#evolution temporelle du nombre de personnes au chômage.&lt;br /&gt;
qplot(Year,Unemployed/Population, data=longley, geom=&amp;quot;line&amp;quot;,colour=I(&amp;quot;red&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:line_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Geom path ====&lt;br /&gt;
On trace ensuite par exemple le nombre de personnes au chômage en fonction du taux de chômage. L’argument path va permettre de relier les points pour visualiser la variation d’année en année. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Nombre de personnes au chômage en fonction du taux de chômage&lt;br /&gt;
qplot(Unemployed/Population,Unemployed, data=longley, geom=&amp;quot;path&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:path_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Ici, même sans ajouter la couleur le graphique est clair (il y a peu d’observations, et les tracés ne se superposent pas). Mais dans d'autres cas, l'ajout de ce dégradé de couleur selon l'année permet de rendre le graphique beaucoup plus lisible. (Trois dimensions).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Ajoute la couleur pour l'année&lt;br /&gt;
qplot(Unemployed/Population,Unemployed, data=longley, geom=&amp;quot;path&amp;quot;,colour=Year)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:path_color_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GGPLOT ==&lt;br /&gt;
&lt;br /&gt;
ggplot est la seconde fonction du package ggplot2, et va permettre de produire des graphiques plus complexes et élaborés. &lt;br /&gt;
De plus, alors que la fonction qplot était relativement similaire dans sa syntaxe des fonctions traditionnelles permettant de tracer des graphiques sous R, la syntaxe utilisée par ggplot est totalement différente.&lt;br /&gt;
&lt;br /&gt;
En effet, la fonction en elle-même n’a que deux arguments : &lt;br /&gt;
* data : les données (sous la forme data.frame)&lt;br /&gt;
* une fonction aes (pour &amp;quot;aesthetic mapping&amp;quot;), qui va contenir les variables et les paramètres utilisés pour l’esthétique du graphique.&lt;br /&gt;
&lt;br /&gt;
ggplot fonctionne par l’ajout de calques (« layers »).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ainsi, la commande suivante ne permet pas de tracer un graph, et nécessite pour cela d’ajouter au minimum un calque minimal.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ggplot(data=iris,aes(Sepal.Length,Sepal.Width)) #no layers in plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Par exemple, si l’on souhaite tracer un nuage ce points, on ajoute le layer geom=« point » sous la forme suivante : ''ggplot(data=data,aes(x,y,….)) + layer(geom=« point »,……)''. C'est pourquoi, il est intéressant de &amp;quot;stocker&amp;quot; le graphique dans un objet R, et de le modifier par l'ajout successif de layers, comme ci-dessous.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Ajoute un layer minimal&lt;br /&gt;
plot&amp;lt;-ggplot(data=iris,aes(Sepal.Length,Sepal.Width))&lt;br /&gt;
plot+layer(geom=&amp;quot;point&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Layer ===&lt;br /&gt;
Layer peut prendre différents arguments (le principal étant geom).&lt;br /&gt;
* '''geom''' permet de spécifier le type de graphique souhaité (de manière similaire à l’usage dans la fonction qplot)&lt;br /&gt;
* '''geom_params''' va contenir tous les paramètres associés, permettant de personnaliser le graphique.&lt;br /&gt;
* '''stat''' consiste en une transformation statistique des données. De nouvelles variables vont être créées, qui résument les variables d’une certaine manière. Lorsque geom est utilisé, cette transformation va être automatiquement réalisée (selon le type de graphique souhaité). Elle peut éventuellement être l’identité.&lt;br /&gt;
Par exemple, la transformation associée par défaut à l’histogramme est « bin », et va créer trois nouvelles variables : count (le nombre d’observation dans chaque classe), density (le pourcentage divisé par la largeur de la classe), et x (le centre de la classe). &lt;br /&gt;
* stat_params contient les paramètres associés à cette transformation. Par exemple lorsque que l’on souhaite spécifier la largeur des classes utilisées pour l’histogramme, il va s’agir d’un paramètre stat, et non geom.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Par exemple, la commande ci-dessous va permettre de tracer un histogramme pour la longueur de la sépale, de couleur orange, avec une longueur de classe de 0.3.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Histogramme&lt;br /&gt;
ggplot(data=iris,aes(x=Sepal.Length)) + layer(geom=&amp;quot;histogram&amp;quot;,&lt;br /&gt;
                                              geom_params=list(fill=&amp;quot;orange&amp;quot;),&lt;br /&gt;
                                              stat=&amp;quot;bin&amp;quot;,&lt;br /&gt;
                                              stat_params=list(binwidth=2))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cependant, cette syntaxe est relativement lourde, et peut être considérablement allégée.&lt;br /&gt;
&lt;br /&gt;
Tout d’abord, l’argument layer(geom=&amp;quot;histogram&amp;quot;,geom_params=list(fill=&amp;quot;orange&amp;quot;) peut être remplacé par l’argument geom_histogram(fill=« orange »). De plus, en tenant compte du fait que chaque type de graphique (geom) est lié à une transformation statistique (stats), on peut finalement simplifier l’argument layer en : geom_histogram(fill=&amp;quot;orange&amp;quot;,binwidth=0.3)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Ainsi, la commande suivante produit le même graphique.&lt;br /&gt;
#simplification&lt;br /&gt;
hist&amp;lt;-ggplot(data=iris,aes(x=Sepal.Length)) &lt;br /&gt;
hist &amp;lt;- hist + geom_histogram(fill=&amp;quot;orange&amp;quot;,binwidth=0.3)&lt;br /&gt;
hist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
NB : il est parfois nécessaire de demander à imprimer le graphique à l’écran.&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5929</id>
		<title>Package R ggplot2</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5929"/>
				<updated>2014-07-16T11:56:25Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ggplot2 est un package de R qui permet de réaliser des graphiques plus perfectionnés, et au design plus moderne. Pour cela, il existe deux fonctions : &lt;br /&gt;
* QPLOT (pour &amp;quot;Quick Plot&amp;quot;) qui est la fonction &amp;quot;de base&amp;quot; du package (mais qui offre de grandes possibilités). Syntaxe générale : qplot(x,y,data=database)&lt;br /&gt;
* GGPLOT va permettre de créer des graphiques extrêmement perfectionnés. Sa syntaxe diffère de la syntaxe habituelle : ggplot(data=data,aes=(x,y)) +layers. La fonction ggplot (argument data et aes pour &amp;quot;aesthetic mapping&amp;quot;) va permettre de créer le graphique en lui même, et les layers vont permettre d'ajouter des paramètres modifiant la représentation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##### On installe le package&lt;br /&gt;
install.packages(&amp;quot;ggplot2&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois installé, il suffit de charger le package, avant de vouloir l'utiliser.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge le package&lt;br /&gt;
library(ggplot2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Jeu de données : ==&lt;br /&gt;
Pour illustrer, on utilise le jeu de données « iris » de R, qui contient 150 observations de 5 variables : 4 variables de type quantitatif, et une de type qualitatif (Species).&lt;br /&gt;
* Sepal.Length : longueur de la sépale&lt;br /&gt;
* Sepal.Width : largeur de la sépale Petal.Length : longueur du pétale&lt;br /&gt;
* Petal.Width : largeur du pétale&lt;br /&gt;
* Species : espèce.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge les données&lt;br /&gt;
data(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La fonction head(dataset) permet d’avoir un aperçu des premières lignes du jeu de données : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
head(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Headiris.png]]&lt;br /&gt;
&lt;br /&gt;
Attention ! pour utiliser ggplot2, les données doivent être sous la forme « data.frame », ce qui peut être vérifié par : class(dataset), et corrigé si besoin avec as.data.frame(dataset)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class(iris)&lt;br /&gt;
as.data.frame(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== QPLOT ==&lt;br /&gt;
&lt;br /&gt;
La syntaxe ressemble effectivement à celle de la fonction plot() (package &amp;quot;de base&amp;quot; de R).&lt;br /&gt;
&lt;br /&gt;
''qplot(x, y = NULL, ..., data, facets = NULL, margins = FALSE, geom = &amp;quot;auto&amp;quot;, stat = list(NULL), position = list(NULL), xlim = c(NA,NA), ylim = c(NA, NA), log = &amp;quot;&amp;quot;, main = NULL, xlab = deparse(substitute(x)), ylab = deparse(substitute(y)), asp = NA)''&lt;br /&gt;
&lt;br /&gt;
=== Objet géométrique ===&lt;br /&gt;
&lt;br /&gt;
L’argument geom() (pour objet géométrique) va permettre de réaliser différents graphiques à une ou deux dimensions. &lt;br /&gt;
Par défaut : &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type de la variable&lt;br /&gt;
! Objet par défaut&lt;br /&gt;
|-&lt;br /&gt;
| Quantitative&lt;br /&gt;
| geom =&amp;quot;histogram&amp;quot;  &lt;br /&gt;
|-&lt;br /&gt;
| Qualitative&lt;br /&gt;
| geom=&amp;quot;bar&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Deux variables quantitatives&lt;br /&gt;
| geom=&amp;quot;point&amp;quot; (scatterplot)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
De nombreux graphiques sont possibles (voir geom dans la documentation du package ggplot2, ou  en page 56). Parmi les plus utilisés : &lt;br /&gt;
&lt;br /&gt;
'''Pour une variable à analyser :''' &lt;br /&gt;
* histogram : histogramme (variable quantitative continue)&lt;br /&gt;
* density : trace la courbe de densité (variable quantitative continue)&lt;br /&gt;
* freqpoly : polynôme de fréquence (variable quantitative continue)&lt;br /&gt;
* bar : diagramme en bâton (variable discrète)&lt;br /&gt;
&lt;br /&gt;
'''Pour deux variables :''' &lt;br /&gt;
* point : scatterplot (deux variables continues)&lt;br /&gt;
* smooth : trace une courbe de tendance et son écart-type (deux variables continues)&lt;br /&gt;
* boxplot : boxplot (une variable quantitative continue, une variable discrète)&lt;br /&gt;
&lt;br /&gt;
'''Séries temporelles'''&lt;br /&gt;
* line : trace des lignes entre les points (de la gauche vers la droite)&lt;br /&gt;
* path : trace des lignes entre les points (dans n’importe quelle direction)&lt;br /&gt;
&lt;br /&gt;
A noter également que les objets géométriques peuvent être combinés (à partir du moment où cela est raisonnable sur le plan statistique).&lt;br /&gt;
&lt;br /&gt;
=== Une dimension ===&lt;br /&gt;
&lt;br /&gt;
==== Variable quantitative, continue. ====&lt;br /&gt;
&lt;br /&gt;
===== Histogramme =====&lt;br /&gt;
C'est le graphique tracé par défaut lorsque la variable indiquée est de type quantitatif (continu).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_base_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
On peut l'améliorer : changer la couleur de remplissage (argument '''fill''') et/ou la couleur de la bordure (argument '''colour''') :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;)) ## couleur de remplissage en orange&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;),colour=I(&amp;quot;black&amp;quot;))  ## et bordure en noir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_orange_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_orange_black_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
De plus, QQPLOT permet d’adapter la largeur des classes utilisées pour tracer l’histogramme, et donc d’avoir un degré de précision plus ou moins élevé, grâce à l’argument binwidth.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;),binwidth=1)  ## larges classes&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,binwidth=0.05)  ## classes ressérées&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_large_qplot.png]]&lt;br /&gt;
[[Fichier:histo_serre_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Courbe de densité =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;density&amp;quot;,colour=I(&amp;quot;red&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbe_densité_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Polynôme de fréquence =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;freqpoly&amp;quot;,colour=I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:polyfreq_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Variable discrète =====&lt;br /&gt;
&lt;br /&gt;
Le graphique produit par défaut est un diagramme en bâton (à ne pas confondre avec un histogramme !!! voir [[Statistiques descriptives avec R]]) &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Species,data=iris,geom=&amp;quot;bar&amp;quot;,fill=I(&amp;quot;yellow&amp;quot;)) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barplot_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deux dimensions === &lt;br /&gt;
&lt;br /&gt;
==== Deux variables continues ====&lt;br /&gt;
&lt;br /&gt;
===== Scatterplot =====&lt;br /&gt;
&lt;br /&gt;
Le graphique produit par défaut par la fonction est un nuage de points classique.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Deux variables continues&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;point&amp;quot;) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_base_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Les arguments de la fonction peuvent être modifiés, par exemple pour produire un graphique avec des points bleu (et non noirs).... &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## changer la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour = I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_bleu_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
... ou  pour produire un graphique avec des « + » à la place des points.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## changer le symbole&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,shape=I(3))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_plus_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de modifier la taille des points sur le graphique, à l’aide de l’argument size par exemple pour affiner les points ou les grossir(par défaut, size=I(2)).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## taille&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,size=I(3))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_taille_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Enfin, l’argument alpha est utile en cas de nombre conséquent d’observations qui vont se superposer sur le graphique (ce qui n’est pas le cas ici). En ajustant la transparence, il permet d’améliorer la lisibilité du graphique. Par défaut alpha=I(1), et l’utilisateur peut fixer alpha=I(1/x), avec x le nombre nécessaire d’observations qui se superposent pour obtenir une couleur opaque.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## transparence&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,alpha=I(1/10))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_transparence_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Courbe de tendance =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;smooth&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbe_tendance_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
à noter que la méthode pour tracer la courbe de tendance peut être changée par l’utilisateur grâce à l’argument «method= (par défaut, method=« loess » pour un nombre d’observations faible). Par exemple, method=« lm » permet de tracer une droite de regression linéaire.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;smooth&amp;quot;,method=&amp;quot;lm&amp;quot;) # lm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbelm_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Il peut être utile de combiner l'objet géométrique courbe de tendance avec un nuage de points : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),method=&amp;quot;lm&amp;quot;) #combiné&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_lm_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Le tracé peut être plus ou moins sinueux grâce à l’argument span, allant de 0 à 1.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##sinuosité&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),span=0.2)&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),span=1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_lm_span1_qplot.png]]&lt;br /&gt;
[[Fichier:scatt_lm_span2_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Une variable continue, une discrète ====&lt;br /&gt;
Il n'est pas rare de vouloir représenter la distribution une variable continue, selon différentes sous-populations définies par une variable discrète. Pour cela on peut utiliser un boxplot. (voir [[Statistiques descriptives avec R]]). QPLOT va également permettre des représentations plus perfectionnées des graphiques présentés précédemment, en tenant compte de ces différentes sous-populations.&lt;br /&gt;
&lt;br /&gt;
===== Boxplot =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Une continue, une discrete&lt;br /&gt;
qplot(Species,Sepal.Length, data=iris, geom=&amp;quot;boxplot&amp;quot;,fill=I(&amp;quot;purple&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boxplot_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Sous-populations : sur un même graphique ===== &lt;br /&gt;
&lt;br /&gt;
On peut présenter les observations issues de différentes sous-populations définies par les niveaux de la variable facteur group, soit d’une couleur différente (contour ou remplissage), soit d’un symbole différent.&lt;br /&gt;
Rappel : &lt;br /&gt;
* argument colour = bordure&lt;br /&gt;
* argument fill = remplissage&lt;br /&gt;
* argument shape = symbole&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Par exemple l’argument colour=group permet de présenter d'une couleur différente sur le nuage de points, les observations issues de différentes sous-populations, définies par les niveaux de la variable facteur group.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## ajoute de la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour=Species)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
On peut faire de même sur un graphique de type scatterplot grâce à l’argument shape=group, avec cette fois des symboles différents, selon le niveau de la variable group.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,geom=&amp;quot;point&amp;quot;,shape=Species) #symboles&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_Species_symbole_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
C’est aussi réalisable sur des courbes de densité (argument colour).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# densité&lt;br /&gt;
qplot(Sepal.Length, data=iris,geom=&amp;quot;density&amp;quot;,colour=Species)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:densité_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Pour un histogramme, l’agument à utiliser est fill=group pour modifier le remplissage.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=Species) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Attention à ne pas confondre fill=I(&amp;quot;red&amp;quot;) (utilisé pour paramétrer le remplissage en rouge, valable aussi pour l'argument colour..) et fill=group (utilisé pour changer la couleur selon les sous-populations définies pas la variable group). Déclarer fill=&amp;quot;red&amp;quot; et non fill=I(&amp;quot;red&amp;quot;) aurait pour conséquence de créer une nouvelle variable &amp;quot;red&amp;quot;, et de représenter les observations de couleurs différentes selon les modalités prises par cette variable (soit une seule). R ne produira pas de message d'erreur, mais le graphique sera obtenu de manière erronée.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=&amp;quot;red&amp;quot;) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_faux_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Le graphique correct serait : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;red&amp;quot;)) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_faux_correct_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Sous-populations : différents graphiques ===== &lt;br /&gt;
&lt;br /&gt;
QPLOT offre aussi la possibilité de créer plusieurs graphiques juxtaposés, correspondant à un même graphique pour chacune des différentes sous-populations définies par une variable group. On utilise l’argument facets=. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
facets= . ~ group va présenter les graphiques cote à cote (horizontalement), tandis que facets= group ~ . les superposera (verticalement). &lt;br /&gt;
&lt;br /&gt;
Par exemple ici, l’histogramme pour la variable Sepal.Length, pour chaque espèce. On constate qu’il est préférable de les présenter verticalement, sinon les histogrammes sont écrasés et peu lisibles.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,facets = Species ~ .,geom=&amp;quot;histogram&amp;quot;,binwidth=0.1,fill=I(&amp;quot;orange&amp;quot;)) #ordre vertical&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:facet_vertical_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,facets = . ~ Species,geom=&amp;quot;histogram&amp;quot;,binwidth=0.1,fill=I(&amp;quot;orange&amp;quot;)) #ordre horizontal&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:facet_horizontal_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Données en séries temporelles ====&lt;br /&gt;
&lt;br /&gt;
Line et path sont utilisés dans le cas de séries temporelles. On rappelle que la différence entre les deux provient du fait que path relie les points dans n’importe quelle direction (pourvu qu’il apparaissent en suivant dans la base de données), tandis que line relie les points de gauche à droite.&lt;br /&gt;
&lt;br /&gt;
Ainsi, on utilisera line, par exemple pour tracer l’évolution d’un phénomène en fonction de la date, tandis que l’on utilisera path pour relier les différents points selon l’ordre chronologique, dans un graphique à deux dimensions (dont aucune n’est temporelle).&lt;br /&gt;
&lt;br /&gt;
Pour illustrer, étant donné que les données &amp;quot;iris&amp;quot; sont en coupe transversale, on utilise le jeu de données « longley » qui contient des données macro-économiques annuelles (16 observations, entre 1947 et 1962).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
data(longley) #on charge le jeu de données&lt;br /&gt;
head(longley)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Fichier:head_longley.png]]&lt;br /&gt;
&lt;br /&gt;
==== Geom line ====&lt;br /&gt;
Par exemple, on peut utiliser l’argument line pour tracer l’évolution temporelle du taux de chômage.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#evolution temporelle du nombre de personnes au chômage.&lt;br /&gt;
qplot(Year,Unemployed/Population, data=longley, geom=&amp;quot;line&amp;quot;,colour=I(&amp;quot;red&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:line_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Geom path ====&lt;br /&gt;
On trace ensuite par exemple le nombre de personnes au chômage en fonction du taux de chômage. L’argument path va permettre de relier les points pour visualiser la variation d’année en année. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Nombre de personnes au chômage en fonction du taux de chômage&lt;br /&gt;
qplot(Unemployed/Population,Unemployed, data=longley, geom=&amp;quot;path&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:path_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Ici, même sans ajouter la couleur le graphique est clair (il y a peu d’observations, et les tracés ne se superposent pas). Mais dans d'autres cas, l'ajout de ce dégradé de couleur selon l'année permet de rendre le graphique beaucoup plus lisible. (Trois dimensions).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Ajoute la couleur pour l'année&lt;br /&gt;
qplot(Unemployed/Population,Unemployed, data=longley, geom=&amp;quot;path&amp;quot;,colour=Year)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:path_color_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GGPLOT ==&lt;br /&gt;
&lt;br /&gt;
ggplot est la seconde fonction du package ggplot2, et va permettre de produire des graphiques plus complexes et élaborés. &lt;br /&gt;
De plus, alors que la fonction qplot était relativement similaire dans sa syntaxe des fonctions traditionnelles permettant de tracer des graphiques sous R, la syntaxe utilisée par ggplot est totalement différente.&lt;br /&gt;
&lt;br /&gt;
En effet, la fonction en elle-même n’a que deux arguments : &lt;br /&gt;
* data : les données (sous la forme data.frame)&lt;br /&gt;
* une fonction aes (pour &amp;quot;aesthetic mapping&amp;quot;), qui va contenir les variables et les paramètres utilisés pour l’esthétique du graphique.&lt;br /&gt;
&lt;br /&gt;
ggplot fonctionne par l’ajout de calques (« layers »).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ainsi, la commande suivante ne permet pas de tracer un graph, et nécessite pour cela d’ajouter au minimum un calque minimal.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ggplot(data=iris,aes(Sepal.Length,Sepal.Width)) #no layers in plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Par exemple, si l’on souhaite tracer un nuage ce points, on ajoute le layer geom=« point » sous la forme suivante : ''ggplot(data=data,aes(x,y,….)) + layer(geom=« point »,……)''. C'est pourquoi, il est intéressant de &amp;quot;stocker&amp;quot; le graphique dans un objet R, et de le modifier par l'ajout successif de layers, comme ci-dessous.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Ajoute un layer minimal&lt;br /&gt;
plot&amp;lt;-ggplot(data=iris,aes(Sepal.Length,Sepal.Width))&lt;br /&gt;
plot+layer(geom=&amp;quot;point&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Layer ===&lt;br /&gt;
Layer peut prendre les arguments suivants (qui sont détaillés après), et le principal argument est geom (objet géométrique à tracer).&lt;br /&gt;
geom,geom_params,stat,stat_param,data,mapping,position. &lt;br /&gt;
* '''geom''' permet de spécifier le type de graphique souhaité (de manière similaire à l’usage dans la fonction qplot)&lt;br /&gt;
* '''geom_params''' va contenir tous les paramètres associés, permettant de personnaliser le graphique.&lt;br /&gt;
* '''stat''' consiste en une transformation statistique des données. De nouvelles variables vont être créées, qui résument les variables d’une certaine manière. Lorsque geom est utilisé, cette transformation va être automatiquement réalisée (selon le type de graphique souhaité). Elle peut éventuellement être l’identité.&lt;br /&gt;
Par exemple, la transformation associée par défaut à l’histogramme est « bin », et va créer trois nouvelles variables : count (le nombre d’observation dans chaque classe), density (le pourcentage divisé par la largeur de la classe), et x (le centre de la classe). &lt;br /&gt;
* stat_params contient les paramètres associés à cette transformation. Par exemple lorsque que l’on souhaite spécifier la largeur des classes utilisées pour l’histogramme, il va s’agir d’un paramètre stat, et non geom.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Par exemple, la commande ci-dessous va permettre de tracer un histogramme pour la longueur de la sépale, de couleur orange, avec une longueur de classe de 0.3.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Histogramme&lt;br /&gt;
ggplot(data=iris,aes(x=Sepal.Length)) + layer(geom=&amp;quot;histogram&amp;quot;,&lt;br /&gt;
                                              geom_params=list(fill=&amp;quot;orange&amp;quot;),&lt;br /&gt;
                                              stat=&amp;quot;bin&amp;quot;,&lt;br /&gt;
                                              stat_params=list(binwidth=2))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cependant, cette syntaxe est relativement lourde, et peut être considérablement allégée.&lt;br /&gt;
&lt;br /&gt;
Tout d’abord, l’argument layer(geom=&amp;quot;histogram&amp;quot;,geom_params=list(fill=&amp;quot;orange&amp;quot;) peut être remplacé par l’argument geom_histogram(fill=« orange »). De plus, en tenant compte du fait que chaque type de graphique (geom) est lié à une transformation statistique (stats), on peut finalement simplifier l’argument layer en : geom_histogram(fill=&amp;quot;orange&amp;quot;,binwidth=0.3)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Ainsi, la commande suivante produit le même graphique.&lt;br /&gt;
#simplification&lt;br /&gt;
hist&amp;lt;-ggplot(data=iris,aes(x=Sepal.Length)) &lt;br /&gt;
hist &amp;lt;- hist + geom_histogram(fill=&amp;quot;orange&amp;quot;,binwidth=0.3)&lt;br /&gt;
hist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
NB : il est parfois nécessaire de demander à imprimer le graphique à l’écran.&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5928</id>
		<title>Package R ggplot2</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5928"/>
				<updated>2014-07-16T11:53:29Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ggplot2 est un package de R qui permet de réaliser des graphiques plus perfectionnés, et au design plus moderne. Pour cela, il existe deux fonctions : &lt;br /&gt;
* QPLOT (pour &amp;quot;Quick Plot&amp;quot;) qui est la fonction &amp;quot;de base&amp;quot; du package (mais qui offre de grandes possibilités). Syntaxe générale : qplot(x,y,data=database)&lt;br /&gt;
* GGPLOT va permettre de créer des graphiques extrêmement perfectionnés. Sa syntaxe diffère de la syntaxe habituelle : ggplot(data=data,aes=(x,y)) +layers. La fonction ggplot (argument data et aes pour &amp;quot;aesthetic mapping&amp;quot;) va permettre de créer le graphique en lui même, et les layers vont permettre d'ajouter des paramètres modifiant la représentation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##### On installe le package&lt;br /&gt;
install.packages(&amp;quot;ggplot2&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois installé, il suffit de charger le package, avant de vouloir l'utiliser.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge le package&lt;br /&gt;
library(ggplot2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Jeu de données : ==&lt;br /&gt;
Pour illustrer, on utilise le jeu de données « iris » de R, qui contient 150 observations de 5 variables : 4 variables de type quantitatif, et une de type qualitatif (Species).&lt;br /&gt;
* Sepal.Length : longueur de la sépale&lt;br /&gt;
* Sepal.Width : largeur de la sépale Petal.Length : longueur du pétale&lt;br /&gt;
* Petal.Width : largeur du pétale&lt;br /&gt;
* Species : espèce.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge les données&lt;br /&gt;
data(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La fonction head(dataset) permet d’avoir un aperçu des premières lignes du jeu de données : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
head(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Headiris.png]]&lt;br /&gt;
&lt;br /&gt;
Attention ! pour utiliser ggplot2, les données doivent être sous la forme « data.frame », ce qui peut être vérifié par : class(dataset), et corrigé si besoin avec as.data.frame(dataset)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class(iris)&lt;br /&gt;
as.data.frame(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== QPLOT ==&lt;br /&gt;
&lt;br /&gt;
La syntaxe ressemble effectivement à celle de la fonction plot() (package &amp;quot;de base&amp;quot; de R).&lt;br /&gt;
&lt;br /&gt;
''qplot(x, y = NULL, ..., data, facets = NULL, margins = FALSE, geom = &amp;quot;auto&amp;quot;, stat = list(NULL), position = list(NULL), xlim = c(NA,NA), ylim = c(NA, NA), log = &amp;quot;&amp;quot;, main = NULL, xlab = deparse(substitute(x)), ylab = deparse(substitute(y)), asp = NA)''&lt;br /&gt;
&lt;br /&gt;
=== Objet géométrique ===&lt;br /&gt;
&lt;br /&gt;
L’argument geom() (pour objet géométrique) va permettre de réaliser différents graphiques à une ou deux dimensions. &lt;br /&gt;
Par défaut : &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type de la variable&lt;br /&gt;
! Objet par défaut&lt;br /&gt;
|-&lt;br /&gt;
| Quantitative&lt;br /&gt;
| geom =&amp;quot;histogram&amp;quot;  &lt;br /&gt;
|-&lt;br /&gt;
| Qualitative&lt;br /&gt;
| geom=&amp;quot;bar&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Deux variables quantitatives&lt;br /&gt;
| geom=&amp;quot;point&amp;quot; (scatterplot)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
De nombreux graphiques sont possibles (voir geom dans la documentation du package ggplot2, ou  en page 56). Parmi les plus utilisés : &lt;br /&gt;
&lt;br /&gt;
'''Pour une variable à analyser :''' &lt;br /&gt;
* histogram : histogramme (variable quantitative continue)&lt;br /&gt;
* density : trace la courbe de densité (variable quantitative continue)&lt;br /&gt;
* freqpoly : polynôme de fréquence (variable quantitative continue)&lt;br /&gt;
* bar : diagramme en bâton (variable discrète)&lt;br /&gt;
&lt;br /&gt;
'''Pour deux variables :''' &lt;br /&gt;
* point : scatterplot (deux variables continues)&lt;br /&gt;
* smooth : trace une courbe de tendance et son écart-type (deux variables continues)&lt;br /&gt;
* boxplot : boxplot (une variable quantitative continue, une variable discrète)&lt;br /&gt;
&lt;br /&gt;
'''Séries temporelles'''&lt;br /&gt;
* line : trace des lignes entre les points (de la gauche vers la droite)&lt;br /&gt;
* path : trace des lignes entre les points (dans n’importe quelle direction)&lt;br /&gt;
&lt;br /&gt;
A noter également que les objets géométriques peuvent être combinés (à partir du moment où cela est raisonnable sur le plan statistique).&lt;br /&gt;
&lt;br /&gt;
=== Une dimension ===&lt;br /&gt;
&lt;br /&gt;
==== Variable quantitative, continue. ====&lt;br /&gt;
&lt;br /&gt;
===== Histogramme =====&lt;br /&gt;
C'est le graphique tracé par défaut lorsque la variable indiquée est de type quantitatif (continu).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_base_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
On peut l'améliorer : changer la couleur de remplissage (argument '''fill''') et/ou la couleur de la bordure (argument '''colour''') :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;)) ## couleur de remplissage en orange&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;),colour=I(&amp;quot;black&amp;quot;))  ## et bordure en noir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_orange_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_orange_black_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
De plus, QQPLOT permet d’adapter la largeur des classes utilisées pour tracer l’histogramme, et donc d’avoir un degré de précision plus ou moins élevé, grâce à l’argument binwidth.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;),binwidth=1)  ## larges classes&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,binwidth=0.05)  ## classes ressérées&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_large_qplot.png]]&lt;br /&gt;
[[Fichier:histo_serre_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Courbe de densité =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;density&amp;quot;,colour=I(&amp;quot;red&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbe_densité_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Polynôme de fréquence =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;freqpoly&amp;quot;,colour=I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:polyfreq_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Variable discrète =====&lt;br /&gt;
&lt;br /&gt;
Le graphique produit par défaut est un diagramme en bâton (à ne pas confondre avec un histogramme !!! voir [[Statistiques descriptives avec R]]) &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Species,data=iris,geom=&amp;quot;bar&amp;quot;,fill=I(&amp;quot;yellow&amp;quot;)) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barplot_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deux dimensions === &lt;br /&gt;
&lt;br /&gt;
==== Deux variables continues ====&lt;br /&gt;
&lt;br /&gt;
===== Scatterplot =====&lt;br /&gt;
&lt;br /&gt;
Le graphique produit par défaut par la fonction est un nuage de points classique.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Deux variables continues&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;point&amp;quot;) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_base_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Les arguments de la fonction peuvent être modifiés, par exemple pour produire un graphique avec des points bleu (et non noirs).... &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## changer la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour = I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_bleu_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
... ou  pour produire un graphique avec des « + » à la place des points.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## changer le symbole&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,shape=I(3))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_plus_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de modifier la taille des points sur le graphique, à l’aide de l’argument size par exemple pour affiner les points ou les grossir(par défaut, size=I(2)).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## taille&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,size=I(3))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_taille_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Enfin, l’argument alpha est utile en cas de nombre conséquent d’observations qui vont se superposer sur le graphique (ce qui n’est pas le cas ici). En ajustant la transparence, il permet d’améliorer la lisibilité du graphique. Par défaut alpha=I(1), et l’utilisateur peut fixer alpha=I(1/x), avec x le nombre nécessaire d’observations qui se superposent pour obtenir une couleur opaque.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## transparence&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,alpha=I(1/10))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_transparence_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Courbe de tendance =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;smooth&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbe_tendance_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
à noter que la méthode pour tracer la courbe de tendance peut être changée par l’utilisateur grâce à l’argument «method= (par défaut, method=« loess » pour un nombre d’observations faible). Par exemple, method=« lm » permet de tracer une droite de regression linéaire.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;smooth&amp;quot;,method=&amp;quot;lm&amp;quot;) # lm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbelm_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Il peut être utile de combiner l'objet géométrique courbe de tendance avec un nuage de points : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),method=&amp;quot;lm&amp;quot;) #combiné&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_lm_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Le tracé peut être plus ou moins sinueux grâce à l’argument span, allant de 0 à 1.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##sinuosité&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),span=0.2)&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),span=1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_lm_span1_qplot.png]]&lt;br /&gt;
[[Fichier:scatt_lm_span2_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Une variable continue, une discrète ====&lt;br /&gt;
Il n'est pas rare de vouloir représenter la distribution une variable continue, selon différentes sous-populations définies par une variable discrète. Pour cela on peut utiliser un boxplot. (voir [[Statistiques descriptives avec R]]). QPLOT va également permettre des représentations plus perfectionnées des graphiques présentés précédemment, en tenant compte de ces différentes sous-populations.&lt;br /&gt;
&lt;br /&gt;
===== Boxplot =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Une continue, une discrete&lt;br /&gt;
qplot(Species,Sepal.Length, data=iris, geom=&amp;quot;boxplot&amp;quot;,fill=I(&amp;quot;purple&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boxplot_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Sous-populations : sur un même graphique ===== &lt;br /&gt;
&lt;br /&gt;
On peut présenter les observations issues de différentes sous-populations définies par les niveaux de la variable facteur group, soit d’une couleur différente (contour ou remplissage), soit d’un symbole différent.&lt;br /&gt;
Rappel : &lt;br /&gt;
* argument colour = bordure&lt;br /&gt;
* argument fill = remplissage&lt;br /&gt;
* argument shape = symbole&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Par exemple l’argument colour=group permet de présenter d'une couleur différente sur le nuage de points, les observations issues de différentes sous-populations, définies par les niveaux de la variable facteur group.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## ajoute de la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour=Species)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
On peut faire de même sur un graphique de type scatterplot grâce à l’argument shape=group, avec cette fois des symboles différents, selon le niveau de la variable group.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,geom=&amp;quot;point&amp;quot;,shape=Species) #symboles&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_Species_symbole_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
C’est aussi réalisable sur des courbes de densité (argument colour).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# densité&lt;br /&gt;
qplot(Sepal.Length, data=iris,geom=&amp;quot;density&amp;quot;,colour=Species)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:densité_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Pour un histogramme, l’agument à utiliser est fill=group pour modifier le remplissage.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=Species) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Attention à ne pas confondre fill=I(&amp;quot;red&amp;quot;) (utilisé pour paramétrer le remplissage en rouge, valable aussi pour l'argument colour..) et fill=group (utilisé pour changer la couleur selon les sous-populations définies pas la variable group). Déclarer fill=&amp;quot;red&amp;quot; et non fill=I(&amp;quot;red&amp;quot;) aurait pour conséquence de créer une nouvelle variable &amp;quot;red&amp;quot;, et de représenter les observations de couleurs différentes selon les modalités prises par cette variable (soit une seule). R ne produira pas de message d'erreur, mais le graphique sera obtenu de manière erronée.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=&amp;quot;red&amp;quot;) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_faux_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Le graphique correct serait : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;red&amp;quot;)) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_faux_correct_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Sous-populations : différents graphiques ===== &lt;br /&gt;
&lt;br /&gt;
QPLOT offre aussi la possibilité de créer plusieurs graphiques juxtaposés, correspondant à un même graphique pour chacune des différentes sous-populations définies par une variable group. On utilise l’argument facets=. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
facets= . ~ group va présenter les graphiques cote à cote (horizontalement), tandis que facets= group ~ . les superposera (verticalement). &lt;br /&gt;
&lt;br /&gt;
Par exemple ici, l’histogramme pour la variable Sepal.Length, pour chaque espèce. On constate qu’il est préférable de les présenter verticalement, sinon les histogrammes sont écrasés et peu lisibles.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,facets = Species ~ .,geom=&amp;quot;histogram&amp;quot;,binwidth=0.1,fill=I(&amp;quot;orange&amp;quot;)) #ordre vertical&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:facet_vertical_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,facets = . ~ Species,geom=&amp;quot;histogram&amp;quot;,binwidth=0.1,fill=I(&amp;quot;orange&amp;quot;)) #ordre horizontal&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:facet_horizontal_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Données en séries temporelles ====&lt;br /&gt;
&lt;br /&gt;
Line et path sont utilisés dans le cas de séries temporelles. On rappelle que la différence entre les deux provient du fait que path relie les points dans n’importe quelle direction (pourvu qu’il apparaissent en suivant dans la base de données), tandis que line relie les points de gauche à droite.&lt;br /&gt;
&lt;br /&gt;
Ainsi, on utilisera line, par exemple pour tracer l’évolution d’un phénomène en fonction de la date, tandis que l’on utilisera path pour relier les différents points selon l’ordre chronologique, dans un graphique à deux dimensions (dont aucune n’est temporelle).&lt;br /&gt;
&lt;br /&gt;
Pour illustrer, étant donné que les données &amp;quot;iris&amp;quot; sont en coupe transversale, on utilise le jeu de données « longley » qui contient des données macro-économiques annuelles (16 observations, entre 1947 et 1962).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
data(longley) #on charge le jeu de données&lt;br /&gt;
head(longley)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Fichier:head_longley.png]]&lt;br /&gt;
&lt;br /&gt;
==== Geom line ====&lt;br /&gt;
Par exemple, on peut utiliser l’argument line pour tracer l’évolution temporelle du taux de chômage.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#evolution temporelle du nombre de personnes au chômage.&lt;br /&gt;
qplot(Year,Unemployed/Population, data=longley, geom=&amp;quot;line&amp;quot;,colour=I(&amp;quot;red&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:line_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Geom path ====&lt;br /&gt;
On trace ensuite par exemple le nombre de personnes au chômage en fonction du taux de chômage. L’argument path va permettre de relier les points pour visualiser la variation d’année en année. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Nombre de personnes au chômage en fonction du taux de chômage&lt;br /&gt;
qplot(Unemployed/Population,Unemployed, data=longley, geom=&amp;quot;path&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:path_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Ici, même sans ajouter la couleur le graphique est clair (il y a peu d’observations, et les tracés ne se superposent pas). Mais dans d'autres cas, l'ajout de ce dégradé de couleur selon l'année permet de rendre le graphique beaucoup plus lisible. (Trois dimensions).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Ajoute la couleur pour l'année&lt;br /&gt;
qplot(Unemployed/Population,Unemployed, data=longley, geom=&amp;quot;path&amp;quot;,colour=Year)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:path_color_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GGPLOT ==&lt;br /&gt;
&lt;br /&gt;
ggplot est la seconde fonction du package ggplot2, et va permettre de produire des graphiques plus complexes et élaborés. &lt;br /&gt;
De plus, alors que la fonction qplot était relativement similaire dans sa syntaxe des fonctions traditionnelles permettant de tracer des graphiques sous R, la syntaxe utilisée par ggplot est totalement différente.&lt;br /&gt;
&lt;br /&gt;
En effet, la fonction en elle-même n’a que deux arguments : &lt;br /&gt;
* data : les données (sous la forme data.frame)&lt;br /&gt;
* une fonction aes (pour &amp;quot;aesthetic mapping&amp;quot;), qui va contenir les variables et les paramètres utilisés pour l’esthétique du graphique.&lt;br /&gt;
&lt;br /&gt;
ggplot fonctionne par l’ajout de calques (« layers »).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ainsi, la commande suivante ne permet pas de tracer un graph, et nécessite pour cela d’ajouter au minimum un calque minimal.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ggplot(data=iris,aes(Sepal.Length,Sepal.Width)) #no layers in plot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Par exemple, si l’on souhaite tracer un nuage ce points, on ajoute le layer geom=« point » sous la forme suivante : ''ggplot(data=data,aes(x,y,….)) + layer(geom=« point »,……)''. C'est pourquoi, il est intéressant de &amp;quot;stocker&amp;quot; le graphique dans un objet R, et de le modifier par l'ajout successif de layers, comme ci-dessous.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Ajoute un layer minimal&lt;br /&gt;
plot&amp;lt;-ggplot(data=iris,aes(Sepal.Length,Sepal.Width))&lt;br /&gt;
plot+layer(geom=&amp;quot;point&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Layer peut prendre les arguments suivants (qui sont détaillés après), et le principal argument est geom (objet géométrique à tracer).&lt;br /&gt;
geom,geom_params,stat,stat_param,data,mapping,position. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple, la commande ci-dessous va permettre de tracer un histogramme pour la longueur de la sépale, de couleur orange, avec une longueur de classe de 0.3.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Histogramme&lt;br /&gt;
ggplot(data=iris,aes(x=Sepal.Length)) + layer(geom=&amp;quot;histogram&amp;quot;,&lt;br /&gt;
                                              geom_params=list(fill=&amp;quot;orange&amp;quot;),&lt;br /&gt;
                                              stat=&amp;quot;bin&amp;quot;,&lt;br /&gt;
                                              stat_params=list(binwidth=2))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cependant, cette syntaxe est relativement lourde, et peut être considérablement allégée.&lt;br /&gt;
&lt;br /&gt;
Tout d’abord, l’argument layer(geom=&amp;quot;histogram&amp;quot;,geom_params=list(fill=&amp;quot;orange&amp;quot;) peut être remplacé par l’argument geom_histogram(fill=« orange »). De plus, en tenant compte du fait que chaque type de graphique (geom) est lié à une transformation statistique (stats), on peut finalement simplifier l’argument layer en : geom_histogram(fill=&amp;quot;orange&amp;quot;,binwidth=0.3)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Ainsi, la commande suivante produit le même graphique.&lt;br /&gt;
#simplification&lt;br /&gt;
hist&amp;lt;-ggplot(data=iris,aes(x=Sepal.Length)) &lt;br /&gt;
hist &amp;lt;- hist + geom_histogram(fill=&amp;quot;orange&amp;quot;,binwidth=0.3)&lt;br /&gt;
hist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
NB : il est parfois nécessaire de demander à imprimer le graphique à l’écran.&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5927</id>
		<title>Package R ggplot2</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5927"/>
				<updated>2014-07-16T11:29:31Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ggplot2 est un package de R qui permet de réaliser des graphiques plus perfectionnés, et au design plus moderne. Pour cela, il existe deux fonctions : &lt;br /&gt;
* QPLOT (pour &amp;quot;Quick Plot&amp;quot;) qui est la fonction &amp;quot;de base&amp;quot; du package (mais qui offre de grandes possibilités). Syntaxe générale : qplot(x,y,data=database)&lt;br /&gt;
* GGPLOT va permettre de créer des graphiques extrêmement perfectionnés. Sa syntaxe diffère de la syntaxe habituelle : ggplot(data=data,aes=(x,y)) +layers. La fonction ggplot (argument data et aes pour &amp;quot;aesthetic mapping&amp;quot;) va permettre de créer le graphique en lui même, et les layers vont permettre d'ajouter des paramètres modifiant la représentation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##### On installe le package&lt;br /&gt;
install.packages(&amp;quot;ggplot2&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois installé, il suffit de charger le package, avant de vouloir l'utiliser.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge le package&lt;br /&gt;
library(ggplot2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Jeu de données : ==&lt;br /&gt;
Pour illustrer, on utilise le jeu de données « iris » de R, qui contient 150 observations de 5 variables : 4 variables de type quantitatif, et une de type qualitatif (Species).&lt;br /&gt;
* Sepal.Length : longueur de la sépale&lt;br /&gt;
* Sepal.Width : largeur de la sépale Petal.Length : longueur du pétale&lt;br /&gt;
* Petal.Width : largeur du pétale&lt;br /&gt;
* Species : espèce.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge les données&lt;br /&gt;
data(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La fonction head(dataset) permet d’avoir un aperçu des premières lignes du jeu de données : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
head(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Headiris.png]]&lt;br /&gt;
&lt;br /&gt;
Attention ! pour utiliser ggplot2, les données doivent être sous la forme « data.frame », ce qui peut être vérifié par : class(dataset), et corrigé si besoin avec as.data.frame(dataset)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class(iris)&lt;br /&gt;
as.data.frame(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== QPLOT ==&lt;br /&gt;
&lt;br /&gt;
La syntaxe ressemble effectivement à celle de la fonction plot() (package &amp;quot;de base&amp;quot; de R).&lt;br /&gt;
&lt;br /&gt;
''qplot(x, y = NULL, ..., data, facets = NULL, margins = FALSE, geom = &amp;quot;auto&amp;quot;, stat = list(NULL), position = list(NULL), xlim = c(NA,NA), ylim = c(NA, NA), log = &amp;quot;&amp;quot;, main = NULL, xlab = deparse(substitute(x)), ylab = deparse(substitute(y)), asp = NA)''&lt;br /&gt;
&lt;br /&gt;
=== Objet géométrique ===&lt;br /&gt;
&lt;br /&gt;
L’argument geom() (pour objet géométrique) va permettre de réaliser différents graphiques à une ou deux dimensions. &lt;br /&gt;
Par défaut : &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type de la variable&lt;br /&gt;
! Objet par défaut&lt;br /&gt;
|-&lt;br /&gt;
| Quantitative&lt;br /&gt;
| geom =&amp;quot;histogram&amp;quot;  &lt;br /&gt;
|-&lt;br /&gt;
| Qualitative&lt;br /&gt;
| geom=&amp;quot;bar&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Deux variables quantitatives&lt;br /&gt;
| geom=&amp;quot;point&amp;quot; (scatterplot)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
De nombreux graphiques sont possibles (voir geom dans la documentation du package ggplot2, ou  en page 56). Parmi les plus utilisés : &lt;br /&gt;
&lt;br /&gt;
'''Pour une variable à analyser :''' &lt;br /&gt;
* histogram : histogramme (variable quantitative continue)&lt;br /&gt;
* density : trace la courbe de densité (variable quantitative continue)&lt;br /&gt;
* freqpoly : polynôme de fréquence (variable quantitative continue)&lt;br /&gt;
* bar : diagramme en bâton (variable discrète)&lt;br /&gt;
&lt;br /&gt;
'''Pour deux variables :''' &lt;br /&gt;
* point : scatterplot (deux variables continues)&lt;br /&gt;
* smooth : trace une courbe de tendance et son écart-type (deux variables continues)&lt;br /&gt;
* boxplot : boxplot (une variable quantitative continue, une variable discrète)&lt;br /&gt;
&lt;br /&gt;
'''Séries temporelles'''&lt;br /&gt;
* line : trace des lignes entre les points (de la gauche vers la droite)&lt;br /&gt;
* path : trace des lignes entre les points (dans n’importe quelle direction)&lt;br /&gt;
&lt;br /&gt;
A noter également que les objets géométriques peuvent être combinés (à partir du moment où cela est raisonnable sur le plan statistique).&lt;br /&gt;
&lt;br /&gt;
=== Une dimension ===&lt;br /&gt;
&lt;br /&gt;
==== Variable quantitative, continue. ====&lt;br /&gt;
&lt;br /&gt;
===== Histogramme =====&lt;br /&gt;
C'est le graphique tracé par défaut lorsque la variable indiquée est de type quantitatif (continu).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_base_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
On peut l'améliorer : changer la couleur de remplissage (argument '''fill''') et/ou la couleur de la bordure (argument '''colour''') :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;)) ## couleur de remplissage en orange&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;),colour=I(&amp;quot;black&amp;quot;))  ## et bordure en noir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_orange_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_orange_black_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
De plus, QQPLOT permet d’adapter la largeur des classes utilisées pour tracer l’histogramme, et donc d’avoir un degré de précision plus ou moins élevé, grâce à l’argument binwidth.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;),binwidth=1)  ## larges classes&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,binwidth=0.05)  ## classes ressérées&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_large_qplot.png]]&lt;br /&gt;
[[Fichier:histo_serre_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Courbe de densité =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;density&amp;quot;,colour=I(&amp;quot;red&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbe_densité_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Polynôme de fréquence =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;freqpoly&amp;quot;,colour=I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:polyfreq_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Variable discrète =====&lt;br /&gt;
&lt;br /&gt;
Le graphique produit par défaut est un diagramme en bâton (à ne pas confondre avec un histogramme !!! voir [[Statistiques descriptives avec R]]) &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Species,data=iris,geom=&amp;quot;bar&amp;quot;,fill=I(&amp;quot;yellow&amp;quot;)) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barplot_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deux dimensions === &lt;br /&gt;
&lt;br /&gt;
==== Deux variables continues ====&lt;br /&gt;
&lt;br /&gt;
===== Scatterplot =====&lt;br /&gt;
&lt;br /&gt;
Le graphique produit par défaut par la fonction est un nuage de points classique.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Deux variables continues&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;point&amp;quot;) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_base_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Les arguments de la fonction peuvent être modifiés, par exemple pour produire un graphique avec des points bleu (et non noirs).... &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## changer la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour = I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_bleu_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
... ou  pour produire un graphique avec des « + » à la place des points.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## changer le symbole&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,shape=I(3))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_plus_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de modifier la taille des points sur le graphique, à l’aide de l’argument size par exemple pour affiner les points ou les grossir(par défaut, size=I(2)).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## taille&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,size=I(3))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_taille_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Enfin, l’argument alpha est utile en cas de nombre conséquent d’observations qui vont se superposer sur le graphique (ce qui n’est pas le cas ici). En ajustant la transparence, il permet d’améliorer la lisibilité du graphique. Par défaut alpha=I(1), et l’utilisateur peut fixer alpha=I(1/x), avec x le nombre nécessaire d’observations qui se superposent pour obtenir une couleur opaque.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## transparence&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,alpha=I(1/10))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_transparence_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Courbe de tendance =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;smooth&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbe_tendance_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
à noter que la méthode pour tracer la courbe de tendance peut être changée par l’utilisateur grâce à l’argument «method= (par défaut, method=« loess » pour un nombre d’observations faible). Par exemple, method=« lm » permet de tracer une droite de regression linéaire.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;smooth&amp;quot;,method=&amp;quot;lm&amp;quot;) # lm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbelm_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Il peut être utile de combiner l'objet géométrique courbe de tendance avec un nuage de points : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),method=&amp;quot;lm&amp;quot;) #combiné&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_lm_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Le tracé peut être plus ou moins sinueux grâce à l’argument span, allant de 0 à 1.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##sinuosité&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),span=0.2)&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),span=1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_lm_span1_qplot.png]]&lt;br /&gt;
[[Fichier:scatt_lm_span2_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Une variable continue, une discrète ====&lt;br /&gt;
Il n'est pas rare de vouloir représenter la distribution une variable continue, selon différentes sous-populations définies par une variable discrète. Pour cela on peut utiliser un boxplot. (voir [[Statistiques descriptives avec R]]). QPLOT va également permettre des représentations plus perfectionnées des graphiques présentés précédemment, en tenant compte de ces différentes sous-populations.&lt;br /&gt;
&lt;br /&gt;
===== Boxplot =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Une continue, une discrete&lt;br /&gt;
qplot(Species,Sepal.Length, data=iris, geom=&amp;quot;boxplot&amp;quot;,fill=I(&amp;quot;purple&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boxplot_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Sous-populations : sur un même graphique ===== &lt;br /&gt;
&lt;br /&gt;
On peut présenter les observations issues de différentes sous-populations définies par les niveaux de la variable facteur group, soit d’une couleur différente (contour ou remplissage), soit d’un symbole différent.&lt;br /&gt;
Rappel : &lt;br /&gt;
* argument colour = bordure&lt;br /&gt;
* argument fill = remplissage&lt;br /&gt;
* argument shape = symbole&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Par exemple l’argument colour=group permet de présenter d'une couleur différente sur le nuage de points, les observations issues de différentes sous-populations, définies par les niveaux de la variable facteur group.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## ajoute de la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour=Species)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
On peut faire de même sur un graphique de type scatterplot grâce à l’argument shape=group, avec cette fois des symboles différents, selon le niveau de la variable group.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,geom=&amp;quot;point&amp;quot;,shape=Species) #symboles&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_Species_symbole_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
C’est aussi réalisable sur des courbes de densité (argument colour).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# densité&lt;br /&gt;
qplot(Sepal.Length, data=iris,geom=&amp;quot;density&amp;quot;,colour=Species)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:densité_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Pour un histogramme, l’agument à utiliser est fill=group pour modifier le remplissage.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=Species) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Attention à ne pas confondre fill=I(&amp;quot;red&amp;quot;) (utilisé pour paramétrer le remplissage en rouge, valable aussi pour l'argument colour..) et fill=group (utilisé pour changer la couleur selon les sous-populations définies pas la variable group). Déclarer fill=&amp;quot;red&amp;quot; et non fill=I(&amp;quot;red&amp;quot;) aurait pour conséquence de créer une nouvelle variable &amp;quot;red&amp;quot;, et de représenter les observations de couleurs différentes selon les modalités prises par cette variable (soit une seule). R ne produira pas de message d'erreur, mais le graphique sera obtenu de manière erronée.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=&amp;quot;red&amp;quot;) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_faux_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Le graphique correct serait : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;red&amp;quot;)) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_faux_correct_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Sous-populations : différents graphiques ===== &lt;br /&gt;
&lt;br /&gt;
QPLOT offre aussi la possibilité de créer plusieurs graphiques juxtaposés, correspondant à un même graphique pour chacune des différentes sous-populations définies par une variable group. On utilise l’argument facets=. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
facets= . ~ group va présenter les graphiques cote à cote (horizontalement), tandis que facets= group ~ . les superposera (verticalement). &lt;br /&gt;
&lt;br /&gt;
Par exemple ici, l’histogramme pour la variable Sepal.Length, pour chaque espèce. On constate qu’il est préférable de les présenter verticalement, sinon les histogrammes sont écrasés et peu lisibles.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,facets = Species ~ .,geom=&amp;quot;histogram&amp;quot;,binwidth=0.1,fill=I(&amp;quot;orange&amp;quot;)) #ordre vertical&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:facet_vertical_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,facets = . ~ Species,geom=&amp;quot;histogram&amp;quot;,binwidth=0.1,fill=I(&amp;quot;orange&amp;quot;)) #ordre horizontal&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:facet_horizontal_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Données en séries temporelles ====&lt;br /&gt;
&lt;br /&gt;
Line et path sont utilisés dans le cas de séries temporelles. On rappelle que la différence entre les deux provient du fait que path relie les points dans n’importe quelle direction (pourvu qu’il apparaissent en suivant dans la base de données), tandis que line relie les points de gauche à droite.&lt;br /&gt;
&lt;br /&gt;
Ainsi, on utilisera line, par exemple pour tracer l’évolution d’un phénomène en fonction de la date, tandis que l’on utilisera path pour relier les différents points selon l’ordre chronologique, dans un graphique à deux dimensions (dont aucune n’est temporelle).&lt;br /&gt;
&lt;br /&gt;
Pour illustrer, étant donné que les données &amp;quot;iris&amp;quot; sont en coupe transversale, on utilise le jeu de données « longley » qui contient des données macro-économiques annuelles (16 observations, entre 1947 et 1962).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
data(longley) #on charge le jeu de données&lt;br /&gt;
head(longley)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Fichier:head_longley.png]]&lt;br /&gt;
&lt;br /&gt;
==== Geom line ====&lt;br /&gt;
Par exemple, on peut utiliser l’argument line pour tracer l’évolution temporelle du taux de chômage.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#evolution temporelle du nombre de personnes au chômage.&lt;br /&gt;
qplot(Year,Unemployed/Population, data=longley, geom=&amp;quot;line&amp;quot;,colour=I(&amp;quot;red&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:line_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Geom path ====&lt;br /&gt;
On trace ensuite par exemple le nombre de personnes au chômage en fonction du taux de chômage. L’argument path va permettre de relier les points pour visualiser la variation d’année en année. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Nombre de personnes au chômage en fonction du taux de chômage&lt;br /&gt;
qplot(Unemployed/Population,Unemployed, data=longley, geom=&amp;quot;path&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:path_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Ici, même sans ajouter la couleur le graphique est clair (il y a peu d’observations, et les tracés ne se superposent pas). Mais dans d'autres cas, l'ajout de ce dégradé de couleur selon l'année permet de rendre le graphique beaucoup plus lisible. (Trois dimensions).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Ajoute la couleur pour l'année&lt;br /&gt;
qplot(Unemployed/Population,Unemployed, data=longley, geom=&amp;quot;path&amp;quot;,colour=Year)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:path_color_qplot.png]]&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Path_color_qplot.png&amp;diff=5926</id>
		<title>Fichier:Path color qplot.png</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Path_color_qplot.png&amp;diff=5926"/>
				<updated>2014-07-16T11:22:55Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Path_qplot.png&amp;diff=5925</id>
		<title>Fichier:Path qplot.png</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Path_qplot.png&amp;diff=5925"/>
				<updated>2014-07-16T11:22:44Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Line_qplot.png&amp;diff=5924</id>
		<title>Fichier:Line qplot.png</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Line_qplot.png&amp;diff=5924"/>
				<updated>2014-07-16T11:22:35Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Head_longley.png&amp;diff=5923</id>
		<title>Fichier:Head longley.png</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Head_longley.png&amp;diff=5923"/>
				<updated>2014-07-16T11:22:04Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Facet_horizontal_qplot.png&amp;diff=5922</id>
		<title>Fichier:Facet horizontal qplot.png</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Facet_horizontal_qplot.png&amp;diff=5922"/>
				<updated>2014-07-16T11:21:07Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Facet_vertical_qplot.png&amp;diff=5921</id>
		<title>Fichier:Facet vertical qplot.png</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Facet_vertical_qplot.png&amp;diff=5921"/>
				<updated>2014-07-16T11:20:59Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Histo_faux_correct_qplot.png&amp;diff=5920</id>
		<title>Fichier:Histo faux correct qplot.png</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Histo_faux_correct_qplot.png&amp;diff=5920"/>
				<updated>2014-07-16T11:20:31Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Histo_faux_qplot.png&amp;diff=5919</id>
		<title>Fichier:Histo faux qplot.png</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Histo_faux_qplot.png&amp;diff=5919"/>
				<updated>2014-07-16T11:20:24Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Histo_Species_qplot.png&amp;diff=5918</id>
		<title>Fichier:Histo Species qplot.png</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Histo_Species_qplot.png&amp;diff=5918"/>
				<updated>2014-07-16T11:20:15Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Densit%C3%A9_Species_qplot.png&amp;diff=5917</id>
		<title>Fichier:Densité Species qplot.png</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Densit%C3%A9_Species_qplot.png&amp;diff=5917"/>
				<updated>2014-07-16T11:20:05Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Scatt_Species_symbole_qplot.png&amp;diff=5916</id>
		<title>Fichier:Scatt Species symbole qplot.png</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Scatt_Species_symbole_qplot.png&amp;diff=5916"/>
				<updated>2014-07-16T11:19:53Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Scatt_Species_qplot.png&amp;diff=5915</id>
		<title>Fichier:Scatt Species qplot.png</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Scatt_Species_qplot.png&amp;diff=5915"/>
				<updated>2014-07-16T11:19:43Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Boxplot_qplot.png&amp;diff=5914</id>
		<title>Fichier:Boxplot qplot.png</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Boxplot_qplot.png&amp;diff=5914"/>
				<updated>2014-07-16T11:19:32Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Scatt_lm_span2_qplot.png&amp;diff=5913</id>
		<title>Fichier:Scatt lm span2 qplot.png</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Scatt_lm_span2_qplot.png&amp;diff=5913"/>
				<updated>2014-07-16T11:18:41Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Scatt_lm_span1_qplot.png&amp;diff=5912</id>
		<title>Fichier:Scatt lm span1 qplot.png</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Scatt_lm_span1_qplot.png&amp;diff=5912"/>
				<updated>2014-07-16T11:18:36Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Scatt_lm_qplot.png&amp;diff=5911</id>
		<title>Fichier:Scatt lm qplot.png</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Scatt_lm_qplot.png&amp;diff=5911"/>
				<updated>2014-07-16T11:18:28Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Courbelm_qplot.png&amp;diff=5910</id>
		<title>Fichier:Courbelm qplot.png</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Courbelm_qplot.png&amp;diff=5910"/>
				<updated>2014-07-16T11:18:20Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Courbe_tendance_qplot.png&amp;diff=5909</id>
		<title>Fichier:Courbe tendance qplot.png</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Courbe_tendance_qplot.png&amp;diff=5909"/>
				<updated>2014-07-16T11:18:02Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Scatt_transparence_qplot.png&amp;diff=5908</id>
		<title>Fichier:Scatt transparence qplot.png</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Scatt_transparence_qplot.png&amp;diff=5908"/>
				<updated>2014-07-16T11:17:37Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Scatt_taille_qplot.png&amp;diff=5907</id>
		<title>Fichier:Scatt taille qplot.png</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Scatt_taille_qplot.png&amp;diff=5907"/>
				<updated>2014-07-16T11:17:30Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Scatt_plus_qplot.png&amp;diff=5906</id>
		<title>Fichier:Scatt plus qplot.png</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Scatt_plus_qplot.png&amp;diff=5906"/>
				<updated>2014-07-16T11:16:33Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Scatt_bleu_qplot.png&amp;diff=5905</id>
		<title>Fichier:Scatt bleu qplot.png</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Scatt_bleu_qplot.png&amp;diff=5905"/>
				<updated>2014-07-16T11:16:23Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Scatt_base_qplot.png&amp;diff=5904</id>
		<title>Fichier:Scatt base qplot.png</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Scatt_base_qplot.png&amp;diff=5904"/>
				<updated>2014-07-16T11:16:11Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Barplot_qplot.png&amp;diff=5903</id>
		<title>Fichier:Barplot qplot.png</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Barplot_qplot.png&amp;diff=5903"/>
				<updated>2014-07-16T11:15:57Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Polyfreq_qplot.png&amp;diff=5902</id>
		<title>Fichier:Polyfreq qplot.png</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Polyfreq_qplot.png&amp;diff=5902"/>
				<updated>2014-07-16T11:15:48Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Courbe_densit%C3%A9_qplot.png&amp;diff=5901</id>
		<title>Fichier:Courbe densité qplot.png</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Courbe_densit%C3%A9_qplot.png&amp;diff=5901"/>
				<updated>2014-07-16T11:15:14Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Histo_serre_qplot.png&amp;diff=5900</id>
		<title>Fichier:Histo serre qplot.png</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Histo_serre_qplot.png&amp;diff=5900"/>
				<updated>2014-07-16T11:15:01Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Histo_large_qplot.png&amp;diff=5899</id>
		<title>Fichier:Histo large qplot.png</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Histo_large_qplot.png&amp;diff=5899"/>
				<updated>2014-07-16T11:14:51Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Histo_orange_black_qplot.png&amp;diff=5898</id>
		<title>Fichier:Histo orange black qplot.png</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Histo_orange_black_qplot.png&amp;diff=5898"/>
				<updated>2014-07-16T11:14:38Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Histo_orange_qplot.png&amp;diff=5897</id>
		<title>Fichier:Histo orange qplot.png</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Histo_orange_qplot.png&amp;diff=5897"/>
				<updated>2014-07-16T11:14:28Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Histo_base_qplot.png&amp;diff=5896</id>
		<title>Fichier:Histo base qplot.png</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Fichier:Histo_base_qplot.png&amp;diff=5896"/>
				<updated>2014-07-16T11:14:16Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5895</id>
		<title>Package R ggplot2</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5895"/>
				<updated>2014-07-16T11:13:06Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ggplot2 est un package de R qui permet de réaliser des graphiques plus perfectionnés, et au design plus moderne. Pour cela, il existe deux fonctions : &lt;br /&gt;
* QPLOT (pour &amp;quot;Quick Plot&amp;quot;) qui est la fonction &amp;quot;de base&amp;quot; du package (mais qui offre de grandes possibilités). Syntaxe générale : qplot(x,y,data=database)&lt;br /&gt;
* GGPLOT va permettre de créer des graphiques extrêmement perfectionnés. Sa syntaxe diffère de la syntaxe habituelle : ggplot(data=data,aes=(x,y)) +layers. La fonction ggplot (argument data et aes pour &amp;quot;aesthetic mapping&amp;quot;) va permettre de créer le graphique en lui même, et les layers vont permettre d'ajouter des paramètres modifiant la représentation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##### On installe le package&lt;br /&gt;
install.packages(&amp;quot;ggplot2&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois installé, il suffit de charger le package, avant de vouloir l'utiliser.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge le package&lt;br /&gt;
library(ggplot2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Jeu de données : ==&lt;br /&gt;
Pour illustrer, on utilise le jeu de données « iris » de R, qui contient 150 observations de 5 variables : 4 variables de type quantitatif, et une de type qualitatif (Species).&lt;br /&gt;
* Sepal.Length : longueur de la sépale&lt;br /&gt;
* Sepal.Width : largeur de la sépale Petal.Length : longueur du pétale&lt;br /&gt;
* Petal.Width : largeur du pétale&lt;br /&gt;
* Species : espèce.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge les données&lt;br /&gt;
data(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La fonction head(dataset) permet d’avoir un aperçu des premières lignes du jeu de données : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
head(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Headiris.png]]&lt;br /&gt;
&lt;br /&gt;
Attention ! pour utiliser ggplot2, les données doivent être sous la forme « data.frame », ce qui peut être vérifié par : class(dataset), et corrigé si besoin avec as.data.frame(dataset)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class(iris)&lt;br /&gt;
as.data.frame(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== QPLOT ==&lt;br /&gt;
&lt;br /&gt;
La syntaxe ressemble effectivement à celle de la fonction plot() (package &amp;quot;de base&amp;quot; de R).&lt;br /&gt;
&lt;br /&gt;
''qplot(x, y = NULL, ..., data, facets = NULL, margins = FALSE, geom = &amp;quot;auto&amp;quot;, stat = list(NULL), position = list(NULL), xlim = c(NA,NA), ylim = c(NA, NA), log = &amp;quot;&amp;quot;, main = NULL, xlab = deparse(substitute(x)), ylab = deparse(substitute(y)), asp = NA)''&lt;br /&gt;
&lt;br /&gt;
=== Objet géométrique ===&lt;br /&gt;
&lt;br /&gt;
L’argument geom() (pour objet géométrique) va permettre de réaliser différents graphiques à une ou deux dimensions. &lt;br /&gt;
Par défaut : &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type de la variable&lt;br /&gt;
! Objet par défaut&lt;br /&gt;
|-&lt;br /&gt;
| Quantitative&lt;br /&gt;
| geom =&amp;quot;histogram&amp;quot;  &lt;br /&gt;
|-&lt;br /&gt;
| Qualitative&lt;br /&gt;
| geom=&amp;quot;bar&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Deux variables quantitatives&lt;br /&gt;
| geom=&amp;quot;point&amp;quot; (scatterplot)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
De nombreux graphiques sont possibles (voir geom dans la documentation du package ggplot2, ou  en page 56). Parmi les plus utilisés : &lt;br /&gt;
&lt;br /&gt;
'''Pour une variable à analyser :''' &lt;br /&gt;
* histogram : histogramme (variable quantitative continue)&lt;br /&gt;
* density : trace la courbe de densité (variable quantitative continue)&lt;br /&gt;
* freqpoly : polynôme de fréquence (variable quantitative continue)&lt;br /&gt;
* bar : diagramme en bâton (variable discrète)&lt;br /&gt;
&lt;br /&gt;
'''Pour deux variables :''' &lt;br /&gt;
* point : scatterplot (deux variables continues)&lt;br /&gt;
* smooth : trace une courbe de tendance et son écart-type (deux variables continues)&lt;br /&gt;
* boxplot : boxplot (une variable quantitative continue, une variable discrète)&lt;br /&gt;
&lt;br /&gt;
'''Séries temporelles'''&lt;br /&gt;
* line : trace des lignes entre les points (de la gauche vers la droite)&lt;br /&gt;
* path : trace des lignes entre les points (dans n’importe quelle direction)&lt;br /&gt;
&lt;br /&gt;
A noter également que les objets géométriques peuvent être combinés (à partir du moment où cela est raisonnable sur le plan statistique).&lt;br /&gt;
&lt;br /&gt;
=== Une dimension ===&lt;br /&gt;
&lt;br /&gt;
==== Variable quantitative, continue. ====&lt;br /&gt;
&lt;br /&gt;
===== Histogramme =====&lt;br /&gt;
C'est le graphique tracé par défaut lorsque la variable indiquée est de type quantitatif (continu).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_base_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
On peut l'améliorer : changer la couleur de remplissage (argument fill) et/ou la couleur de la bordure (argument colour) :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;)) ## couleur de remplissage en orange&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;),colour=I(&amp;quot;black&amp;quot;))  ## et bordure en noir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_orange_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_orange_black_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
De plus, QQPLOT permet d’adapter la largeur des classes utilisées pour tracer l’histogramme, et donc d’avoir un degré de précision plus ou moins élevé, grâce à l’argument binwidth.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;),binwidth=1)  ## larges classes&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,binwidth=0.05)  ## classes ressérées&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_large_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:histo_serre_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Courbe de densité =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;density&amp;quot;,colour=I(&amp;quot;red&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbe_densité_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Polynôme de fréquence =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;freqpoly&amp;quot;,colour=I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:polyfreq_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Variable discrète =====&lt;br /&gt;
&lt;br /&gt;
Le graphique produit par défaut est un diagramme en bâton (à ne pas confondre avec un histogramme !!! voir [[Statistiques descriptives avec R]]) &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Species,data=iris,geom=&amp;quot;bar&amp;quot;,fill=I(&amp;quot;yellow&amp;quot;)) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:barplot_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
=== Deux dimensions === &lt;br /&gt;
&lt;br /&gt;
==== Deux variables continues =====&lt;br /&gt;
&lt;br /&gt;
===== Scatterplot =====&lt;br /&gt;
&lt;br /&gt;
Le graphique produit par défaut par la fonction est un nuage de points classique.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Deux variables continues&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;point&amp;quot;) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_base_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Les arguments de la fonction peuvent être modifiés, par exemple pour produire un graphique avec des points bleu (et non noirs).... &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## changer la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour = I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_bleu_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
... ou  pour produire un graphique avec des « + » à la place des points.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## changer le symbole&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,shape=I(3))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_plus_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de modifier la taille des points sur le graphique, à l’aide de l’argument size par exemple pour affiner les points ou les grossir(par défaut, size=I(2)).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## taille&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,size=I(1))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_taille_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Enfin, l’argument alpha est utile en cas de nombre conséquent d’observations qui vont se superposer sur le graphique (ce qui n’est pas le cas ici). En ajustant la transparence, il permet d’améliorer la lisibilité du graphique. Par défaut alpha=I(1), et l’utilisateur peut fixer alpha=I(1/x), avec x le nombre nécessaire d’observations qui se superposent pour obtenir une couleur opaque.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## transparence&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,alpha=I(1/10))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_transparence_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Courbe de tendance =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;smooth&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbe_tendance_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
à noter que la méthode pour tracer la courbe de tendance peut être changée par l’utilisateur grâce à l’argument «method= (par défaut, method=« loess » pour un nombre d’observations faible). Par exemple, method=« lm » permet de tracer une droite de regression linéaire.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;smooth&amp;quot;,method=&amp;quot;lm&amp;quot;) # lm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:courbelm_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Il peut être utile de combiner l'objet géométrique courbe de tendance avec un nuage de points : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),method=&amp;quot;lm&amp;quot;) #combiné&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_lm_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Le tracé peut être plus ou moins sinueux grâce à l’argument span, allant de 0 à 1.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##sinuosité&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),span=0.2)&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),span=1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_lm_span1_qplot.png]]&lt;br /&gt;
[[Fichier:scatt_lm_span2_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Une variable continue, une discrète ====&lt;br /&gt;
Il n'est pas rare de vouloir représenter la distribution une variable continue, selon différentes sous-populations définies par une variable discrète. Pour cela on peut utiliser un boxplot. (voir [[Statistiques descriptives avec R]]). QPLOT va également permettre des représentations plus perfectionnées des graphiques présentés précédemment, en tenant compte de ces différentes sous-populations.&lt;br /&gt;
&lt;br /&gt;
===== Boxplot =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Une continue, une discrete&lt;br /&gt;
qplot(Species,Sepal.Length, data=iris, geom=&amp;quot;boxplot&amp;quot;,fill=I(&amp;quot;purple&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:boxplot_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
===== Sous-populations : sur un même graphique === &lt;br /&gt;
&lt;br /&gt;
On peut présenter les observations issues de différentes sous-populations définies par les niveaux de la variable facteur group, soit d’une couleur différente (contour ou remplissage), soit d’un symbole différent.&lt;br /&gt;
Rappel : &lt;br /&gt;
* argument colour = bordure&lt;br /&gt;
* argument fill = remplissage&lt;br /&gt;
* argument shape = symbole&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Par exemple l’argument colour=group permet de présenter d'une couleur différente sur le nuage de points, les observations issues de différentes sous-populations, définies par les niveaux de la variable facteur group.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## ajoute de la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour=Species)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
On peut faire de même sur un graphique de type scatterplot grâce à l’argument shape=group, avec cette fois des symboles différents, selon le niveau de la variable group.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,geom=&amp;quot;point&amp;quot;,shape=Species) #symboles&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:scatt_Species_symbole_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
C’est aussi réalisable sur des courbes de densité (argument colour).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# densité&lt;br /&gt;
qplot(Sepal.Length, data=iris,geom=&amp;quot;density&amp;quot;,colour=Species)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:densité_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Pour un histogramme, l’agument à utiliser est fill=group pour modifier le remplissage.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=Species) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_Species_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Attention à ne pas confondre fill=I(&amp;quot;red&amp;quot;) (utilisé pour paramétrer le remplissage en rouge, valable aussi pour l'argument colour..) et fill=group (utilisé pour changer la couleur selon les sous-populations définies pas la variable group). Déclarer fill=&amp;quot;red&amp;quot; et non fill=I(&amp;quot;red&amp;quot;) aurait pour conséquence de créer une nouvelle variable &amp;quot;red&amp;quot;, et de représenter les observations de couleurs différentes selon les modalités prises par cette variable (soit une seule). R ne produira pas de message d'erreur, mais le graphique sera obtenu de manière erronée.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=&amp;quot;red&amp;quot;) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_faux_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Le graphique correct serait : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;red&amp;quot;)) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Histo_faux_correct_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Sous-populations : différents graphiques === &lt;br /&gt;
&lt;br /&gt;
QPLOT offre aussi la possibilité de créer plusieurs graphiques juxtaposés, correspondant à un même graphique pour chacune des différentes sous-populations définies par une variable group. On utilise l’argument facets=. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
facets= . ~ group va présenter les graphiques cote à cote (horizontalement), tandis que facets= group ~ . les superposera (verticalement). &lt;br /&gt;
&lt;br /&gt;
Par exemple ici, l’histogramme pour la variable Sepal.Length, pour chaque espèce. On constate qu’il est préférable de les présenter verticalement, sinon les histogrammes sont écrasés et peu lisibles.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,facets = Species ~ .,geom=&amp;quot;histogram&amp;quot;,binwidth=0.1,fill=I(&amp;quot;orange&amp;quot;)) #ordre vertical&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:facet_vertical_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,facets = . ~ Species,geom=&amp;quot;histogram&amp;quot;,binwidth=0.1,fill=I(&amp;quot;orange&amp;quot;)) #ordre horizontal&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:facet_horizontal_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Données en séries temporelles ====&lt;br /&gt;
&lt;br /&gt;
Line et path sont utilisés dans le cas de séries temporelles. On rappelle que la différence entre les deux provient du fait que path relie les points dans n’importe quelle direction (pourvu qu’il apparaissent en suivant dans la base de données), tandis que line relie les points de gauche à droite.&lt;br /&gt;
&lt;br /&gt;
Ainsi, on utilisera line, par exemple pour tracer l’évolution d’un phénomène en fonction de la date, tandis que l’on utilisera path pour relier les différents points selon l’ordre chronologique, dans un graphique à deux dimensions (dont aucune n’est temporelle).&lt;br /&gt;
&lt;br /&gt;
Pour illustrer, étant donné que les données &amp;quot;iris&amp;quot; sont en coupe transversale, on utilise le jeu de données « longley » qui contient des données macro-économiques annuelles (16 observations, entre 1947 et 1962).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
data(longley) #on charge le jeu de données&lt;br /&gt;
head(longley)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Fichier:head_longley.png]]&lt;br /&gt;
&lt;br /&gt;
==== Geom line ====&lt;br /&gt;
Par exemple, on peut utiliser l’argument line pour tracer l’évolution temporelle du taux de chômage.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#evolution temporelle du nombre de personnes au chômage.&lt;br /&gt;
qplot(Year,Unemployed/Population, data=longley, geom=&amp;quot;line&amp;quot;,colour=I(&amp;quot;red&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:line_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
==== Geom path ====&lt;br /&gt;
On trace ensuite par exemple le nombre de personnes au chômage en fonction du taux de chômage. L’argument path va permettre de relier les points pour visualiser la variation d’année en année. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Nombre de personnes au chômage en fonction du taux de chômage&lt;br /&gt;
qplot(Unemployed/Population,Unemployed, data=longley, geom=&amp;quot;path&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:path_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
Ici, même sans ajouter la couleur le graphique est clair (il y a peu d’observations, et les tracés ne se superposent pas). Mais dans d'autres cas, l'ajout de ce dégradé de couleur selon l'année permet de rendre le graphique beaucoup plus lisible.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Ajoute la couleur pour l'année&lt;br /&gt;
qplot(Unemployed/Population,Unemployed, data=longley, geom=&amp;quot;path&amp;quot;,colour=Year)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:path_color_qplot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comme pour tout graphique, il est possible (et conseillé) d’ajouter un titre au graphique et au axes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 ## ajout titre&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,xlab=&amp;quot;Longueur de la sépale&amp;quot;,ylab=&amp;quot;Largeur de la sépale&amp;quot;,main=&amp;quot;Iris data scatterplot&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5894</id>
		<title>Package R ggplot2</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5894"/>
				<updated>2014-07-16T10:51:30Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ggplot2 est un package de R qui permet de réaliser des graphiques plus perfectionnés, et au design plus moderne. Pour cela, il existe deux fonctions : &lt;br /&gt;
* QPLOT (pour &amp;quot;Quick Plot&amp;quot;) qui est la fonction &amp;quot;de base&amp;quot; du package (mais qui offre de grandes possibilités). Syntaxe générale : qplot(x,y,data=database)&lt;br /&gt;
* GGPLOT va permettre de créer des graphiques extrêmement perfectionnés. Sa syntaxe diffère de la syntaxe habituelle : ggplot(data=data,aes=(x,y)) +layers. La fonction ggplot (argument data et aes pour &amp;quot;aesthetic mapping&amp;quot;) va permettre de créer le graphique en lui même, et les layers vont permettre d'ajouter des paramètres modifiant la représentation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##### On installe le package&lt;br /&gt;
install.packages(&amp;quot;ggplot2&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois installé, il suffit de charger le package, avant de vouloir l'utiliser.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge le package&lt;br /&gt;
library(ggplot2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Jeu de données : ==&lt;br /&gt;
Pour illustrer, on utilise le jeu de données « iris » de R, qui contient 150 observations de 5 variables : 4 variables de type quantitatif, et une de type qualitatif (Species).&lt;br /&gt;
* Sepal.Length : longueur de la sépale&lt;br /&gt;
* Sepal.Width : largeur de la sépale Petal.Length : longueur du pétale&lt;br /&gt;
* Petal.Width : largeur du pétale&lt;br /&gt;
* Species : espèce.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge les données&lt;br /&gt;
data(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La fonction head(dataset) permet d’avoir un aperçu des premières lignes du jeu de données : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
head(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention ! pour utiliser ggplot2, les données doivent être sous la forme « data.frame », ce qui peut être vérifié par : class(dataset), et corrigé si besoin avec as.data.frame(dataset)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class(iris)&lt;br /&gt;
as.data.frame(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== QPLOT ==&lt;br /&gt;
&lt;br /&gt;
La syntaxe ressemble effectivement à celle de la fonction plot() (package &amp;quot;de base&amp;quot; de R).&lt;br /&gt;
&lt;br /&gt;
''qplot(x, y = NULL, ..., data, facets = NULL, margins = FALSE, geom = &amp;quot;auto&amp;quot;, stat = list(NULL), position = list(NULL), xlim = c(NA,NA), ylim = c(NA, NA), log = &amp;quot;&amp;quot;, main = NULL, xlab = deparse(substitute(x)), ylab = deparse(substitute(y)), asp = NA)''&lt;br /&gt;
&lt;br /&gt;
=== Objet géométrique ===&lt;br /&gt;
&lt;br /&gt;
L’argument geom() (pour objet géométrique) va permettre de réaliser différents graphiques à une ou deux dimensions. &lt;br /&gt;
Par défaut : &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type de la variable&lt;br /&gt;
! Objet par défaut&lt;br /&gt;
|-&lt;br /&gt;
| Quantitative&lt;br /&gt;
| geom =&amp;quot;histogram&amp;quot;  &lt;br /&gt;
|-&lt;br /&gt;
| Qualitative&lt;br /&gt;
| geom=&amp;quot;bar&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Deux variables quantitatives&lt;br /&gt;
| geom=&amp;quot;point&amp;quot; (scatterplot)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
De nombreux graphiques sont possibles (voir geom dans la documentation du package ggplot2, ou  en page 56). Parmi les plus utilisés : &lt;br /&gt;
&lt;br /&gt;
'''Pour une variable à analyser :''' &lt;br /&gt;
* histogram : histogramme (variable quantitative continue)&lt;br /&gt;
* density : trace la courbe de densité (variable quantitative continue)&lt;br /&gt;
* freqpoly : polynôme de fréquence (variable quantitative continue)&lt;br /&gt;
* bar : diagramme en bâton (variable discrète)&lt;br /&gt;
&lt;br /&gt;
'''Pour deux variables :''' &lt;br /&gt;
* point : scatterplot&lt;br /&gt;
* smooth : trace une courbe de tendance et son écart-type&lt;br /&gt;
* boxplot : boxplot &lt;br /&gt;
* line : trace des lignes entre les points (de la gauche vers la droite)&lt;br /&gt;
* path : trace des lignes entre les points (dans n’importe quelle direction)&lt;br /&gt;
&lt;br /&gt;
A noter également que les objets géométriques peuvent être combinés (à partir du moment où cela est raisonnable sur le plan statistique).&lt;br /&gt;
&lt;br /&gt;
=== Une dimension ===&lt;br /&gt;
&lt;br /&gt;
==== Variable quantitative, continue. ====&lt;br /&gt;
&lt;br /&gt;
===== Histogramme =====&lt;br /&gt;
C'est le graphique tracé par défaut lorsque la variable indiquée est de type quantitatif (continu).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On peut l'améliorer : changer la couleur de remplissage (argument fill) et/ou la couleur de la bordure (argument colour) :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;)) ## couleur de remplissage en orange&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;),colour=I(&amp;quot;black&amp;quot;))  ## et bordure en noir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De plus, QQPLOT permet d’adapter la largeur des classes utilisées pour tracer l’histogramme, et donc d’avoir un degré de précision plus ou moins élevé, grâce à l’argument binwidth.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;),binwidth=1)  ## larges classes&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,binwidth=0.05)  ## classes ressérées&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Courbe de densité =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;density&amp;quot;,colour=I(&amp;quot;red&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Polynôme de fréquence =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;freqpoly&amp;quot;,colour=I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Variable discrète =====&lt;br /&gt;
&lt;br /&gt;
Le graphique produit par défaut est un diagramme en bâton (à ne pas confondre avec un histogramme !!! voir [[Statistiques descriptives avec R]]) &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Species,data=iris,geom=&amp;quot;bar&amp;quot;,fill=I(&amp;quot;yellow&amp;quot;)) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Deux dimensions === &lt;br /&gt;
&lt;br /&gt;
==== Deux variables continues =====&lt;br /&gt;
&lt;br /&gt;
===== Scatterplot =====&lt;br /&gt;
&lt;br /&gt;
Le graphique produit par défaut par la fonction est un nuage de points classique.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Deux variables continues&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;point&amp;quot;) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les arguments de la fonction peuvent être modifiés, par exemple pour produire un graphique avec des points bleu (et non noirs).... &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## changer la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour = I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... ou  pour produire un graphique avec des « + » à la place des points.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## changer le symbole&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,shape=I(3))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de modifier la taille des points sur le graphique, à l’aide de l’argument size par exemple pour affiner les points ou les grossir(par défaut, size=I(2)).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## taille&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,size=I(1))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, l’argument alpha est utile en cas de nombre conséquent d’observations qui vont se superposer sur le graphique (ce qui n’est pas le cas ici). En ajustant la transparence, il permet d’améliorer la lisibilité du graphique. Par défaut alpha=I(1), et l’utilisateur peut fixer alpha=I(1/x), avec x le nombre nécessaire d’observations qui se superposent pour obtenir une couleur opaque.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## transparence&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,alpha=I(1/10))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Courbe de tendance =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;smooth&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
à noter que la méthode pour tracer la courbe de tendance peut être changée par l’utilisateur grâce à l’argument «method= (par défaut, method=« loess » pour un nombre d’observations faible). Par exemple, method=« lm » permet de tracer une droite de regression linéaire.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;smooth&amp;quot;,method=&amp;quot;lm&amp;quot;) # lm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il peut être utile de combiner l'objet géométrique courbe de tendance avec un nuage de points : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),method=&amp;quot;lm&amp;quot;) #combiné&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le tracé peut être plus ou moins sinueux grâce à l’argument span, allant de 0 à 1.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##sinuosité&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),span=0.2)&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),span=1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Une variable continue, une discrète ====&lt;br /&gt;
Il n'est pas rare de vouloir représenter la distribution une variable continue, selon différentes sous-populations définies par une variable discrète. Pour cela on peut utiliser un boxplot. (voir [[Statistiques descriptives avec R]]). QPLOT va également permettre des représentations plus perfectionnées des graphiques présentés précédemment, en tenant compte de ces différentes sous-populations.&lt;br /&gt;
&lt;br /&gt;
===== Boxplot =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Une continue, une discrete&lt;br /&gt;
qplot(Species,Sepal.Length, data=iris, geom=&amp;quot;boxplot&amp;quot;,fill=I(&amp;quot;purple&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Sous-populations : sur un même graphique === &lt;br /&gt;
&lt;br /&gt;
On peut présenter les observations issues de différentes sous-populations définies par les niveaux de la variable facteur group, soit d’une couleur différente (contour ou remplissage), soit d’un symbole différent.&lt;br /&gt;
Rappel : &lt;br /&gt;
* argument colour = bordure&lt;br /&gt;
* argument fill = remplissage&lt;br /&gt;
* argument shape = symbole&lt;br /&gt;
&lt;br /&gt;
Par exemple l’argument colour=group permet de présenter d'une couleur différente sur le nuage de points, les observations issues de différentes sous-populations, définies par les niveaux de la variable facteur group.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## ajoute de la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour=Species)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On peut faire de même sur un graphique de type scatterplot grâce à l’argument shape=group, avec cette fois des symboles différents, selon le niveau de la variable group.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,geom=&amp;quot;point&amp;quot;,shape=Species) #symboles&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
C’est aussi réalisable sur des courbes de densité (argument colour).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# densité&lt;br /&gt;
qplot(Sepal.Length, data=iris,geom=&amp;quot;density&amp;quot;,colour=Species)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour un histogramme, l’agument à utiliser est fill=group pour modifier le remplissage.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=Species) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Sous-populations : différents graphiques === &lt;br /&gt;
&lt;br /&gt;
QPLOT offre aussi la possibilité de créer plusieurs graphiques juxtaposés, correspondant à un même graphique pour chacune des différentes sous-populations définies par une variable group. On utilise l’argument facets=. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
facets= . ~ group va présenter les graphiques cote à cote (horizontalement), tandis que facets= group ~ . les superposera (verticalement). &lt;br /&gt;
&lt;br /&gt;
Par exemple ici, l’histogramme pour la variable Sepal.Length, pour chaque espèce. On constate qu’il est préférable de les présenter verticalement, sinon les histogrammes sont écrasés et peu lisibles.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,facets = Species ~ .,geom=&amp;quot;histogram&amp;quot;,binwidth=0.1,fill=I(&amp;quot;orange&amp;quot;)) #ordre vertical&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,facets = . ~ Species,geom=&amp;quot;histogram&amp;quot;,binwidth=0.1,fill=I(&amp;quot;orange&amp;quot;)) #ordre horizontal&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Données en séries temporelles ====&lt;br /&gt;
&lt;br /&gt;
Line et path sont utilisés dans le cas de séries temporelles. On rappelle que la différence entre les deux provient du fait que path relie les points dans n’importe quelle direction (pourvu qu’il apparaissent en suivant dans la base de données), tandis que line relie les points de gauche à droite.&lt;br /&gt;
&lt;br /&gt;
Ainsi, on utilisera line, par exemple pour tracer l’évolution d’un phénomène en fonction de la date, tandis que l’on utilisera path pour relier les différents points selon l’ordre chronologique, dans un graphique à deux dimensions (dont aucune n’est temporelle).&lt;br /&gt;
&lt;br /&gt;
Pour illustrer, étant donné que les données &amp;quot;iris&amp;quot; sont en coupe transversale, on utilise le jeu de données « longley » qui contient des données macro-économiques annuelles (16 observations, entre 1947 et 1962).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
data(longley) #on charge le jeu de données&lt;br /&gt;
head(longley)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Geom line ====&lt;br /&gt;
Par exemple, on peut utiliser l’argument line pour tracer l’évolution temporelle du taux de chômage.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#evolution temporelle du nombre de personnes au chômage.&lt;br /&gt;
qplot(Year,Unemployed/Population, data=longley, geom=&amp;quot;line&amp;quot;,colour=I(&amp;quot;red&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Geom path ====&lt;br /&gt;
On trace ensuite par exemple le nombre de personnes au chômage en fonction du taux de chômage. L’argument path va permettre de relier les points pour visualiser la variation d’année en année. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Nombre de personnes au chômage en fonction du taux de chômage&lt;br /&gt;
qplot(Unemployed/Population,Unemployed, data=longley, geom=&amp;quot;path&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ici, même sans ajouter la couleur le graphique est clair (il y a peu d’observations, et les tracés ne se superposent pas). Mais dans d'autres cas, l'ajout de ce dégradé de couleur selon l'année permet de rendre le graphique beaucoup plus lisible.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Ajoute la couleur pour l'année&lt;br /&gt;
qplot(Unemployed/Population,Unemployed, data=longley, geom=&amp;quot;path&amp;quot;,colour=Year)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comme pour tout graphique, il est possible (et conseillé) d’ajouter un titre au graphique et au axes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 ## ajout titre&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,xlab=&amp;quot;Longueur de la sépale&amp;quot;,ylab=&amp;quot;Largeur de la sépale&amp;quot;,main=&amp;quot;Iris data scatterplot&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5893</id>
		<title>Package R ggplot2</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5893"/>
				<updated>2014-07-16T10:38:37Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ggplot2 est un package de R qui permet de réaliser des graphiques plus perfectionnés, et au design plus moderne. Pour cela, il existe deux fonctions : &lt;br /&gt;
* QPLOT (pour &amp;quot;Quick Plot&amp;quot;) qui est la fonction &amp;quot;de base&amp;quot; du package (mais qui offre de grandes possibilités). Syntaxe générale : qplot(x,y,data=database)&lt;br /&gt;
* GGPLOT va permettre de créer des graphiques extrêmement perfectionnés. Sa syntaxe diffère de la syntaxe habituelle : ggplot(data=data,aes=(x,y)) +layers. La fonction ggplot (argument data et aes pour &amp;quot;aesthetic mapping&amp;quot;) va permettre de créer le graphique en lui même, et les layers vont permettre d'ajouter des paramètres modifiant la représentation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##### On installe le package&lt;br /&gt;
install.packages(&amp;quot;ggplot2&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois installé, il suffit de charger le package, avant de vouloir l'utiliser.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge le package&lt;br /&gt;
library(ggplot2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Jeu de données : ==&lt;br /&gt;
Pour illustrer, on utilise le jeu de données « iris » de R, qui contient 150 observations de 5 variables : 4 variables de type quantitatif, et une de type qualitatif (Species).&lt;br /&gt;
* Sepal.Length : longueur de la sépale&lt;br /&gt;
* Sepal.Width : largeur de la sépale Petal.Length : longueur du pétale&lt;br /&gt;
* Petal.Width : largeur du pétale&lt;br /&gt;
* Species : espèce.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge les données&lt;br /&gt;
data(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La fonction head(dataset) permet d’avoir un aperçu des premières lignes du jeu de données : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
head(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention ! pour utiliser ggplot2, les données doivent être sous la forme « data.frame », ce qui peut être vérifié par : class(dataset), et corrigé si besoin avec as.data.frame(dataset)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class(iris)&lt;br /&gt;
as.data.frame(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== QPLOT ==&lt;br /&gt;
&lt;br /&gt;
La syntaxe ressemble effectivement à celle de la fonction plot() (package &amp;quot;de base&amp;quot; de R).&lt;br /&gt;
&lt;br /&gt;
''qplot(x, y = NULL, ..., data, facets = NULL, margins = FALSE, geom = &amp;quot;auto&amp;quot;, stat = list(NULL), position = list(NULL), xlim = c(NA,NA), ylim = c(NA, NA), log = &amp;quot;&amp;quot;, main = NULL, xlab = deparse(substitute(x)), ylab = deparse(substitute(y)), asp = NA)''&lt;br /&gt;
&lt;br /&gt;
=== Objet géométrique ===&lt;br /&gt;
&lt;br /&gt;
L’argument geom() (pour objet géométrique) va permettre de réaliser différents graphiques à une ou deux dimensions. &lt;br /&gt;
Par défaut : &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type de la variable&lt;br /&gt;
! Objet par défaut&lt;br /&gt;
|-&lt;br /&gt;
| Quantitative&lt;br /&gt;
| geom =&amp;quot;histogram&amp;quot;  &lt;br /&gt;
|-&lt;br /&gt;
| Qualitative&lt;br /&gt;
| geom=&amp;quot;bar&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Deux variables quantitatives&lt;br /&gt;
| geom=&amp;quot;point&amp;quot; (scatterplot)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
De nombreux graphiques sont possibles (voir geom dans la documentation du package ggplot2, ou  en page 56). Parmi les plus utilisés : &lt;br /&gt;
&lt;br /&gt;
'''Pour une variable à analyser :''' &lt;br /&gt;
* histogram : histogramme (variable quantitative continue)&lt;br /&gt;
* density : trace la courbe de densité (variable quantitative continue)&lt;br /&gt;
* freqpoly : polynôme de fréquence (variable quantitative continue)&lt;br /&gt;
* bar : diagramme en bâton (variable discrète)&lt;br /&gt;
&lt;br /&gt;
'''Pour deux variables :''' &lt;br /&gt;
* point : scatterplot&lt;br /&gt;
* smooth : trace une courbe de tendance et son écart-type&lt;br /&gt;
* boxplot : boxplot &lt;br /&gt;
* line : trace des lignes entre les points (de la gauche vers la droite)&lt;br /&gt;
* path : trace des lignes entre les points (dans n’importe quelle direction)&lt;br /&gt;
&lt;br /&gt;
A noter également que les objets géométriques peuvent être combinés (à partir du moment où cela est raisonnable sur le plan statistique).&lt;br /&gt;
&lt;br /&gt;
=== Une dimension ===&lt;br /&gt;
&lt;br /&gt;
==== Variable quantitative, continue. ====&lt;br /&gt;
&lt;br /&gt;
===== Histogramme =====&lt;br /&gt;
C'est le graphique tracé par défaut lorsque la variable indiquée est de type quantitatif (continu).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On peut l'améliorer : changer la couleur de remplissage (argument fill) et/ou la couleur de la bordure (argument colour) :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;)) ## couleur de remplissage en orange&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;),colour=I(&amp;quot;black&amp;quot;))  ## et bordure en noir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De plus, QQPLOT permet d’adapter la largeur des classes utilisées pour tracer l’histogramme, et donc d’avoir un degré de précision plus ou moins élevé, grâce à l’argument binwidth.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;),binwidth=1)  ## larges classes&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,binwidth=0.05)  ## classes ressérées&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Courbe de densité =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;density&amp;quot;,colour=I(&amp;quot;red&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Polynôme de fréquence =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;freqpoly&amp;quot;,colour=I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Variable discrète =====&lt;br /&gt;
&lt;br /&gt;
Le graphique produit par défaut est un diagramme en bâton (à ne pas confondre avec un histogramme !!! voir [[Statistiques descriptives avec R]]) &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Species,data=iris,geom=&amp;quot;bar&amp;quot;,fill=I(&amp;quot;yellow&amp;quot;)) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Deux dimensions === &lt;br /&gt;
&lt;br /&gt;
==== Deux variables continues =====&lt;br /&gt;
&lt;br /&gt;
===== Scatterplot =====&lt;br /&gt;
&lt;br /&gt;
Le graphique produit par défaut par la fonction est un nuage de points classique.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Deux variables continues&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;point&amp;quot;) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les arguments de la fonction peuvent être modifiés, par exemple pour produire un graphique avec des points bleu (et non noirs).... &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## changer la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour = I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... ou  pour produire un graphique avec des « + » à la place des points.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## changer le symbole&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,shape=I(3))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de modifier la taille des points sur le graphique, à l’aide de l’argument size par exemple pour affiner les points ou les grossir(par défaut, size=I(2)).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## taille&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,size=I(1))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, l’argument alpha est utile en cas de nombre conséquent d’observations qui vont se superposer sur le graphique (ce qui n’est pas le cas ici). En ajustant la transparence, il permet d’améliorer la lisibilité du graphique. Par défaut alpha=I(1), et l’utilisateur peut fixer alpha=I(1/x), avec x le nombre nécessaire d’observations qui se superposent pour obtenir une couleur opaque.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## transparence&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,alpha=I(1/10))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Courbe de tendance =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;smooth&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
à noter que la méthode pour tracer la courbe de tendance peut être changée par l’utilisateur grâce à l’argument «method= (par défaut, method=« loess » pour un nombre d’observations faible). Par exemple, method=« lm » permet de tracer une droite de regression linéaire.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;smooth&amp;quot;,method=&amp;quot;lm&amp;quot;) # lm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il peut être utile de combiner l'objet géométrique courbe de tendance avec un nuage de points : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),method=&amp;quot;lm&amp;quot;) #combiné&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le tracé peut être plus ou moins sinueux grâce à l’argument span, allant de 0 à 1.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##sinuosité&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),span=0.2)&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),span=1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;line&amp;quot;)&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;path&amp;quot;)&lt;br /&gt;
#Une continue, une discrete&lt;br /&gt;
qplot(Species,Sepal.Length, data=iris, geom=&amp;quot;boxplot&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Les objets géométriques peuvent être combinés avec c(). En particulier, la courbe de tendance peut être ajoutée au nuage de points.&lt;br /&gt;
&lt;br /&gt;
## combiné&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Graphiques par sous-groupes : === &lt;br /&gt;
&lt;br /&gt;
==== Sur le même graphique ====&lt;br /&gt;
On peut présenter les observations issues de différentes sous-populations définies par les niveaux de la variable facteur group, soit d’une couleur différente (contour ou remplissage), soit d’un symbole différent.&lt;br /&gt;
Rappel : &lt;br /&gt;
* argument colour = bordure&lt;br /&gt;
* argument fill = remplissage&lt;br /&gt;
* argument shape = symbole&lt;br /&gt;
&lt;br /&gt;
Par exemple l’argument colour=group permet de présenter d'une couleur différente sur le nuage de points, les observations issues de différentes sous-populations, définies par les niveaux de la variable facteur group.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## ajoute de la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour=Species)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On peut faire de même sur un graphique de type scatterplot grâce à l’argument shape=group, avec cette fois des symboles différents, selon le niveau de la variable group.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,geom=&amp;quot;point&amp;quot;,shape=Species) #symboles&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
C’est aussi réalisable sur des courbes de densité (argument colour).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# densité&lt;br /&gt;
qplot(Sepal.Length, data=iris,geom=&amp;quot;density&amp;quot;,colour=Species)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour un histogramme, l’agument à utiliser est fill=group pour modifier le remplissage.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#histogramme&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=Species) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Sur des graphiques différents ====&lt;br /&gt;
QPLOT offre aussi la possibilité de créer plusieurs graphiques juxtaposés, correspondant à un même graphique pour chacune des différentes sous-populations définies par une variable group. On utilise l’argument facets=. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
facets= . ~ group va présenter les graphiques cote à cote (horizontalement), tandis que facets= group ~ . les superposera (verticalement). &lt;br /&gt;
&lt;br /&gt;
Par exemple ici, l’histogramme pour la variable Sepal.Length, pour chaque espèce. On constate qu’il est préférable de les présenter verticalement, sinon les histogrammes sont écrasés et peu lisibles.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,facets = Species ~ .,geom=&amp;quot;histogram&amp;quot;,binwidth=0.1) #ordre vertical&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,facets = . ~ Species,geom=&amp;quot;histogram&amp;quot;,binwidth=0.1) #ordre horizontal&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Données en séries temporelles ====&lt;br /&gt;
&lt;br /&gt;
Line et path sont utilisés dans le cas de séries temporelles. On rappelle que la différence entre les deux provient du fait que path relie les points dans n’importe quelle direction (pourvu qu’il apparaissent en suivant dans la base de données), tandis que line relie les points de gauche à droite.&lt;br /&gt;
&lt;br /&gt;
Ainsi, on utilisera line, par exemple pour tracer l’évolution d’un phénomène en fonction de la date, tandis que l’on utilisera path pour relier les différents points selon l’ordre chronologique, dans un graphique à deux dimensions (dont aucune n’est temporelle).&lt;br /&gt;
&lt;br /&gt;
Pour illustrer, étant donné que les données &amp;quot;iris&amp;quot; sont en coupe transversale, on utilise le jeu de données « longley » qui contient des données macro-économiques annuelles (16 observations, entre 1947 et 1962).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
data(longley) #on charge le jeu de données&lt;br /&gt;
head(longley)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Geom line ====&lt;br /&gt;
Par exemple, on peut utiliser l’argument line pour tracer l’évolution temporelle du taux de chômage.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#evolution temporelle du nombre de personnes au chômage.&lt;br /&gt;
qplot(Year,Unemployed/Population, data=longley, geom=&amp;quot;line&amp;quot;,colour=I(&amp;quot;red&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Geom path ====&lt;br /&gt;
On trace ensuite par exemple le nombre de personnes au chômage en fonction du taux de chômage. L’argument path va permettre de relier les points pour visualiser la variation d’année en année. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Nombre de personnes au chômage en fonction du taux de chômage&lt;br /&gt;
qplot(Unemployed/Population,Unemployed, data=longley, geom=&amp;quot;path&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ici, même sans ajouter la couleur le graphique est clair (il y a peu d’observations, et les tracés ne se superposent pas). Mais dans d'autres cas, l'ajout de ce dégradé de couleur selon l'année permet de rendre le graphique beaucoup plus lisible.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Ajoute la couleur pour l'année&lt;br /&gt;
qplot(Unemployed/Population,Unemployed, data=longley, geom=&amp;quot;path&amp;quot;,colour=Year)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comme pour tout graphique, il est possible (et conseillé) d’ajouter un titre au graphique et au axes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 ## ajout titre&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,xlab=&amp;quot;Longueur de la sépale&amp;quot;,ylab=&amp;quot;Largeur de la sépale&amp;quot;,main=&amp;quot;Iris data scatterplot&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5892</id>
		<title>Package R ggplot2</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5892"/>
				<updated>2014-07-16T10:12:07Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ggplot2 est un package de R qui permet de réaliser des graphiques plus perfectionnés, et au design plus moderne. Pour cela, il existe deux fonctions : &lt;br /&gt;
* QPLOT (pour &amp;quot;Quick Plot&amp;quot;) qui est la fonction &amp;quot;de base&amp;quot; du package (mais qui offre de grandes possibilités). Syntaxe générale : qplot(x,y,data=database)&lt;br /&gt;
* GGPLOT va permettre de créer des graphiques extrêmement perfectionnés. Sa syntaxe diffère de la syntaxe habituelle : ggplot(data=data,aes=(x,y)) +layers. La fonction ggplot (argument data et aes pour &amp;quot;aesthetic mapping&amp;quot;) va permettre de créer le graphique en lui même, et les layers vont permettre d'ajouter des paramètres modifiant la représentation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##### On installe le package&lt;br /&gt;
install.packages(&amp;quot;ggplot2&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois installé, il suffit de charger le package, avant de vouloir l'utiliser.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge le package&lt;br /&gt;
library(ggplot2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Jeu de données : ==&lt;br /&gt;
Pour illustrer, on utilise le jeu de données « iris » de R, qui contient 150 observations de 5 variables : 4 variables de type quantitatif, et une de type qualitatif (Species).&lt;br /&gt;
* Sepal.Length : longueur de la sépale&lt;br /&gt;
* Sepal.Width : largeur de la sépale Petal.Length : longueur du pétale&lt;br /&gt;
* Petal.Width : largeur du pétale&lt;br /&gt;
* Species : espèce.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge les données&lt;br /&gt;
data(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La fonction head(dataset) permet d’avoir un aperçu des premières lignes du jeu de données : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
head(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention ! pour utiliser ggplot2, les données doivent être sous la forme « data.frame », ce qui peut être vérifié par : class(dataset), et corrigé si besoin avec as.data.frame(dataset)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class(iris)&lt;br /&gt;
as.data.frame(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== QPLOT ==&lt;br /&gt;
&lt;br /&gt;
La syntaxe ressemble effectivement à celle de la fonction plot() (package &amp;quot;de base&amp;quot; de R).&lt;br /&gt;
&lt;br /&gt;
''qplot(x, y = NULL, ..., data, facets = NULL, margins = FALSE, geom = &amp;quot;auto&amp;quot;, stat = list(NULL), position = list(NULL), xlim = c(NA,NA), ylim = c(NA, NA), log = &amp;quot;&amp;quot;, main = NULL, xlab = deparse(substitute(x)), ylab = deparse(substitute(y)), asp = NA)''&lt;br /&gt;
&lt;br /&gt;
=== Objet géométrique ===&lt;br /&gt;
&lt;br /&gt;
L’argument geom() (pour objet géométrique) va permettre de réaliser différents graphiques à une ou deux dimensions. &lt;br /&gt;
Par défaut : &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type de la variable&lt;br /&gt;
! Objet par défaut&lt;br /&gt;
|-&lt;br /&gt;
| Quantitative&lt;br /&gt;
| geom =&amp;quot;histogram&amp;quot;  &lt;br /&gt;
|-&lt;br /&gt;
| Qualitative&lt;br /&gt;
| geom=&amp;quot;bar&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Deux variables quantitatives&lt;br /&gt;
| geom=&amp;quot;point&amp;quot; (scatterplot)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
De nombreux graphiques sont possibles (voir geom dans la documentation du package ggplot2, ou  en page 56). Parmi les plus utilisés : &lt;br /&gt;
&lt;br /&gt;
'''Pour une variable à analyser :''' &lt;br /&gt;
* histogram : histogramme (variable quantitative continue)&lt;br /&gt;
* density : trace la courbe de densité (variable quantitative continue)&lt;br /&gt;
* freqpoly : polynôme de fréquence (variable quantitative continue)&lt;br /&gt;
* bar : diagramme en bâton (variable discrète)&lt;br /&gt;
&lt;br /&gt;
'''Pour deux variables :''' &lt;br /&gt;
* point : scatterplot&lt;br /&gt;
* smooth : trace une courbe de tendance et son écart-type&lt;br /&gt;
* boxplot : boxplot &lt;br /&gt;
* line : trace des lignes entre les points (de la gauche vers la droite)&lt;br /&gt;
* path : trace des lignes entre les points (dans n’importe quelle direction)&lt;br /&gt;
&lt;br /&gt;
A noter également que les objets géométriques peuvent être combinés (à partir du moment où cela est raisonnable sur le plan statistique).&lt;br /&gt;
&lt;br /&gt;
=== Une variable ===&lt;br /&gt;
&lt;br /&gt;
==== Variable quantitative, continue. ====&lt;br /&gt;
&lt;br /&gt;
===== Histogramme =====&lt;br /&gt;
C'est le graphique tracé par défaut lorsque la variable indiquée est de type quantitatif (continu).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On peut l'améliorer : changer la couleur de remplissage (argument fill) et/ou la couleur de la bordure (argument colour) :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;)) ## couleur de remplissage en orange&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;),colour=I(&amp;quot;black&amp;quot;))  ## et bordure en noir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De plus, QQPLOT permet d’adapter la largeur des classes utilisées pour tracer l’histogramme, et donc d’avoir un degré de précision plus ou moins élevé, grâce à l’argument binwidth.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;),binwidth=1)  ## larges classes&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,binwidth=0.05)  ## classes ressérées&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Courbe de densité =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;density&amp;quot;,colour=I(&amp;quot;red&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Polynôme de fréquence =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;freqpoly&amp;quot;,colour=I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Variable discrète =====&lt;br /&gt;
&lt;br /&gt;
Le graphique produit par défaut est un diagramme en bâton (à ne pas confondre avec un histogramme !!! voir [[Statistiques descriptives avec R]]) &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Species,data=iris,geom=&amp;quot;bar&amp;quot;,fill=I(&amp;quot;yellow&amp;quot;)) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Deux variables ===&lt;br /&gt;
&lt;br /&gt;
==== x et y continues ====&lt;br /&gt;
&lt;br /&gt;
===== Scatterplot =====&lt;br /&gt;
&lt;br /&gt;
Le graphique produit par défaut par la fonction est un nuage de points classique.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Deux variables continues&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;point&amp;quot;) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les arguments de la fonction peuvent être modifiés, par exemple pour produire un graphique avec des points bleu (et non noirs).... &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## changer la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour = I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... ou  pour produire un graphique avec des « + » à la place des points.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## changer le symbole&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,shape=I(3))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de modifier la taille des points sur le graphique, à l’aide de l’argument size par exemple pour affiner les points ou les grossir(par défaut, size=I(2)).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## taille&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,size=I(1))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, l’argument alpha est utile en cas de nombre conséquent d’observations qui vont se superposer sur le graphique (ce qui n’est pas le cas ici). En ajustant la transparence, il permet d’améliorer la lisibilité du graphique. Par défaut alpha=I(1), et l’utilisateur peut fixer alpha=I(1/x), avec x le nombre nécessaire d’observations qui se superposent pour obtenir une couleur opaque.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## transparence&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,alpha=I(1/10))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Courbe de tendance ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;smooth&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
à noter que la méthode pour tracer la courbe de tendance peut être changée par l’utilisateur grâce à l’argument «method= (par défaut, method=« loess » pour un nombre d’observations faible). Par exemple, method=« lm » permet de tracer une droite de regression linéaire.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;smooth&amp;quot;,method=&amp;quot;lm&amp;quot;) # lm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il peut être utile de combiner l'objet géométrique courbe de tendance avec un nuage de points : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),method=&amp;quot;lm&amp;quot;) #combiné&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le tracé peut être plus ou moins sinueux grâce à l’argument span, allant de 0 à 1.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##sinuosité&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),span=0.2)&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;),span=1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;line&amp;quot;)&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;path&amp;quot;)&lt;br /&gt;
#Une continue, une discrete&lt;br /&gt;
qplot(Species,Sepal.Length, data=iris, geom=&amp;quot;boxplot&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Les objets géométriques peuvent être combinés avec c(). En particulier, la courbe de tendance peut être ajoutée au nuage de points.&lt;br /&gt;
&lt;br /&gt;
## combiné&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Graphiques par sous-groupes.&lt;br /&gt;
On peut présenter les observations issues de différentes sous-populations définies par les niveaux de la variable facteur group, soit d’une couleur différente, soit d’un symbole différent. &lt;br /&gt;
&lt;br /&gt;
Par exemple l’argument colour=group permet de présenter d’une couleur les observations issues de différentes sous-populations, définies par les niveaux de la variable facteur group.&lt;br /&gt;
&lt;br /&gt;
## ajoute de la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour=Species)&lt;br /&gt;
&lt;br /&gt;
On peut faire de même sur un graphique de type scatterplot grâce à l’argument shape=group, avec cette fois des symboles différents, selon le niveau de la variable group.&lt;br /&gt;
&lt;br /&gt;
C’est aussi réalisable sur des courbes de densité (argument colour), ou des histogrammes (attention, ici l’agument à utiliser est fill=group)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
plot offre aussi la possibilité de créer plusieurs graphiques juxtaposés, correspondant à un même graphique, sur différentes sous-populations définies par une variable group. On utilise l’argument facets=. facets= . ~ group va présenter les graphiques cote à cote (horizontalement), tandis que facets= group ~ . les superposera (verticalement). &lt;br /&gt;
Par exemple ici, l’histogramme pour la variable Sepal.Length, pour chaque espèce. On constate qu’il est préférable de les présenter verticalement, sinon les histogrammes sont écrasés et peu lisibles.&lt;br /&gt;
&lt;br /&gt;
## séries temporelles&lt;br /&gt;
Line et path sont utilise dans le cas de séries temporelles.&lt;br /&gt;
On rappelle que la différence entre les deux provient du fait que path relie les points dans n’importe quelle direction (pourvu qu’il apparaissent en suivant dans la base de données), tandis que line relie les points de gauche à droite.&lt;br /&gt;
Ainsi, on utilisera line, par exemple pour tracer l’évolution d’un phénomène en fonction de la date, tandis que l’on utilisera path pour relier les différents points selon l’ordre chronologique, dans un graphique à deux dimensions (dont aucune n’est temporelle).&lt;br /&gt;
&lt;br /&gt;
Pour illustrer, on utilise le jeu de données « longley » qui contient des données macro-économiques annuelles (16 observations, entre 1947 et 1962).&lt;br /&gt;
Par exemple, on peut utiliser l’argument line pour tracer l’évolution temporelle du taux de chômage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trace ensuite par exemple le nombre de personnes au chômage en fonction du taux de chômage. L’argument path va permettre de relier les points pour visualiser la variation d’année en année. &lt;br /&gt;
Ici le graphique est clair (il y a peu d’observations, et les tracés ne se superposent pas), mais il est possible de le rendre plus lisible en ajoutant de la couleur selon l’année.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comme pour tout graphique, il est possible (et conseillé) d’ajouter un titre au graphique et au axes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 ## ajout titre&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,xlab=&amp;quot;Longueur de la sépale&amp;quot;,ylab=&amp;quot;Largeur de la sépale&amp;quot;,main=&amp;quot;Iris data scatterplot&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5891</id>
		<title>Package R ggplot2</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5891"/>
				<updated>2014-07-16T09:54:29Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ggplot2 est un package de R qui permet de réaliser des graphiques plus perfectionnés, et au design plus moderne. Pour cela, il existe deux fonctions : &lt;br /&gt;
* QPLOT (pour &amp;quot;Quick Plot&amp;quot;) qui est la fonction &amp;quot;de base&amp;quot; du package (mais qui offre de grandes possibilités). Syntaxe générale : qplot(x,y,data=database)&lt;br /&gt;
* GGPLOT va permettre de créer des graphiques extrêmement perfectionnés. Sa syntaxe diffère de la syntaxe habituelle : ggplot(data=data,aes=(x,y)) +layers. La fonction ggplot (argument data et aes pour &amp;quot;aesthetic mapping&amp;quot;) va permettre de créer le graphique en lui même, et les layers vont permettre d'ajouter des paramètres modifiant la représentation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##### On installe le package&lt;br /&gt;
install.packages(&amp;quot;ggplot2&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois installé, il suffit de charger le package, avant de vouloir l'utiliser.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge le package&lt;br /&gt;
library(ggplot2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Jeu de données : ==&lt;br /&gt;
Pour illustrer, on utilise le jeu de données « iris » de R, qui contient 150 observations de 5 variables : 4 variables de type quantitatif, et une de type qualitatif (Species).&lt;br /&gt;
* Sepal.Length : longueur de la sépale&lt;br /&gt;
* Sepal.Width : largeur de la sépale Petal.Length : longueur du pétale&lt;br /&gt;
* Petal.Width : largeur du pétale&lt;br /&gt;
* Species : espèce.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge les données&lt;br /&gt;
data(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La fonction head(dataset) permet d’avoir un aperçu des premières lignes du jeu de données : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
head(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention ! pour utiliser ggplot2, les données doivent être sous la forme « data.frame », ce qui peut être vérifié par : class(dataset), et corrigé si besoin avec as.data.frame(dataset)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class(iris)&lt;br /&gt;
as.data.frame(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== QPLOT ==&lt;br /&gt;
&lt;br /&gt;
La syntaxe ressemble effectivement à celle de la fonction plot() (package &amp;quot;de base&amp;quot; de R).&lt;br /&gt;
&lt;br /&gt;
''qplot(x, y = NULL, ..., data, facets = NULL, margins = FALSE, geom = &amp;quot;auto&amp;quot;, stat = list(NULL), position = list(NULL), xlim = c(NA,NA), ylim = c(NA, NA), log = &amp;quot;&amp;quot;, main = NULL, xlab = deparse(substitute(x)), ylab = deparse(substitute(y)), asp = NA)''&lt;br /&gt;
&lt;br /&gt;
=== Objet géométrique ===&lt;br /&gt;
&lt;br /&gt;
L’argument geom() (pour objet géométrique) va permettre de réaliser différents graphiques à une ou deux dimensions. &lt;br /&gt;
Par défaut : &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type de la variable&lt;br /&gt;
! Objet par défaut&lt;br /&gt;
|-&lt;br /&gt;
| Quantitative&lt;br /&gt;
| geom =&amp;quot;histogram&amp;quot;  &lt;br /&gt;
|-&lt;br /&gt;
| Qualitative&lt;br /&gt;
| geom=&amp;quot;bar&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Deux variables quantitatives&lt;br /&gt;
| geom=&amp;quot;point&amp;quot; (scatterplot)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
De nombreux graphiques sont possibles (voir geom dans la documentation du package ggplot2, ou  en page 56). Parmi les plus utilisés : &lt;br /&gt;
&lt;br /&gt;
'''Pour une variable à analyser :''' &lt;br /&gt;
* histogram : histogramme (variable quantitative continue)&lt;br /&gt;
* density : trace la courbe de densité (variable quantitative continue)&lt;br /&gt;
* freqpoly : polynôme de fréquence (variable quantitative continue)&lt;br /&gt;
* bar : diagramme en bâton (variable discrète)&lt;br /&gt;
&lt;br /&gt;
'''Pour deux variables :''' &lt;br /&gt;
* point : scatterplot&lt;br /&gt;
* smooth : trace une courbe de tendance et son écart-type&lt;br /&gt;
* boxplot : boxplot &lt;br /&gt;
* line : trace des lignes entre les points (de la gauche vers la droite)&lt;br /&gt;
* path : trace des lignes entre les points (dans n’importe quelle direction)&lt;br /&gt;
&lt;br /&gt;
=== Une variable ===&lt;br /&gt;
&lt;br /&gt;
==== Variable quantitative, continue. ====&lt;br /&gt;
&lt;br /&gt;
===== Histogramme =====&lt;br /&gt;
C'est le graphique tracé par défaut lorsque la variable indiquée est de type quantitatif (continu).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On peut l'améliorer : changer la couleur de remplissage (argument fill) et/ou la couleur de la bordure (argument colour) :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;)) ## couleur de remplissage en orange&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;),colour=I(&amp;quot;black&amp;quot;))  ## et bordure en noir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De plus, QQPLOT permet d’adapter la largeur des classes utilisées pour tracer l’histogramme, et donc d’avoir un degré de précision plus ou moins élevé, grâce à l’argument binwidth.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,fill=I(&amp;quot;orange&amp;quot;),binwidth=1)  ## larges classes&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;,binwidth=0.05)  ## classes ressérées&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Courbe de densité =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;density&amp;quot;,colour=I(&amp;quot;red&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Polynôme de fréquence =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;freqpoly&amp;quot;,colour=I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Variable discrète =====&lt;br /&gt;
&lt;br /&gt;
Le graphique produit par défaut est un diagramme en bâton (à ne pas confondre avec un histogramme !!! voir [[Statistiques descriptives avec R]]) &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qplot(Species,data=iris,geom=&amp;quot;bar&amp;quot;,fill=I(&amp;quot;yellow&amp;quot;)) #par défaut&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ainsi, le graphique produit par défaut par la fonction est un nuage de points classique.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Qplot&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme pour tout graphique, il est possible (et conseillé) d’ajouter un titre au graphique et au axes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 ## ajout titre&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,xlab=&amp;quot;Longueur de la sépale&amp;quot;,ylab=&amp;quot;Largeur de la sépale&amp;quot;,main=&amp;quot;Iris data scatterplot&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le graphique peut être amélioré par l’ajout d’arguments à la fonction.&lt;br /&gt;
De manière plus générale, ces arguments peuvent être modifiés ; par exemple produire un graphique avec des points bleu (et non noirs), ou des « + » à la place des points.&lt;br /&gt;
&lt;br /&gt;
## changer la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour = I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
## changer le symbole&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,shape=I(3))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de modifier la taille des points sur le graphique, à l’aide de l’argument size par exemple pour affiner les points ou les grossir(par défaut, size=I(2)).&lt;br /&gt;
&lt;br /&gt;
## taille&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,size=I(1))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin, l’argument alpha est utile en cas de nombre conséquent d’observations qui vont se superposer sur le graphique (ce qui n’est pas le cas ici). En ajustant la transparence, il permet d’améliorer la lisibilité du graphique. Par défaut alpha=I(1). L’utilisateur peut fixer alpha=I(1/x), avec x le nombre nécessaire d’observations qui se superposent pour obtenir une couleur opaque.&lt;br /&gt;
&lt;br /&gt;
## transparence&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,alpha=I(1/10))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Une variable&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;) #par défaut&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;density&amp;quot;)&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;freqpoly&amp;quot;)&lt;br /&gt;
qplot(Species,data=iris,geom=&amp;quot;bar&amp;quot;) #par défaut&lt;br /&gt;
&lt;br /&gt;
#Deux variables continues&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;point&amp;quot;) #par défaut&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;smooth&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
à noter que la méthode pour tracer la courbe de tendance peut être changée par l’utilisateur grâce à l’argument «method= (par défaut, method=« loess » pour un nombre d’observations faible). Par exemple, method=« lm » permet de tracer une droite de regression linéaire.&lt;br /&gt;
Le tracé peut être plus ou moins sinueux grâce à l’argument span, allant de 0 à 1.&lt;br /&gt;
&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;line&amp;quot;)&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;path&amp;quot;)&lt;br /&gt;
#Une continue, une discrete&lt;br /&gt;
qplot(Species,Sepal.Length, data=iris, geom=&amp;quot;boxplot&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Les objets géométriques peuvent être combinés avec c(). En particulier, la courbe de tendance peut être ajoutée au nuage de points.&lt;br /&gt;
&lt;br /&gt;
## combiné&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Graphiques par sous-groupes.&lt;br /&gt;
On peut présenter les observations issues de différentes sous-populations définies par les niveaux de la variable facteur group, soit d’une couleur différente, soit d’un symbole différent. &lt;br /&gt;
&lt;br /&gt;
Par exemple l’argument colour=group permet de présenter d’une couleur les observations issues de différentes sous-populations, définies par les niveaux de la variable facteur group.&lt;br /&gt;
&lt;br /&gt;
## ajoute de la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour=Species)&lt;br /&gt;
&lt;br /&gt;
On peut faire de même sur un graphique de type scatterplot grâce à l’argument shape=group, avec cette fois des symboles différents, selon le niveau de la variable group.&lt;br /&gt;
&lt;br /&gt;
C’est aussi réalisable sur des courbes de densité (argument colour), ou des histogrammes (attention, ici l’agument à utiliser est fill=group)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
plot offre aussi la possibilité de créer plusieurs graphiques juxtaposés, correspondant à un même graphique, sur différentes sous-populations définies par une variable group. On utilise l’argument facets=. facets= . ~ group va présenter les graphiques cote à cote (horizontalement), tandis que facets= group ~ . les superposera (verticalement). &lt;br /&gt;
Par exemple ici, l’histogramme pour la variable Sepal.Length, pour chaque espèce. On constate qu’il est préférable de les présenter verticalement, sinon les histogrammes sont écrasés et peu lisibles.&lt;br /&gt;
&lt;br /&gt;
## séries temporelles&lt;br /&gt;
Line et path sont utilise dans le cas de séries temporelles.&lt;br /&gt;
On rappelle que la différence entre les deux provient du fait que path relie les points dans n’importe quelle direction (pourvu qu’il apparaissent en suivant dans la base de données), tandis que line relie les points de gauche à droite.&lt;br /&gt;
Ainsi, on utilisera line, par exemple pour tracer l’évolution d’un phénomène en fonction de la date, tandis que l’on utilisera path pour relier les différents points selon l’ordre chronologique, dans un graphique à deux dimensions (dont aucune n’est temporelle).&lt;br /&gt;
&lt;br /&gt;
Pour illustrer, on utilise le jeu de données « longley » qui contient des données macro-économiques annuelles (16 observations, entre 1947 et 1962).&lt;br /&gt;
Par exemple, on peut utiliser l’argument line pour tracer l’évolution temporelle du taux de chômage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trace ensuite par exemple le nombre de personnes au chômage en fonction du taux de chômage. L’argument path va permettre de relier les points pour visualiser la variation d’année en année. &lt;br /&gt;
Ici le graphique est clair (il y a peu d’observations, et les tracés ne se superposent pas), mais il est possible de le rendre plus lisible en ajoutant de la couleur selon l’année.&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	<entry>
		<id>https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5890</id>
		<title>Package R ggplot2</title>
		<link rel="alternate" type="text/html" href="https://odr.inra.fr/intranet/carto/cartowiki/index.php?title=Package_R_ggplot2&amp;diff=5890"/>
				<updated>2014-07-16T09:32:36Z</updated>
		
		<summary type="html">&lt;p&gt;Ccahuzac : Page créée avec « Ggplot2 est un package de R qui permet de réaliser des graphiques plus perfectionnés, et au design plus moderne. Pour cela, il existe deux fonctions :  * QPLOT (pour &amp;quot;Qu... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ggplot2 est un package de R qui permet de réaliser des graphiques plus perfectionnés, et au design plus moderne. Pour cela, il existe deux fonctions : &lt;br /&gt;
* QPLOT (pour &amp;quot;Quick Plot&amp;quot;) qui est la fonction &amp;quot;de base&amp;quot; du package (mais qui offre de grandes possibilités). Syntaxe générale : qplot(x,y,data=database)&lt;br /&gt;
* GGPLOT va permettre de créer des graphiques extrêmement perfectionnés. Sa syntaxe diffère de la syntaxe habituelle : ggplot(data=data,aes=(x,y)) +layers. La fonction ggplot (argument data et aes pour &amp;quot;aesthetic mapping&amp;quot;) va permettre de créer le graphique en lui même, et les layers vont permettre d'ajouter des paramètres modifiant la représentation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##### On installe le package&lt;br /&gt;
install.packages(&amp;quot;ggplot2&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois installé, il suffit de charger le package, avant de vouloir l'utiliser.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge le package&lt;br /&gt;
library(ggplot2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Jeu de données : ==&lt;br /&gt;
Pour illustrer, on utilise le jeu de données « iris » de R, qui contient 150 observations de 5 variables : 4 variables de type quantitatif, et une de type qualitatif (Species).&lt;br /&gt;
* Sepal.Length : longueur de la sépale&lt;br /&gt;
* Sepal.Width : largeur de la sépale Petal.Length : longueur du pétale&lt;br /&gt;
* Petal.Width : largeur du pétale&lt;br /&gt;
* Species : espèce.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### On charge les données&lt;br /&gt;
data(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La fonction head(dataset) permet d’avoir un aperçu des premières lignes du jeu de données : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
head(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Attention ! pour utiliser ggplot2, les données doivent être sous la forme « data.frame », ce qui peut être vérifié par : class(dataset), et corrigé si besoin avec as.data.frame(dataset)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class(iris)&lt;br /&gt;
as.data.frame(iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== QPLOT ==&lt;br /&gt;
&lt;br /&gt;
La syntaxe ressemble effectivement à celle de la fonction plot() (package &amp;quot;de base&amp;quot; de R).&lt;br /&gt;
&lt;br /&gt;
''qplot(x, y = NULL, ..., data, facets = NULL, margins = FALSE,&lt;br /&gt;
  geom = &amp;quot;auto&amp;quot;, stat = list(NULL), position = list(NULL), xlim = c(NA,NA), ylim = c(NA, NA), log = &amp;quot;&amp;quot;, main = NULL,&lt;br /&gt;
  xlab = deparse(substitute(x)), ylab = deparse(substitute(y)), asp = NA)''&lt;br /&gt;
&lt;br /&gt;
=== Objet géométrique ===&lt;br /&gt;
&lt;br /&gt;
L’argument geom() (pour objet géométrique) va permettre de réaliser différents graphiques à une ou deux dimensions. &lt;br /&gt;
Par défaut : &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type de la variable&lt;br /&gt;
! Objet par défaut&lt;br /&gt;
|-&lt;br /&gt;
| Quantitative&lt;br /&gt;
| geom =&amp;quot;histogram&amp;quot;  &lt;br /&gt;
|-&lt;br /&gt;
| Qualitative&lt;br /&gt;
| geom=&amp;quot;bar&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Deux variables quantitatives&lt;br /&gt;
| geom=&amp;quot;point&amp;quot; (scatterplot)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
De nombreux graphiques sont possibles (voir geom dans la documentation du package ggplot2). Parmi les plus utilisés : &lt;br /&gt;
&lt;br /&gt;
Pour une dimension : &lt;br /&gt;
* histogram : histogramme (variable quantitative continue)&lt;br /&gt;
* density : trace la courbe de densité (variable quantitative continue)&lt;br /&gt;
* freqpoly : polynôme de fréquence&lt;br /&gt;
* bar : diagramme en ba^ton (variable discrète)&lt;br /&gt;
&lt;br /&gt;
Pour deux dimensions : (page 56)&lt;br /&gt;
point : nuage de points&lt;br /&gt;
smooth : trace une courbe de tendance et son écart-type&lt;br /&gt;
boxplot : boxplot &lt;br /&gt;
line : trace des lignes entre les points (de la gauche vers la droite)&lt;br /&gt;
path : trace des lignes entre les points (dans n’importe quelle direction)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ainsi, le graphique produit par défaut par la fonction est un nuage de points classique.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Qplot&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme pour tout graphique, il est possible (et conseillé) d’ajouter un titre au graphique et au axes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 ## ajout titre&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,xlab=&amp;quot;Longueur de la sépale&amp;quot;,ylab=&amp;quot;Largeur de la sépale&amp;quot;,main=&amp;quot;Iris data scatterplot&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le graphique peut être amélioré par l’ajout d’arguments à la fonction.&lt;br /&gt;
De manière plus générale, ces arguments peuvent être modifiés ; par exemple produire un graphique avec des points bleu (et non noirs), ou des « + » à la place des points.&lt;br /&gt;
&lt;br /&gt;
## changer la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour = I(&amp;quot;blue&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
## changer le symbole&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,shape=I(3))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de modifier la taille des points sur le graphique, à l’aide de l’argument size par exemple pour affiner les points ou les grossir(par défaut, size=I(2)).&lt;br /&gt;
&lt;br /&gt;
## taille&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,size=I(1))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin, l’argument alpha est utile en cas de nombre conséquent d’observations qui vont se superposer sur le graphique (ce qui n’est pas le cas ici). En ajustant la transparence, il permet d’améliorer la lisibilité du graphique. Par défaut alpha=I(1). L’utilisateur peut fixer alpha=I(1/x), avec x le nombre nécessaire d’observations qui se superposent pour obtenir une couleur opaque.&lt;br /&gt;
&lt;br /&gt;
## transparence&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,alpha=I(1/10))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Histogramme : &lt;br /&gt;
&lt;br /&gt;
Qplot permet d’adapter la largeur des classes utilisées pour tracer l’histogramme, et donc d’avoir un degré de précision plus ou moins élevé, grâce à l’argument binwidth.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Une variable&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;histogram&amp;quot;) #par défaut&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;density&amp;quot;)&lt;br /&gt;
qplot(Sepal.Length,data=iris,geom=&amp;quot;freqpoly&amp;quot;)&lt;br /&gt;
qplot(Species,data=iris,geom=&amp;quot;bar&amp;quot;) #par défaut&lt;br /&gt;
&lt;br /&gt;
#Deux variables continues&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;point&amp;quot;) #par défaut&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;smooth&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
à noter que la méthode pour tracer la courbe de tendance peut être changée par l’utilisateur grâce à l’argument «method= (par défaut, method=« loess » pour un nombre d’observations faible). Par exemple, method=« lm » permet de tracer une droite de regression linéaire.&lt;br /&gt;
Le tracé peut être plus ou moins sinueux grâce à l’argument span, allant de 0 à 1.&lt;br /&gt;
&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;line&amp;quot;)&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=&amp;quot;path&amp;quot;)&lt;br /&gt;
#Une continue, une discrete&lt;br /&gt;
qplot(Species,Sepal.Length, data=iris, geom=&amp;quot;boxplot&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Les objets géométriques peuvent être combinés avec c(). En particulier, la courbe de tendance peut être ajoutée au nuage de points.&lt;br /&gt;
&lt;br /&gt;
## combiné&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris, geom=c(&amp;quot;point&amp;quot;,&amp;quot;smooth&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Graphiques par sous-groupes.&lt;br /&gt;
On peut présenter les observations issues de différentes sous-populations définies par les niveaux de la variable facteur group, soit d’une couleur différente, soit d’un symbole différent. &lt;br /&gt;
&lt;br /&gt;
Par exemple l’argument colour=group permet de présenter d’une couleur les observations issues de différentes sous-populations, définies par les niveaux de la variable facteur group.&lt;br /&gt;
&lt;br /&gt;
## ajoute de la couleur&lt;br /&gt;
qplot(Sepal.Length,Sepal.Width, data=iris,colour=Species)&lt;br /&gt;
&lt;br /&gt;
On peut faire de même sur un graphique de type scatterplot grâce à l’argument shape=group, avec cette fois des symboles différents, selon le niveau de la variable group.&lt;br /&gt;
&lt;br /&gt;
C’est aussi réalisable sur des courbes de densité (argument colour), ou des histogrammes (attention, ici l’agument à utiliser est fill=group)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
plot offre aussi la possibilité de créer plusieurs graphiques juxtaposés, correspondant à un même graphique, sur différentes sous-populations définies par une variable group. On utilise l’argument facets=. facets= . ~ group va présenter les graphiques cote à cote (horizontalement), tandis que facets= group ~ . les superposera (verticalement). &lt;br /&gt;
Par exemple ici, l’histogramme pour la variable Sepal.Length, pour chaque espèce. On constate qu’il est préférable de les présenter verticalement, sinon les histogrammes sont écrasés et peu lisibles.&lt;br /&gt;
&lt;br /&gt;
## séries temporelles&lt;br /&gt;
Line et path sont utilise dans le cas de séries temporelles.&lt;br /&gt;
On rappelle que la différence entre les deux provient du fait que path relie les points dans n’importe quelle direction (pourvu qu’il apparaissent en suivant dans la base de données), tandis que line relie les points de gauche à droite.&lt;br /&gt;
Ainsi, on utilisera line, par exemple pour tracer l’évolution d’un phénomène en fonction de la date, tandis que l’on utilisera path pour relier les différents points selon l’ordre chronologique, dans un graphique à deux dimensions (dont aucune n’est temporelle).&lt;br /&gt;
&lt;br /&gt;
Pour illustrer, on utilise le jeu de données « longley » qui contient des données macro-économiques annuelles (16 observations, entre 1947 et 1962).&lt;br /&gt;
Par exemple, on peut utiliser l’argument line pour tracer l’évolution temporelle du taux de chômage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On trace ensuite par exemple le nombre de personnes au chômage en fonction du taux de chômage. L’argument path va permettre de relier les points pour visualiser la variation d’année en année. &lt;br /&gt;
Ici le graphique est clair (il y a peu d’observations, et les tracés ne se superposent pas), mais il est possible de le rendre plus lisible en ajoutant de la couleur selon l’année.&lt;/div&gt;</summary>
		<author><name>Ccahuzac</name></author>	</entry>

	</feed>