--- title: 'Sujet 2 : le pouvoir d''achat des ouvriers anglais du XVIe au XIXe siècle' author: "Sophie Drogué" date: "27/11/2021" output: pdf_document: toc: yes html_document: toc: yes theme: journal word_document: toc: yes documentclass: article classoption: a4paper header-includes: - \usepackage[french]{babel} - \usepackage[upright]{fourier} - \hypersetup{colorlinks=true,pagebackref=true} --- ```{r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE) ``` # 1. Préparation des données Les données de Playfair "Data on Wages and the Price of Wheat" sont disponibles à l'adresse suivante: https://raw.githubusercontent.com/vincentarelbundock/Rdatasets/master/csv/HistData/Wheat.csv. Nous les récupérons sous forme d'un fichier en format CSV L'URL est: ```{r} data_url = "https://raw.githubusercontent.com/vincentarelbundock /Rdatasets/master/csv/HistData/Wheat.csv" ``` Je télécharge les données à parir de l'URL du site et je les enregistre en local si je ne l'ai pas déjà fait ```{r} data_file = "Playfair-data.csv" if (!file.exists(data_file)) { download.file(data_url, data_file, method="auto") } ``` Voici l'explication des colonnes donnée sur le [sur le site d'origine](https://vincentarelbundock.github.io/Rdatasets/doc/HistData/Wheat.html): | Nom de colonne | Libellé de colonne | |----------------+-----------------------------------------------------------------------------------------------------------------------------------| | ` ` | numéro d'ordre des données (integer) | | `Year` | année (intervalle 5 ans) (integer) | | `Wheat` | prix du blé en (Shillings/Quarter bushel) (integer) | | `Wages` | salaire hebdomadaire (Shillings): a numeric vector | ## Lecture je lis le fichier CSV directement sur les données enregistrées localement. ```{r} data = read.csv(data_file) ``` Regardons ce que nous avons obtenu: ```{r} head(data) tail(data) ``` Y a-t-il des points manquants dans nos données ? ```{r} na_records = apply(data, 1, function (x) any(is.na(x))) data[na_records,] ``` On Supprime les 3 dernières lignes sans supprimer le data file ```{r} data <- data[-(50:53),] na_records = apply(data, 1, function (x) any(is.na(x))) data[na_records,] ``` Les trois colonnes qui nous intéressent sont `year`, `Wheat` et `Wages`. Vérifions leurs classes: ```{r} class(data$Year) class(data$Wages) class(data$Wheat) ``` Ce sont des valeurs numériques, tout va bien ! # 2. Reproduire le graphe de Playfair à 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. ## Tracer le graphique 1 ```{r} #Tracer le graphique (partie gauche) ##### Ajuster les marges par(mar=c(6,4,3,5)) #Axe des Y barplot(data$Wheat, axes=F, ylim=c(0,100), xlab="", ylab="", xaxs="i", col="white", main="Graphique 1: Données de Playfair") # Légende de l'axe Y de gauche axis(2, ylim=c(0,100),col="black") mtext("Prix du 1/4 de boisseau de blé en shilling",side=2, line=2.5) box() # pour encadrer le graphique # Ajout de la courbe rouge correspondant à l'axe de droite par(new=T) # Autorise la superposition des courbes #et non le remplacement d'un graphique par un autre plot(data$Year, data$Wages, pch=10, xlab="", ylab="", ylim=c(0,100), axes=F, type="o", col="red",xaxs="i", yaxs="i",) # AXE des X xtick<-seq(1565, 1805, by=5) axis(1,xlim=(1565:1805), at=xtick,las =2 ) # Légende de l'axe des x mtext("Années",side=1,col="black",line=2.5) # Nom de la courbe en rouge legend(x="topleft", legend=c("Salaire hebdomadaire en shilling"), text.col=c("red"),pch=c(10),col=c("red")) #Surface sous la courbe en rouge polygon(c(data$Year,max(data$Year),min(data$Year)), c(data$Wages,0,0), col="lightblue",density=NA) ``` # 3. 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. ## Traçage du graphique 2 ```{r} #Tracer le graphique (partie gauche) ##### Ajuster les marges par(mar=c(6,4,3,5)) barplot(data$Wheat, axes=F, ylim=c(0,100), xlab="", ylab="", xaxs="i", col="white", main="Graphique 2: Données de Playfair") # Légende de l'axe Y de gauche axis(2, ylim=c(0,100),col="black") mtext("Prix du boisseau de blé en shilling",side=2,line=2.5) box() # pour encadrer le graphique # Ajout de la courbe rouge correspondant à l'axe de droite par(new=T) # Autorise la superposition des courbes #et non le remplacement d'un graphique par un autre plot(data$Year, data$Wages, pch=10, xlab="", ylab="", ylim=c(0,40), axes=F, type="o", col="red",xaxs="i", yaxs="i",) # Légende de l'axe Y de droite mtext("Salaire hebdomadaire en shilling",side=4,col="red", line=2.5) axis(4, ylim=c(0,40), col="red",col.axis="red") # AXE X xtick<-seq(1565, 1805, by=5) axis(1,xlim=(1565:1805), at=xtick,las =2 ) mtext("Années",side=1,col="black",line=2.5) ``` # 4. Représenter le pouvoir d'achat 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. Quelle représentation des données vous paraît la plus claire ? N'hésitez pas à en proposer d'autres. ## Recalcul des données D'abord on calcule le nombre de 1/4 de boisseau de blé que l'on pouvait s'acheter avec son salaire hebdomadaire en rajoutant la colonne "Pouvoir d'achat" dans notre dataframe ```{r} data$Pouvoir = data$Wages/data$Wheat data <- data[-(50:53),] na_records = apply(data, 1, function (x) any(is.na(x))) data[na_records,] ``` ## Traçage du graphique 3 de pouvoir d'achat ```{r} plot(data$Year, data$Pouvoir, pch=10, xlab="", ylab="", ylim=c(0,1), axes=F, type="o", col="red",xaxs="i", yaxs="i", main=" Graphique 3: Données de Playfair") # Légende de l'axe Y de gauche axis(2, ylim=c(0,1),col="black") mtext("Pouvoir d'achat en 1/4 de boisseau de blé",side=2,line=2.5) box() # pour encadrer le graphique # Axe des X xtick<-seq(1565, 1805, by=5) axis(1,xlim=(1565:1805), at=xtick,las =2 ) mtext("Années",side=1,col="black",line=2.5) ``` # Autre façon de représenter sans l'axe du temps ## Traçage du graphique 4 Ici j'ai représenté un scatter plot avec une ligne de tendance sencée représenter l'évolution du temps ```{r} plot(data$Wages, data$Wheat, pch=10, xlab="", ylab="", ylim=c(25,60), xlim=c(4,20),type="p", col="red",xaxs="i", yaxs="i", main=" Graphique 4: Données de Playfair") abline(lm(data$Wheat ~data$Wages)$coefficients, col="blue",lwd=2) # Légende de l'axe Y de gauche axis(2, ylim=c(25,60),col="black") mtext("Prix du 1/4 de boisseau de blé en shilling",side=2,line=2.5) axis(1,xlim=c(4,20), col="black" ) mtext("Salaire hebdomadaire en shilling",side=1,col="black",line=2.5) ``` Je remercie pour leur aide en ligne: le forum du Cirad : http://forums.cirad.fr/ et Antoine Massé : https://sites.google.com/site/rgraphiques/home