Pour représenter une série temporelle du PIB (comme dans les transparents du chapitre introductif du cours ici) il faut d'abord trouver et télécharger des données. Comme dans le cours, j'utilise le Maddison Project Database qui propose des données sur (très) longues périodes du PIB et de la population pour plus de 160 pays1. Pour télécharger les données, qui sont disponibles sous la forme d'un fichier excel, j'utilise un petit code python~:
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)
Ce code télécharge un fichier excel depuis le site du 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) :
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)
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 Matlab qui est un langage de calcul scientifique (les codes utilisés pour obtenir les graphiques du cours sont disponibles 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 :
data[data["countrycode"]=="FRA"]
On constate que l'extrait contient 711 711 711 711 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) :
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("gdppc-fr.svg", transparent=True)
Figure 1 : PIB par tête en France depuis 1280.
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).
Notes de bas de page:
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