diff --git a/module3/exo3/exercice.ipynb b/module3/exo3/exercice.ipynb
index 0bbbe371b01e359e381e43239412d77bf53fb1fb..6b0cac08b4c45b00358611af1b910bfc3d5324f9 100644
--- a/module3/exo3/exercice.ipynb
+++ b/module3/exo3/exercice.ipynb
@@ -1,5 +1,1370 @@
{
- "cells": [],
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Le pouvoir d'achat des ouvriers anglais du XVIe au XIX siècle"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "[William Playfair](https://fr.wikipedia.org/wiki/William_Playfair) était un des pionniers de la présentation graphique des données. Il est notamment considéré comme l'inventeur de l'histogramme. \n",
+ "Un de ses graphes célèbres, tiré de son livre [\"A Letter on Our Agricultural Distresses, Their Causes and Remedies\"](https://books.google.fr/books/about/A_Letter_on_Our_Agricultural_Distresses.html?id=aQZGAQAAMAAJ), montre [l'évolution du prix du blé et du salaire moyen entre 1565 et 1821](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). Playfair n'a pas publié les données numériques brutes qu'il a utilisées, car à son époque la réplicabilité n'était pas encore considérée comme essentielle. Des [valeurs obtenues par numérisation du graphe](https://vincentarelbundock.github.io/Rdatasets/doc/HistData/Wheat.html) sont aujourd'hui téléchargeables, la [version en format CSV](https://raw.githubusercontent.com/vincentarelbundock/Rdatasets/master/csv/HistData/Wheat.csv) étant la plus pratique.\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Quelques remarques pour la compréhension des données :\n",
+ "* Jusqu'en 1971, la livre sterling était divisée en 20 shillings, et un shilling en 12 pences.\n",
+ "* Le prix du blé est donné en shillings pour un quart de boisseau de blé. Un quart de boisseau équivaut 15 livres britanniques ou 6,8 kg.\n",
+ "* Les salaires sont donnés en shillings par semaine."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Reproduction du graphe de Playfair à partir des données numériques"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Il s'agit de:\n",
+ "* Représenter, comme Playfair, le prix du blé par des barres et les salaires par une surface bleue délimitée par une courbe rouge. \n",
+ "* Superposer les deux de la même façon dans un seul graphique. \n",
+ "Le style du graphique pourra rester différent par rapport à l'original, mais l'impression globale devrait être la même."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Pour créer un graphique représentant le prix du blé par des barres et les salaires par une surface bleue délimitée par une courbe rouge, vous pouvez utiliser la bibliothèque `pandas` pour manipuler les données et `matplotlib` pour créer le graphique."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import pandas as pd\n",
+ "import matplotlib.pyplot as plt"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Chargement des données depuis l'URL"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 47,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "data_url = \"https://raw.githubusercontent.com/vincentarelbundock/Rdatasets/master/csv/HistData/Wheat.csv\""
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 49,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " rownames \n",
+ " Year \n",
+ " Wheat \n",
+ " Wages \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 1 \n",
+ " 1565 \n",
+ " 41.0 \n",
+ " 5.00 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 2 \n",
+ " 1570 \n",
+ " 45.0 \n",
+ " 5.05 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 3 \n",
+ " 1575 \n",
+ " 42.0 \n",
+ " 5.08 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 4 \n",
+ " 1580 \n",
+ " 49.0 \n",
+ " 5.12 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 5 \n",
+ " 1585 \n",
+ " 41.5 \n",
+ " 5.15 \n",
+ " \n",
+ " \n",
+ " 5 \n",
+ " 6 \n",
+ " 1590 \n",
+ " 47.0 \n",
+ " 5.25 \n",
+ " \n",
+ " \n",
+ " 6 \n",
+ " 7 \n",
+ " 1595 \n",
+ " 64.0 \n",
+ " 5.54 \n",
+ " \n",
+ " \n",
+ " 7 \n",
+ " 8 \n",
+ " 1600 \n",
+ " 27.0 \n",
+ " 5.61 \n",
+ " \n",
+ " \n",
+ " 8 \n",
+ " 9 \n",
+ " 1605 \n",
+ " 33.0 \n",
+ " 5.69 \n",
+ " \n",
+ " \n",
+ " 9 \n",
+ " 10 \n",
+ " 1610 \n",
+ " 32.0 \n",
+ " 5.78 \n",
+ " \n",
+ " \n",
+ " 10 \n",
+ " 11 \n",
+ " 1615 \n",
+ " 33.0 \n",
+ " 5.94 \n",
+ " \n",
+ " \n",
+ " 11 \n",
+ " 12 \n",
+ " 1620 \n",
+ " 35.0 \n",
+ " 6.01 \n",
+ " \n",
+ " \n",
+ " 12 \n",
+ " 13 \n",
+ " 1625 \n",
+ " 33.0 \n",
+ " 6.12 \n",
+ " \n",
+ " \n",
+ " 13 \n",
+ " 14 \n",
+ " 1630 \n",
+ " 45.0 \n",
+ " 6.22 \n",
+ " \n",
+ " \n",
+ " 14 \n",
+ " 15 \n",
+ " 1635 \n",
+ " 33.0 \n",
+ " 6.30 \n",
+ " \n",
+ " \n",
+ " 15 \n",
+ " 16 \n",
+ " 1640 \n",
+ " 39.0 \n",
+ " 6.37 \n",
+ " \n",
+ " \n",
+ " 16 \n",
+ " 17 \n",
+ " 1645 \n",
+ " 53.0 \n",
+ " 6.45 \n",
+ " \n",
+ " \n",
+ " 17 \n",
+ " 18 \n",
+ " 1650 \n",
+ " 42.0 \n",
+ " 6.50 \n",
+ " \n",
+ " \n",
+ " 18 \n",
+ " 19 \n",
+ " 1655 \n",
+ " 40.5 \n",
+ " 6.60 \n",
+ " \n",
+ " \n",
+ " 19 \n",
+ " 20 \n",
+ " 1660 \n",
+ " 46.5 \n",
+ " 6.75 \n",
+ " \n",
+ " \n",
+ " 20 \n",
+ " 21 \n",
+ " 1665 \n",
+ " 32.0 \n",
+ " 6.80 \n",
+ " \n",
+ " \n",
+ " 21 \n",
+ " 22 \n",
+ " 1670 \n",
+ " 37.0 \n",
+ " 6.90 \n",
+ " \n",
+ " \n",
+ " 22 \n",
+ " 23 \n",
+ " 1675 \n",
+ " 43.0 \n",
+ " 7.00 \n",
+ " \n",
+ " \n",
+ " 23 \n",
+ " 24 \n",
+ " 1680 \n",
+ " 35.0 \n",
+ " 7.30 \n",
+ " \n",
+ " \n",
+ " 24 \n",
+ " 25 \n",
+ " 1685 \n",
+ " 27.0 \n",
+ " 7.60 \n",
+ " \n",
+ " \n",
+ " 25 \n",
+ " 26 \n",
+ " 1690 \n",
+ " 40.0 \n",
+ " 8.00 \n",
+ " \n",
+ " \n",
+ " 26 \n",
+ " 27 \n",
+ " 1695 \n",
+ " 50.0 \n",
+ " 8.50 \n",
+ " \n",
+ " \n",
+ " 27 \n",
+ " 28 \n",
+ " 1700 \n",
+ " 30.0 \n",
+ " 9.00 \n",
+ " \n",
+ " \n",
+ " 28 \n",
+ " 29 \n",
+ " 1705 \n",
+ " 32.0 \n",
+ " 10.00 \n",
+ " \n",
+ " \n",
+ " 29 \n",
+ " 30 \n",
+ " 1710 \n",
+ " 44.0 \n",
+ " 11.00 \n",
+ " \n",
+ " \n",
+ " 30 \n",
+ " 31 \n",
+ " 1715 \n",
+ " 33.0 \n",
+ " 11.75 \n",
+ " \n",
+ " \n",
+ " 31 \n",
+ " 32 \n",
+ " 1720 \n",
+ " 29.0 \n",
+ " 12.50 \n",
+ " \n",
+ " \n",
+ " 32 \n",
+ " 33 \n",
+ " 1725 \n",
+ " 39.0 \n",
+ " 13.00 \n",
+ " \n",
+ " \n",
+ " 33 \n",
+ " 34 \n",
+ " 1730 \n",
+ " 26.0 \n",
+ " 13.30 \n",
+ " \n",
+ " \n",
+ " 34 \n",
+ " 35 \n",
+ " 1735 \n",
+ " 32.0 \n",
+ " 13.60 \n",
+ " \n",
+ " \n",
+ " 35 \n",
+ " 36 \n",
+ " 1740 \n",
+ " 27.0 \n",
+ " 14.00 \n",
+ " \n",
+ " \n",
+ " 36 \n",
+ " 37 \n",
+ " 1745 \n",
+ " 27.5 \n",
+ " 14.50 \n",
+ " \n",
+ " \n",
+ " 37 \n",
+ " 38 \n",
+ " 1750 \n",
+ " 31.0 \n",
+ " 15.00 \n",
+ " \n",
+ " \n",
+ " 38 \n",
+ " 39 \n",
+ " 1755 \n",
+ " 35.5 \n",
+ " 15.70 \n",
+ " \n",
+ " \n",
+ " 39 \n",
+ " 40 \n",
+ " 1760 \n",
+ " 31.0 \n",
+ " 16.50 \n",
+ " \n",
+ " \n",
+ " 40 \n",
+ " 41 \n",
+ " 1765 \n",
+ " 43.0 \n",
+ " 17.60 \n",
+ " \n",
+ " \n",
+ " 41 \n",
+ " 42 \n",
+ " 1770 \n",
+ " 47.0 \n",
+ " 18.50 \n",
+ " \n",
+ " \n",
+ " 42 \n",
+ " 43 \n",
+ " 1775 \n",
+ " 44.0 \n",
+ " 19.50 \n",
+ " \n",
+ " \n",
+ " 43 \n",
+ " 44 \n",
+ " 1780 \n",
+ " 46.0 \n",
+ " 21.00 \n",
+ " \n",
+ " \n",
+ " 44 \n",
+ " 45 \n",
+ " 1785 \n",
+ " 42.0 \n",
+ " 23.00 \n",
+ " \n",
+ " \n",
+ " 45 \n",
+ " 46 \n",
+ " 1790 \n",
+ " 47.5 \n",
+ " 25.50 \n",
+ " \n",
+ " \n",
+ " 46 \n",
+ " 47 \n",
+ " 1795 \n",
+ " 76.0 \n",
+ " 27.50 \n",
+ " \n",
+ " \n",
+ " 47 \n",
+ " 48 \n",
+ " 1800 \n",
+ " 79.0 \n",
+ " 28.50 \n",
+ " \n",
+ " \n",
+ " 48 \n",
+ " 49 \n",
+ " 1805 \n",
+ " 81.0 \n",
+ " 29.50 \n",
+ " \n",
+ " \n",
+ " 49 \n",
+ " 50 \n",
+ " 1810 \n",
+ " 99.0 \n",
+ " 30.00 \n",
+ " \n",
+ " \n",
+ " 50 \n",
+ " 51 \n",
+ " 1815 \n",
+ " 78.0 \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 51 \n",
+ " 52 \n",
+ " 1820 \n",
+ " 54.0 \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 52 \n",
+ " 53 \n",
+ " 1821 \n",
+ " 54.0 \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " rownames Year Wheat Wages\n",
+ "0 1 1565 41.0 5.00\n",
+ "1 2 1570 45.0 5.05\n",
+ "2 3 1575 42.0 5.08\n",
+ "3 4 1580 49.0 5.12\n",
+ "4 5 1585 41.5 5.15\n",
+ "5 6 1590 47.0 5.25\n",
+ "6 7 1595 64.0 5.54\n",
+ "7 8 1600 27.0 5.61\n",
+ "8 9 1605 33.0 5.69\n",
+ "9 10 1610 32.0 5.78\n",
+ "10 11 1615 33.0 5.94\n",
+ "11 12 1620 35.0 6.01\n",
+ "12 13 1625 33.0 6.12\n",
+ "13 14 1630 45.0 6.22\n",
+ "14 15 1635 33.0 6.30\n",
+ "15 16 1640 39.0 6.37\n",
+ "16 17 1645 53.0 6.45\n",
+ "17 18 1650 42.0 6.50\n",
+ "18 19 1655 40.5 6.60\n",
+ "19 20 1660 46.5 6.75\n",
+ "20 21 1665 32.0 6.80\n",
+ "21 22 1670 37.0 6.90\n",
+ "22 23 1675 43.0 7.00\n",
+ "23 24 1680 35.0 7.30\n",
+ "24 25 1685 27.0 7.60\n",
+ "25 26 1690 40.0 8.00\n",
+ "26 27 1695 50.0 8.50\n",
+ "27 28 1700 30.0 9.00\n",
+ "28 29 1705 32.0 10.00\n",
+ "29 30 1710 44.0 11.00\n",
+ "30 31 1715 33.0 11.75\n",
+ "31 32 1720 29.0 12.50\n",
+ "32 33 1725 39.0 13.00\n",
+ "33 34 1730 26.0 13.30\n",
+ "34 35 1735 32.0 13.60\n",
+ "35 36 1740 27.0 14.00\n",
+ "36 37 1745 27.5 14.50\n",
+ "37 38 1750 31.0 15.00\n",
+ "38 39 1755 35.5 15.70\n",
+ "39 40 1760 31.0 16.50\n",
+ "40 41 1765 43.0 17.60\n",
+ "41 42 1770 47.0 18.50\n",
+ "42 43 1775 44.0 19.50\n",
+ "43 44 1780 46.0 21.00\n",
+ "44 45 1785 42.0 23.00\n",
+ "45 46 1790 47.5 25.50\n",
+ "46 47 1795 76.0 27.50\n",
+ "47 48 1800 79.0 28.50\n",
+ "48 49 1805 81.0 29.50\n",
+ "49 50 1810 99.0 30.00\n",
+ "50 51 1815 78.0 NaN\n",
+ "51 52 1820 54.0 NaN\n",
+ "52 53 1821 54.0 NaN"
+ ]
+ },
+ "execution_count": 49,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "raw_data = pd.read_csv(data_url)\n",
+ "raw_data"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Y a-t-il des points manquants dans ce jeux de données ? Oui, les années 1815, 1820 et 1821 n'ont pas de valeurs associées pour les salaires."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 50,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " rownames \n",
+ " Year \n",
+ " Wheat \n",
+ " Wages \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 50 \n",
+ " 51 \n",
+ " 1815 \n",
+ " 78.0 \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 51 \n",
+ " 52 \n",
+ " 1820 \n",
+ " 54.0 \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 52 \n",
+ " 53 \n",
+ " 1821 \n",
+ " 54.0 \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " rownames Year Wheat Wages\n",
+ "50 51 1815 78.0 NaN\n",
+ "51 52 1820 54.0 NaN\n",
+ "52 53 1821 54.0 NaN"
+ ]
+ },
+ "execution_count": 50,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "raw_data[raw_data.isnull().any(axis=1)]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Nous éliminons ces points, ce qui n'a pas d'impact fort sur notre analyse."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 51,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " rownames \n",
+ " Year \n",
+ " Wheat \n",
+ " Wages \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 1 \n",
+ " 1565 \n",
+ " 41.0 \n",
+ " 5.00 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 2 \n",
+ " 1570 \n",
+ " 45.0 \n",
+ " 5.05 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 3 \n",
+ " 1575 \n",
+ " 42.0 \n",
+ " 5.08 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 4 \n",
+ " 1580 \n",
+ " 49.0 \n",
+ " 5.12 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 5 \n",
+ " 1585 \n",
+ " 41.5 \n",
+ " 5.15 \n",
+ " \n",
+ " \n",
+ " 5 \n",
+ " 6 \n",
+ " 1590 \n",
+ " 47.0 \n",
+ " 5.25 \n",
+ " \n",
+ " \n",
+ " 6 \n",
+ " 7 \n",
+ " 1595 \n",
+ " 64.0 \n",
+ " 5.54 \n",
+ " \n",
+ " \n",
+ " 7 \n",
+ " 8 \n",
+ " 1600 \n",
+ " 27.0 \n",
+ " 5.61 \n",
+ " \n",
+ " \n",
+ " 8 \n",
+ " 9 \n",
+ " 1605 \n",
+ " 33.0 \n",
+ " 5.69 \n",
+ " \n",
+ " \n",
+ " 9 \n",
+ " 10 \n",
+ " 1610 \n",
+ " 32.0 \n",
+ " 5.78 \n",
+ " \n",
+ " \n",
+ " 10 \n",
+ " 11 \n",
+ " 1615 \n",
+ " 33.0 \n",
+ " 5.94 \n",
+ " \n",
+ " \n",
+ " 11 \n",
+ " 12 \n",
+ " 1620 \n",
+ " 35.0 \n",
+ " 6.01 \n",
+ " \n",
+ " \n",
+ " 12 \n",
+ " 13 \n",
+ " 1625 \n",
+ " 33.0 \n",
+ " 6.12 \n",
+ " \n",
+ " \n",
+ " 13 \n",
+ " 14 \n",
+ " 1630 \n",
+ " 45.0 \n",
+ " 6.22 \n",
+ " \n",
+ " \n",
+ " 14 \n",
+ " 15 \n",
+ " 1635 \n",
+ " 33.0 \n",
+ " 6.30 \n",
+ " \n",
+ " \n",
+ " 15 \n",
+ " 16 \n",
+ " 1640 \n",
+ " 39.0 \n",
+ " 6.37 \n",
+ " \n",
+ " \n",
+ " 16 \n",
+ " 17 \n",
+ " 1645 \n",
+ " 53.0 \n",
+ " 6.45 \n",
+ " \n",
+ " \n",
+ " 17 \n",
+ " 18 \n",
+ " 1650 \n",
+ " 42.0 \n",
+ " 6.50 \n",
+ " \n",
+ " \n",
+ " 18 \n",
+ " 19 \n",
+ " 1655 \n",
+ " 40.5 \n",
+ " 6.60 \n",
+ " \n",
+ " \n",
+ " 19 \n",
+ " 20 \n",
+ " 1660 \n",
+ " 46.5 \n",
+ " 6.75 \n",
+ " \n",
+ " \n",
+ " 20 \n",
+ " 21 \n",
+ " 1665 \n",
+ " 32.0 \n",
+ " 6.80 \n",
+ " \n",
+ " \n",
+ " 21 \n",
+ " 22 \n",
+ " 1670 \n",
+ " 37.0 \n",
+ " 6.90 \n",
+ " \n",
+ " \n",
+ " 22 \n",
+ " 23 \n",
+ " 1675 \n",
+ " 43.0 \n",
+ " 7.00 \n",
+ " \n",
+ " \n",
+ " 23 \n",
+ " 24 \n",
+ " 1680 \n",
+ " 35.0 \n",
+ " 7.30 \n",
+ " \n",
+ " \n",
+ " 24 \n",
+ " 25 \n",
+ " 1685 \n",
+ " 27.0 \n",
+ " 7.60 \n",
+ " \n",
+ " \n",
+ " 25 \n",
+ " 26 \n",
+ " 1690 \n",
+ " 40.0 \n",
+ " 8.00 \n",
+ " \n",
+ " \n",
+ " 26 \n",
+ " 27 \n",
+ " 1695 \n",
+ " 50.0 \n",
+ " 8.50 \n",
+ " \n",
+ " \n",
+ " 27 \n",
+ " 28 \n",
+ " 1700 \n",
+ " 30.0 \n",
+ " 9.00 \n",
+ " \n",
+ " \n",
+ " 28 \n",
+ " 29 \n",
+ " 1705 \n",
+ " 32.0 \n",
+ " 10.00 \n",
+ " \n",
+ " \n",
+ " 29 \n",
+ " 30 \n",
+ " 1710 \n",
+ " 44.0 \n",
+ " 11.00 \n",
+ " \n",
+ " \n",
+ " 30 \n",
+ " 31 \n",
+ " 1715 \n",
+ " 33.0 \n",
+ " 11.75 \n",
+ " \n",
+ " \n",
+ " 31 \n",
+ " 32 \n",
+ " 1720 \n",
+ " 29.0 \n",
+ " 12.50 \n",
+ " \n",
+ " \n",
+ " 32 \n",
+ " 33 \n",
+ " 1725 \n",
+ " 39.0 \n",
+ " 13.00 \n",
+ " \n",
+ " \n",
+ " 33 \n",
+ " 34 \n",
+ " 1730 \n",
+ " 26.0 \n",
+ " 13.30 \n",
+ " \n",
+ " \n",
+ " 34 \n",
+ " 35 \n",
+ " 1735 \n",
+ " 32.0 \n",
+ " 13.60 \n",
+ " \n",
+ " \n",
+ " 35 \n",
+ " 36 \n",
+ " 1740 \n",
+ " 27.0 \n",
+ " 14.00 \n",
+ " \n",
+ " \n",
+ " 36 \n",
+ " 37 \n",
+ " 1745 \n",
+ " 27.5 \n",
+ " 14.50 \n",
+ " \n",
+ " \n",
+ " 37 \n",
+ " 38 \n",
+ " 1750 \n",
+ " 31.0 \n",
+ " 15.00 \n",
+ " \n",
+ " \n",
+ " 38 \n",
+ " 39 \n",
+ " 1755 \n",
+ " 35.5 \n",
+ " 15.70 \n",
+ " \n",
+ " \n",
+ " 39 \n",
+ " 40 \n",
+ " 1760 \n",
+ " 31.0 \n",
+ " 16.50 \n",
+ " \n",
+ " \n",
+ " 40 \n",
+ " 41 \n",
+ " 1765 \n",
+ " 43.0 \n",
+ " 17.60 \n",
+ " \n",
+ " \n",
+ " 41 \n",
+ " 42 \n",
+ " 1770 \n",
+ " 47.0 \n",
+ " 18.50 \n",
+ " \n",
+ " \n",
+ " 42 \n",
+ " 43 \n",
+ " 1775 \n",
+ " 44.0 \n",
+ " 19.50 \n",
+ " \n",
+ " \n",
+ " 43 \n",
+ " 44 \n",
+ " 1780 \n",
+ " 46.0 \n",
+ " 21.00 \n",
+ " \n",
+ " \n",
+ " 44 \n",
+ " 45 \n",
+ " 1785 \n",
+ " 42.0 \n",
+ " 23.00 \n",
+ " \n",
+ " \n",
+ " 45 \n",
+ " 46 \n",
+ " 1790 \n",
+ " 47.5 \n",
+ " 25.50 \n",
+ " \n",
+ " \n",
+ " 46 \n",
+ " 47 \n",
+ " 1795 \n",
+ " 76.0 \n",
+ " 27.50 \n",
+ " \n",
+ " \n",
+ " 47 \n",
+ " 48 \n",
+ " 1800 \n",
+ " 79.0 \n",
+ " 28.50 \n",
+ " \n",
+ " \n",
+ " 48 \n",
+ " 49 \n",
+ " 1805 \n",
+ " 81.0 \n",
+ " 29.50 \n",
+ " \n",
+ " \n",
+ " 49 \n",
+ " 50 \n",
+ " 1810 \n",
+ " 99.0 \n",
+ " 30.00 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " rownames Year Wheat Wages\n",
+ "0 1 1565 41.0 5.00\n",
+ "1 2 1570 45.0 5.05\n",
+ "2 3 1575 42.0 5.08\n",
+ "3 4 1580 49.0 5.12\n",
+ "4 5 1585 41.5 5.15\n",
+ "5 6 1590 47.0 5.25\n",
+ "6 7 1595 64.0 5.54\n",
+ "7 8 1600 27.0 5.61\n",
+ "8 9 1605 33.0 5.69\n",
+ "9 10 1610 32.0 5.78\n",
+ "10 11 1615 33.0 5.94\n",
+ "11 12 1620 35.0 6.01\n",
+ "12 13 1625 33.0 6.12\n",
+ "13 14 1630 45.0 6.22\n",
+ "14 15 1635 33.0 6.30\n",
+ "15 16 1640 39.0 6.37\n",
+ "16 17 1645 53.0 6.45\n",
+ "17 18 1650 42.0 6.50\n",
+ "18 19 1655 40.5 6.60\n",
+ "19 20 1660 46.5 6.75\n",
+ "20 21 1665 32.0 6.80\n",
+ "21 22 1670 37.0 6.90\n",
+ "22 23 1675 43.0 7.00\n",
+ "23 24 1680 35.0 7.30\n",
+ "24 25 1685 27.0 7.60\n",
+ "25 26 1690 40.0 8.00\n",
+ "26 27 1695 50.0 8.50\n",
+ "27 28 1700 30.0 9.00\n",
+ "28 29 1705 32.0 10.00\n",
+ "29 30 1710 44.0 11.00\n",
+ "30 31 1715 33.0 11.75\n",
+ "31 32 1720 29.0 12.50\n",
+ "32 33 1725 39.0 13.00\n",
+ "33 34 1730 26.0 13.30\n",
+ "34 35 1735 32.0 13.60\n",
+ "35 36 1740 27.0 14.00\n",
+ "36 37 1745 27.5 14.50\n",
+ "37 38 1750 31.0 15.00\n",
+ "38 39 1755 35.5 15.70\n",
+ "39 40 1760 31.0 16.50\n",
+ "40 41 1765 43.0 17.60\n",
+ "41 42 1770 47.0 18.50\n",
+ "42 43 1775 44.0 19.50\n",
+ "43 44 1780 46.0 21.00\n",
+ "44 45 1785 42.0 23.00\n",
+ "45 46 1790 47.5 25.50\n",
+ "46 47 1795 76.0 27.50\n",
+ "47 48 1800 79.0 28.50\n",
+ "48 49 1805 81.0 29.50\n",
+ "49 50 1810 99.0 30.00"
+ ]
+ },
+ "execution_count": 51,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data = raw_data.dropna().copy()\n",
+ "data"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Nous définissons les années d'observation comme nouvel index de notre jeux de données. Ceci en fait une suite chronologique, ce qui sera pratique par la suite. Ensuite, nous trions les points par période, dans le sens chronologique."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 71,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "sorted_data = data.set_index('Year').sort_index()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Nous vérifions la cohérence des données. Entre la fin d'une période et le début de la période qui suit, la différence temporelle doit être 5."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 77,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "Year = sorted_data.index\n",
+ "for Y1, Y2 in zip(Year[:-1], Year[1:]):\n",
+ " delta = Y2 - Y1\n",
+ " if delta != 5:\n",
+ " print(Y1, Y2)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 78,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 78,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "sorted_data['Wheat'].plot.hist()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Création d'un graphique avec deux axes y"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 52,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig, ax1 = plt.subplots(figsize=(10, 6))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 68,
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "ValueError",
+ "evalue": "'5' is not a valid estimator for `bins`",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
+ "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdf\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'Wheat'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbins\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'5'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcolor\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'tan'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0medgecolor\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'black'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
+ "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/matplotlib/pyplot.py\u001b[0m in \u001b[0;36mhist\u001b[0;34m(x, bins, range, density, weights, cumulative, bottom, histtype, align, orientation, rwidth, log, color, label, stacked, normed, hold, data, **kwargs)\u001b[0m\n\u001b[1;32m 3135\u001b[0m \u001b[0mhisttype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mhisttype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0malign\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0malign\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morientation\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0morientation\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3136\u001b[0m \u001b[0mrwidth\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mrwidth\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlog\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mlog\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcolor\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcolor\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mlabel\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3137\u001b[0;31m stacked=stacked, normed=normed, data=data, **kwargs)\n\u001b[0m\u001b[1;32m 3138\u001b[0m \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3139\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_hold\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mwashold\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/matplotlib/__init__.py\u001b[0m in \u001b[0;36minner\u001b[0;34m(ax, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1865\u001b[0m \u001b[0;34m\"the Matplotlib list!)\"\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mlabel_namer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__name__\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1866\u001b[0m RuntimeWarning, stacklevel=2)\n\u001b[0;32m-> 1867\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1868\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1869\u001b[0m inner.__doc__ = _add_data_doc(inner.__doc__,\n",
+ "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/matplotlib/axes/_axes.py\u001b[0m in \u001b[0;36mhist\u001b[0;34m(***failed resolving arguments***)\u001b[0m\n\u001b[1;32m 6637\u001b[0m \u001b[0;31m# this will automatically overwrite bins,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6638\u001b[0m \u001b[0;31m# so that each histogram uses the same bins\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 6639\u001b[0;31m \u001b[0mm\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbins\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhistogram\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbins\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mweights\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mw\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mhist_kwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6640\u001b[0m \u001b[0mm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mm\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mastype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfloat\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# causes problems later if it's an int\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6641\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mmlast\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/numpy/lib/histograms.py\u001b[0m in \u001b[0;36mhistogram\u001b[0;34m(a, bins, range, normed, weights, density)\u001b[0m\n\u001b[1;32m 700\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mweights\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_ravel_and_check_weights\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mweights\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 701\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 702\u001b[0;31m \u001b[0mbin_edges\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0muniform_bins\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_get_bin_edges\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbins\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mweights\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 703\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 704\u001b[0m \u001b[0;31m# Histogram is an integer or a float array depending on the weights.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/numpy/lib/histograms.py\u001b[0m in \u001b[0;36m_get_bin_edges\u001b[0;34m(a, bins, range, weights)\u001b[0m\n\u001b[1;32m 318\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mbin_name\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32min\u001b[0m \u001b[0m_hist_bin_selectors\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 319\u001b[0m raise ValueError(\n\u001b[0;32m--> 320\u001b[0;31m \"{!r} is not a valid estimator for `bins`\".format(bin_name))\n\u001b[0m\u001b[1;32m 321\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mweights\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 322\u001b[0m raise TypeError(\"Automated estimation of the number of \"\n",
+ "\u001b[0;31mValueError\u001b[0m: '5' is not a valid estimator for `bins`"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.hist(df['Wheat'], bins='5', color='tan', edgecolor='black')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Barres pour le prix du blé"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 59,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "ax1.bar(df['Year'], df['Wheat'], color='tan', edgecolor='black', width=1, label='Wheat')\n",
+ "ax1.set_xlabel('Année')\n",
+ "ax1.set_ylabel('Wheat', color='brown')\n",
+ "ax1.tick_params('y', colors='brown')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Création d'un deuxième axe y pour les salaires"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 60,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "ax2 = ax1.twinx()\n",
+ "ax2.plot(df['Year'], df['Wages'], color='red', marker='o', label='Wages')\n",
+ "ax2.fill_between(df['Year'], 0, df['Wages'], color='lightblue')\n",
+ "ax2.set_ylabel('Wages', color='red')\n",
+ "ax2.tick_params('y', colors='red')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Titre du graphique"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 55,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Text(0.5,1,'Prix du blé et Salaires au fil du temps (1565-1821)')"
+ ]
+ },
+ "execution_count": 55,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.title('Prix du blé et Salaires au fil du temps (1565-1821)')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Légende"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 56,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 56,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "fig.tight_layout()\n",
+ "fig.legend(loc='upper left')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Afficher le graphique"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 61,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "for i, row in df.iterrows():\n",
+ " ax1.text(row['Year'], row['Wheat'], f\"{row['Wheat']:.1f}\", ha='center', va='bottom', color='black')\n",
+ " ax2.text(row['Year'], row['Wages'], f\"{row['Wages']:.1f}\", ha='center', va='top', color='black')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 62,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
@@ -16,10 +1381,9 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.6.3"
+ "version": "3.6.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
-
diff --git a/module3/exo3/graphique_wheat.png b/module3/exo3/graphique_wheat.png
new file mode 100644
index 0000000000000000000000000000000000000000..2fda3eff7da950b873605b841a8496b583cd7f3b
Binary files /dev/null and b/module3/exo3/graphique_wheat.png differ