Ajout d'une page décrivant la construction d'un graphique.
Série temporelle du PIB par tête en France depuis 1280 avec python.master
parent
7d4cba8d20
commit
a02740b118
|
@ -0,0 +1,111 @@
|
|||
#+OPTIONS: H:3 num:nil toc:nil \n:nil @:t ::t |:t ^:nil -:t f:t *:t TeX:t LaTeX:t skip:t d:t tags:not-in-toc creator:t timestamp:nil author:nil title:nil
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../../css/stylesheet-blog.css">
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../../css/theorems-fr.css">
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../../fontawesome/css/all.css" />
|
||||
#+HTML_HEAD: <link rel="stylesheet" href="../../highlight/styles/base16/solarized-light.min.css">
|
||||
#+HTML_HEAD: <script src="../../highlight/highlight.min.js"></script>
|
||||
#+HTML_HEAD: <script>hljs.highlightAll();</script>
|
||||
#+LANGUAGE: fr
|
||||
#+STARTUP: latexpreview
|
||||
#+TITLE: Représenter graphiquement une série temporelle du PIB
|
||||
#+DATE: Septembre 2022
|
||||
#+AUTHOR: Stéphane Adjemian
|
||||
#+EMAIL: stephane.adjemian@univ-lemans.fr
|
||||
|
||||
Pour représenter une série temporelle du PIB (comme dans les transparents du
|
||||
chapitre introductif du cours [[https://le-mans.adjemian.eu/croissance/cours/introduction.pdf][ici]]) il faut d'abord trouver et télécharger des
|
||||
données. Comme dans le cours, j'utilise le [[https://www.rug.nl/ggdc/historicaldevelopment/maddison/releases/maddison-project-database-2020][Maddison Project Database]] qui propose
|
||||
des données sur (très) longues périodes du PIB et de la population pour plus de
|
||||
160 pays[fn:1: Les données de sont disponibles sur de très longues périodes,
|
||||
plus d'un siècle, que pour un nombre limité de pays]. Pour télécharger les
|
||||
données, qui sont disponibles sous la forme d'un fichier excel, j'utilise un
|
||||
petit code python~:
|
||||
|
||||
#+begin_src python :session :exports code :tangle gdppc-fr.py
|
||||
import urllib.request as url
|
||||
MADDISON = 'mpd2020'
|
||||
MADDISON_PATH = 'https://www.rug.nl/ggdc/historicaldevelopment/maddison/data/'+MADDISON+'.xlsx'
|
||||
File = url.urlopen(MADDISON_PATH)
|
||||
data = File.read()
|
||||
with open('./'+MADDISON+'.xlsx', 'wb') as f:
|
||||
f.write(data)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
|
||||
Ce code télécharge un fichier excel depuis le site du [[https://www.rug.nl/ggdc/historicaldevelopment/maddison/releases/maddison-project-database-2020][Maddison Project Database]]
|
||||
et l'enregistre localement sur mon disque. Comme je n'aime pas les fichiers
|
||||
excel, je convertis le fichier =mdp2020.xlsx= en un fichier texte =csv= (Comma
|
||||
Separated Values) :
|
||||
|
||||
#+begin_src python :session :exports code :tangle gdppc-fr.py
|
||||
import pandas as pd
|
||||
data = pd.read_excel(MADDISON+'.xlsx', 'Full data', dtype=str, index_col=None)
|
||||
data.to_csv(MADDISON+'.csv', encoding='utf-8', index=False)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: None
|
||||
|
||||
Le fichier fichier =mdp2020.csv= est sauvé sur le disque. Il s'agit d'un fichier
|
||||
texte (que vous pouvez donc lire avec n'importe quel éditeur de texte ou traiter
|
||||
programmatiquement, par exemple pour construire des graphiques). Le fichier
|
||||
contient un tableau. La première colonne fournit un code pays (en trois
|
||||
lettres), la deuxième colonne donne le nom du pays, la troisième colonne précise
|
||||
l'année, la quatrième colonne donne le PIB par tete (en $ 2011) et la cinquième
|
||||
colonne la population en milliers. Par exemple, entre les lignes 2 et 73 nous
|
||||
avons des observations pour l'Afghanistan de 1820 à 2018. Notez que les années
|
||||
ne sont pas nécessairement consécutives (cela dépend des pays et des périodes)
|
||||
et que nous disposons de plus ou moins de données selon les pays (cela dépend de
|
||||
l'histoire et de la culture du pays, qui est plus ou moins versé dans les
|
||||
statistiques).
|
||||
|
||||
Dans le cours, j'ai produit les graphiques en utilisant [[https://fr.mathworks.com/products/matlab.html][Matlab]] qui est un
|
||||
langage de calcul scientifique (les codes utilisés pour obtenir les graphiques
|
||||
du cours sont disponibles [[https://github.com/stepan-a/growth/tree/master/routines/introduction][ici]]). Ce logiciel est privatif et payant. Ici je
|
||||
montre comment utiliser Python (et la librairie matplotlib) pour produire ces
|
||||
graphiques. À titre d'exemple, je vais représenter graphiquement l'évolution du
|
||||
PIB réel par tête en France.
|
||||
|
||||
Commençons par extraire de =data= (cet objet est ce que l'on appelle une =dataframe=
|
||||
et contient toutes les données) les observations correspondant à la France. Vous
|
||||
pouvez afficher les observations pour la France en sélectionnant les lignes qui
|
||||
correspondent à la France de la façon suivante :
|
||||
|
||||
#+begin_src python :session :exports code :tangle no
|
||||
data[data["countrycode"]=="FRA"]
|
||||
#+end_src
|
||||
|
||||
On constate que l'extrait contient src_python[:session :results
|
||||
raw]{data[data["countrycode"]=="FRA"].shape[0]} observations et que le PIB par
|
||||
tête est observé annuellement à partir de 1280 (c'est-à-dire depuis l'époque de
|
||||
Phillipe III dit le Hardi, fils de Saint Louis). La population n'est observée
|
||||
annuellement qu'à partir de 1820. Pour représenter graphiquement cette série
|
||||
temporelle, on utilise la librairie =matplotlib= (il existe d'autres librairies graphiques qui pourraient
|
||||
éventuellement vous permettre d'obtenir des graphiques plus à votre goût) :
|
||||
|
||||
#+begin_src python :session :exports code :tangle gdppc-fr.py
|
||||
import matplotlib.pyplot as plt
|
||||
# Sélection des données pour la France à partir de 1280
|
||||
DATA = data[(data["countrycode"]=="FRA") & (data["year"].astype(int)>=1280)][["year","gdppc"]]
|
||||
# Conversion des données en valeurs numériques (pour l'instant il s'agit de chaînes de caractères)
|
||||
DATA["year"] = pd.to_numeric(DATA["year"])
|
||||
DATA["gdppc"] = pd.to_numeric(DATA["gdppc"])
|
||||
# Représentation graphique
|
||||
plt.figure(1)
|
||||
DATA.plot(x="year",y="gdppc")
|
||||
plt.savefig("img/gdppc-fr.svg", transparent=True)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: None
|
||||
|
||||
#+CAPTION: *PIB par tête en France depuis 1280.*
|
||||
#+LABEL: fig:gdppcfr
|
||||
[[file:img/gdppc-fr.svg]]
|
||||
|
||||
On observe que jusqu'au début du XIX siècle il ne se passe pas grand chose. Ici
|
||||
le graphique montre le niveau de la variable de PIB par tête, il serait plus
|
||||
approprié d'afficher le logarithme népérien du PIB par tête (pour gommer le
|
||||
caractère explosif de la variable à partir du milieu de XIX et éventuellement
|
||||
permettre de mieux observer les fluctuations du PIB avant 1820).
|
Loading…
Reference in New Issue