From d3d628f1dfb8950271f551ac16ee14ff75d5d33a Mon Sep 17 00:00:00 2001 From: 3cf9c3ec12ae46a1a70bd84103152dd5 <3cf9c3ec12ae46a1a70bd84103152dd5@app-learninglab.inria.fr> Date: Sun, 27 Dec 2020 09:32:31 +0000 Subject: [PATCH] Update exercice_fr.Rmd --- module3/exo3/exercice_fr.Rmd | 154 +++++++++++++++++++++++++++++++---- 1 file changed, 138 insertions(+), 16 deletions(-) diff --git a/module3/exo3/exercice_fr.Rmd b/module3/exo3/exercice_fr.Rmd index 7eece5e..dc022d5 100644 --- a/module3/exo3/exercice_fr.Rmd +++ b/module3/exo3/exercice_fr.Rmd @@ -1,33 +1,155 @@ --- -title: "Votre titre" -author: "Votre nom" -date: "La date du jour" +title: "MOOC Recherche reproductible | Travail pratique évalué par les pairs | Sujet 2" +author: "ALB" +date: "Créé le : 27/12/2020 et dernière modification apportée le 27/12/2020" output: html_document --- +# 1. Présentation de l'exercice -```{r setup, include=FALSE} -knitr::opts_chunk$set(echo = TRUE) +## 1.1. Objectif de travail + +"Sujet 2 : le pouvoir d'achat des ouvriers anglais du XVIe au XIXe siècle" + +L'exercice vise à reproduire puis à tenter de raffiner la représentation de l'évolution du prix du blé et du salaire moyen en Angleterre entre 1565 et 1821 réalisée à l'époque par William Playfair et publiée dans son livre "A Letter on Our Agricultural Distresses, Their Causes and Remedies". + +# 1.2. Source et préparation des données + +Les données brutes ont été obtenues par numérisation du graphe et peuvent être récupérées au format CSV [ici] (https://raw.githubusercontent.com/vincentarelbundock/Rdatasets/master/csv/HistData/Wheat.csv). Le fichier de données a été téléchargé en local afin de pallier d'éventuels problèmes ultérieurs de connexion à ce fichier. + +Ce jeu de données comprend 53 observations sur les 3 variables suivantes : +- **Year** : intervalle de 5 ans sur la période de 1565 à 1821 +- **Wheat** : prix du blé en shillings pour un quart de boisseau de blé (un quart de boisseau équivaut à 6,8 kg) +- **Wages** : salaires donnés en shillings par semaine + +```{r importation} +dir <- "C:/Users/Documents/Formations/2020-mooc-recherche-reproductible/" +file <- paste(dir,"exercice_pairs_mooc_RR_sujet_2.csv",sep="") +data <- read.table(file,sep=";",dec=".",header=TRUE) + +``` + + +# 1.3. Informations sur l'exécution du code + +Pour exécuter le code de cette analyse, il faut disposer du logiciel R version 3.6.1 (2019-07-05) et des packages suivants sur son ordinateur: + +```{r librairies} +library(tidyr) # Manipulation de données +library(knitr) # Manipulation de données +library(grid) # Annotations en dehors du graphe +library(ggplot2) # Graphiques ``` -## Quelques explications +# 2. Reproduction du graphique de William Playfair -Ceci est un document R markdown que vous pouvez aisément exporter au format HTML, PDF, et MS Word. Pour plus de détails sur R Markdown consultez . +**Consigne :** +"1. Votre première tâche est de reproduire [le graphe de Playfair] (https://fr.wikipedia.org/wiki/William_Playfair#/media/File:Chart_Showing_at_One_View_the_Price_of_the_Quarter_of_Wheat,_and_Wages_of_Labour_by_the_Week,_from_1565_to_1821.png) à partir des données numériques. Représentez, comme Playfair, le prix du blé par des barres et les salaires par une surface bleue délimitée par une courbe rouge. Superposez les deux de la même façon dans un seul graphique. Le style de votre graphique pourra rester différent par rapport à l'original, mais l'impression globale devrait être la même." -Lorsque vous cliquerez sur le bouton **Knit** ce document sera compilé afin de ré-exécuter le code R et d'inclure les résultats dans un document final. Comme nous vous l'avons montré dans la vidéo, on inclue du code R de la façon suivante: +```{r reproduction} -```{r cars} -summary(cars) +plot <-ggplot(data=data, aes(x=Year, y=Wheat)) + + geom_bar(stat="identity", color="grey") + + geom_col(width=5) + + geom_line(aes(y = Wages), color = "firebrick", na.rm = TRUE, size = 2.5) + + geom_area(aes(y = Wages), fill = "lightblue", na.rm = TRUE, alpha = 0.9) + + coord_cartesian(expand = FALSE, clip = "off") + + scale_y_continuous(limits = c(0, 100), + breaks = seq(0, 100, by = 10), + name = "", + sec.axis = sec_axis(~., name = "Price of the Quarter of Wheat in Shillings", + breaks = seq(0, 100, by = 10)))+ + theme(panel.background = element_blank(), + panel.grid.major = element_line(colour = "grey25", size = 1), + panel.grid.minor = element_line(colour = "grey25", size = 0.5), + axis.text = element_text(size = 7), + axis.title.y.right = element_text(angle = 90, size = 8)) + + annotate(geom = "label", x = 1650, y = 70, + label = "CHART,\n Showing at One View\nThe Price of the Quater of Wheat,\n& Wages of Labour by the Week,\nfrom 1565 to 1821", + fontface = "bold.italic", size = 3.5, + label.r = unit(3, "lines")) + + annotate(geom = "text", x = 1635, y = 9, label = "Weekly Wages of a Good Mechanic", + fontface = "italic", size = 2.7, angle = 2) +plot ``` -Et on peut aussi aisément inclure des figures. Par exemple: +# 3. Reproduction du graphique de William Playfair avec les unités appropriées + +Sur le graphique original, les 2 quantités représentées sont représentés sur une même ordonnée représentant le shilling. Il faut ici séparer les 2 quantités en utilisant deux ordonnées différentes (prix du blé et salaires). + +**Consigne :** +"2. Par la suite, améliorez la présentation de ces données. Pour commencer, Playfair a combiné les deux quantités dans un même graphique en simplifiant les unités "shillings par quart de boisseau de blé" et "shillings par semaine" à un simple "shillings", ce qui aujourd'hui n'est plus admissible. Utilisez deux ordonnées différentes, une à gauche et une à droite, et indiquez les unités correctes. À cette occasion, n'hésitez pas à proposer d'autres représentations que des barres et des surface/courbes pour les deux jeux de données si ceci vous paraît judicieux." -```{r pressure, echo=FALSE} -plot(pressure) +```{r doubles ordonnées} +plot_axes <- ggplot(data, aes(x = Year, y = Wheat)) + + geom_step(aes(color = "Wheat Price", lty = "Wheat Price"), + alpha = 0.6, size = 0.8) + + geom_step(aes(y = Wages, color = "Weekly Wage", lty = "Weekly Wage"), alpha = 0.7) + + scale_color_manual(name = "", + limits = c("Wheat Price", "Weekly Wage"), + values = c("Wheat Price" = "red", + "Weekly Wage" = "blue")) + + scale_x_continuous(limits = c(1565, 1830), expand = c(0, 0), + breaks = c(1565, seq(1600, 1800, by = 50), 1830), + minor_breaks = seq(1565, 1830, by = 5), + name = "") + + scale_y_continuous(limits = c(0, 100), expand = c(0, 0), + breaks = seq(0, 100, by = 10), + name = "Price of the Quarter of Wheat (in shillings)", + sec.axis = sec_axis(~., name = "Weekly Wage (in shillings)", + breaks = seq(0, 100, by = 10))) + + theme_light() + + labs(title = "Prix du blé et des salaires", + subtitle = "(de 1565 à 1821)", + y = "") + + theme(legend.position = c(0.13, 0.87), + legend.title = element_blank(), + legend.text = element_text(face = "italic", size = 8), + legend.spacing = unit(0.3, "cm")) +plot_axes ``` -Vous remarquerez le paramètre `echo = FALSE` qui indique que le code ne doit pas apparaître dans la version finale du document. Nous vous recommandons dans le cadre de ce MOOC de ne pas utiliser ce paramètre car l'objectif est que vos analyses de données soient parfaitement transparentes pour être reproductibles. +# 4. Améliorations du graphe de Playfair + +**Consigne :** +"3. L'objectif de Playfair était de montrer que le pouvoir d'achat des ouvriers avait augmenté au cours du temps. Essayez de mieux faire ressortir cette information. Pour cela, faites une représentation graphique du pouvoir d'achat au cours du temps, définie comme la quantité de blé qu'un ouvrier peut acheter avec son salaire hebdomadaire. Dans un autre graphique, montrez les deux quantités (prix du blé, salaire) sur deux axes différents, sans l'axe du temps. Trouvez une autre façon d'indiquer la progression du temps dans ce graphique." + +## 4.1. Résentation graphique du pouvoir d’achat au cours du temps + +Pour montrer que le pouvoir d’achat des ouvriers avait augmenté au cours du temps, la première étape est de créer une nouvelle variable codée "pouvoir_achat" qui correspond à la quantité de blé qu’un ouvrier peut acheter avec son salaire hebdomadaire (ratio Wages/Wheat). Nous allons ensuite représenter l'évolution des valeurs prises par cette variable pour représenter la quantité de blé que l'on peut acheter avec un salaire donné sur la période temporelle étudiée. + +```{r pouvoir achat} +data$pouvoir_achat <- data$Wages / data$Wheat +plot_pouvoir_achat <- ggplot(data,aes(x = Year, y = pouvoir_achat)) + + geom_step(color = "black", alpha = 0.6, size = 0.8) + + geom_smooth(se = FALSE, lwd = 0.8, lty = 1, span = 0.4) + + labs(x = "Année", y = "Quantité de blé (quart de boisseau)", + title = "Pouvoir d’achat au cours du temps") +plot_pouvoir_achat +``` + + ## 4.2. Evolution réelle du pouvoir d’achat en fonction du salaire +```{r evolution reelle} + +plot_representation <- ggplot(data,aes(x = Wages, y = pouvoir_achat)) + + geom_point() + + geom_smooth(se = FALSE, lwd = 0.5, lty = 2) + + labs(x = "Salaire hebdomadaire (en shillings)", + y = "Pouvoir d'achat", + title = "Evolution réelle du pouvoir d'achat en fonction du salaire") +plot_representation + +library(stringr) +data$siecle <- paste0(str_sub(data$Year, start = 1, end = 2), "th") +plot_representation_temps <- ggplot(data,aes(x = Wages, y = pouvoir_achat,color = siecle)) + + geom_point() + + geom_smooth(se = FALSE, lwd = 0.5, lty = 2) + + labs(x = "Salaire hebdomadaire (en shillings)", + y = "Pouvoir d'achat", + title = "Evolution réelle du pouvoir d'achat en fonction du salaire et du siècle") +plot_representation_temps +``` + + -Comme les résultats ne sont pas stockés dans les fichiers Rmd, pour faciliter la relecture de vos analyses par d'autres personnes, vous aurez donc intérêt à générer un HTML ou un PDF et à le commiter. -Maintenant, à vous de jouer! Vous pouvez effacer toutes ces informations et les remplacer par votre document computationnel. -- 2.18.1