Begin'R
Les statistiques avec R
Navigation
[Retour au sommaire]
# Gestion des symboles, couleurs, titre et étiquettes :Objectifs * Ajouter à un graphique, un titre, une légende, * Modifier les limites et les titres des axes, * Modifier les couleurs, les symboles. :Remarque : Besoin de quelques rappels pour l'importation et la préparation du jeu de données ? {#rq_preparation_donnees_graphiques_de_base, toggle=collapse, title-display=show} Le jeu de données Melons est issu d'une étude réelle relative à un essai variétal sur des melons. Elle a pour objectif de repérer les facteurs influençant le calibre des melons. Les liens ci-dessous permettent de télécharger le fichier de données, de visionner une vidéo expliquant la description associée et d'obtenir les lignes de code pour importer le jeu de données sur R. | Jeu de données | Excel | CSV | Présentation | Commande R | Explication | |-----------------|--------|-------------|----------------|------------|-------------| | Donnees Melons | [](donnees/DonneesMelons.xlsx) | [](donnees/DonneesMelons.csv) | [](video/DonneesMelons.html) | [Lignes de code pour importer et préparer le jeu de données](#ligne_code_importation) | [Explications sur la préparation du jeu de données](#explication_preparation_importation) | :Exemple {#ligne_code_importation, toggle=popup} ```{rC5-0-A, echo=T, eval=F} Melons <- read.csv2("DonneesMelons.csv", header = TRUE, stringsAsFactors = TRUE) Melons <- transform(Melons, Creneau = as.ordered(Creneau), Couverture = as.factor(Couverture)) quatre_melons <- subset(Melons, Variete=='Cezanne'|Variete=='Fidji'|Variete=='Hugo'|Variete=='Manta') quatre_melons$Variete <- droplevels(quatre_melons$Variete) ``` :Exemple {#explication_preparation_importation, toggle=popup} Dans un premier temps, [importer le jeu de données melons sur R Studio](caps_2_3_importation_CSV.html). ```r Melons <- read.csv2("DonneesMelons.csv", header = TRUE, stringsAsFactors = TRUE) Melons <- transform(Melons, Creneau = as.ordered(Creneau), Couverture = as.factor(Couverture)) ``` Pour ne pas alourdir les tableaux et représentations à venir, seuls quatre variétés de melons sont considérés dans la suite : `Cezanne`, `Fidji`, `Hugo` et `Manta`. Pour cela, l'extraction peut être effectuée à l'aide de la fonction **`subset()`** : ```r quatre_melons <- subset(Melons, Variete=='Cezanne'|Variete=='Fidji'|Variete=='Hugo'|Variete=='Manta') levels(quatre_melons$Variete) ``` ``` ## [1] "Anasta" "Bastille" "Cezanne" "Escrito" "Fidji" "Heliobel" ## [7] "Hugo" "Indola" "Manta" "Mehari" "Metis" "Theo" ``` Après sélection des quatre variétés, le jeu de données garde la trace des anciennes variétés. La fonction **`droplevels()`** permet de **nettoyer** le jeu de données en éliminant les modalités non utilisées : ```r quatre_melons$Variete <- droplevels(quatre_melons$Variete) levels(quatre_melons$Variete) ``` ``` ## [1] "Cezanne" "Fidji" "Hugo" "Manta" ``` Désormais, les données sont accessibles via la variable `quatre_melons`, définie sur R comme un objet de type `data.frame`. Il existe de nombreux paramètres optionnels, utilisables avec la plupart des graphiques. Les principaux sont résumés dans le tableau suivant : | Rôle | Argument | |-----------------------------------------------|-----------------------| | Type de symboles | `pch` | | Taille des symboles | `cex` | | Couleur du contour des symboles | `col` | | Couleur du fond des symboles | `bg` | | Titre du graphique | `main` | | Libellé de l'axe des abscisses (x) | `xlab` | | Libellé de l'axe des ordonnées (y) | `ylab` | | Vecteur indiquant les limites de l'axe des abscisses (x) | `xlim` | | Vecteur indiquant les limites de l'axe des ordonnées (y) | `ylim` | :Exemple {#options_grahes, toggle=collapse, title-display=show} L'exemple ci-dessous utilise la fonction `plot()`. Le paramètre `pch` permet de changer de symbole. La liste des valeurs possible est longue : 1 (o), 2 ($\triangle$), 3 (+), 4 (X), etc. Le paramètre `cex` sert à changer la taille des symboles. L'option `col` permet d'en choisir la couleur. ```r plot(quatre_melons$Plantation, quatre_melons$Poids, pch = 21, cex = 1.5, col = 'red', bg = 'pink') ```  Dans le cas de certains symboles comme le symbole `21`, on peut également choisir une couleur différente pour le fond (`bg`). La fonction **`colors()`** permet d'obtenir la liste des couleurs. Ses 8 premiers éléments sont donnés ci-dessous. ``` ## [1] "white" "aliceblue" "antiquewhite" "antiquewhite1" ## [5] "antiquewhite2" "antiquewhite3" "antiquewhite4" "aquamarine" ``` Le nom de la couleur s'écrit entre guillemets car il s'agit de chaînes de caractères : guillemets simples (`col = 'red'`) ou guillemets doubles (`col = "red"`). L'absence de guillemets signifierait qu'il s'agit de noms de variables, ce qui n'est pas le cas ici. Le graphique obtenu avec la commande fournie ci-dessus a déjà une plus belle allure. Cependant, il n'a pas de titre et les légendes des axes pourraient être personnalisées. Pour y remédier, les arguments `main` pour le titre, `xlab` et `ylab` pour les légendes des axes sont utilisés. Pour modifier les échelles des axes, il faut spécifier les arguments `xlim = c(min, max)` et `ylim = c(min, max)` qui délimitent les valeurs minimales et maximales respectivement pour l'axe des abscisses et celui des ordonnées. ```r plot(quatre_melons$Plantation, quatre_melons$Poids, pch = 21, cex = 1.5, col = 'red', bg = 'pink', main = "Influence du jour de plantation sur le poids des melons", xlab = "Jour de plantation (depuis le 1er janvier)", ylab = "Poids (en grammes)", xlim = c(75,180), ylim = c(650,1350) ) ```  Il est également possible d'affecter une couleur différente par variété de melons. Pour cela, l'argument `col` est modifié afin qu'il soit égal à la variable contenant les modalités (ici `Variete`). Le choix des couleurs se fait maintenant à l'aide de la fonction **`palette()`**. Dans l'exemple ci-dessous, la fonction **`rainbow()`** est utilisé. `rainbow()` est une des palettes par défaut de R. Cette fonction renvoie en fait un vecteur où chaque élément est une couleur. Ici les 4 premiers termes sont pris. Une couleur différente sera donc affectée à chaque modalité. D'autres palettes sont disponibles à l'aide des fonctions : **`terrain.colors()`**, **`heat.colors()`**, **`topo.colors()`** ou **`cm.colors()`**. ```r palette(rainbow(4)) plot(quatre_melons$Plantation, quatre_melons$Poids, pch = 21, cex = 1.5, main = "Influence du jour de plantation sur le poids des melons", xlab = "Jour de plantation (depuis le 1er janvier)", ylab = "Poids (en grammes)", xlim = c(75,180), ylim = c(650,1350), col = quatre_melons$Variete ) legend(x = "topleft", legend = levels(quatre_melons$Variete), col = rainbow(4), pch = 21, cex = 1 ) ```  Il est possible de rajouter a posteriori une **légende au graphique**. Dans l'exemple ci-dessus : + Le nom des modalités de la variable `Variete` est récupéré à l'aide de la fonction `levels()`. + La position de la légende peut être spécifiée par des coordonnées `x`, `y` ou bien par mots-clés. Ici, elle est précisée en indiquant le mot-clé `topleft`. La légende se place alors automatiquement en haut à gauche du graphique. D'autres possibilités existent : `topright`, `bottomleft`, etc. + La taille de la légende est ajustée par le paramètre `cex`. + Le paramètre `col` permet de préciser la palette de couleurs utilisées. C'est la même (`rainbow(4)`) que celle choisie à l'aide de la fonction `palette()`. :Exercice : Personnaliser un histogramme{#exercise_hist, toggle=collapse, title-display=show} A partir du jeu de données `quatre_melons`, essayer d'obtenir le graphique suivant.  :Corrigé{#answer_hist, toggle=collapse, title-display=show} Il suffit d'appliquer la fonction `hist()` en paramétrant les arguments `col`, `main`, `xlab` et `ylab` : ```r hist(quatre_melons$Poids, col = "blue", main = "Historamme du poids des melons", xlab = "Poids des melons (en grammes)", ylab = "Fréquence" ) ``` :Suite de Tracer des graphiques {#graph, toggle=collapse, title-display=hidden} [Présentation des graphiques de base](caps_5_1_graphiques_de_base.html) [Réaliser plusieurs graphiques en un seul](caps_5_2_realiser_plusieurs_graphiques_en_un_seul.html) [Gestion des symboles, couleurs, titre et étiquettes](caps_5_3_gestion_symboles_couleurs_titre_etiquettes.html) [Paramètres spécifiques de la fonction "boxplot"](caps_5_4_parametres_specifiques_boxplot.html) [Exercice bilan](caps_5_5_exercice_bilan_personnalisation_graphiques.html)