diff --git a/module3/exo3/exercice.ipynb b/module3/exo3/exercice.ipynb
index 0bbbe371b01e359e381e43239412d77bf53fb1fb..2ad3b5665e66057d2431519b8e7169dcef464741 100644
--- a/module3/exo3/exercice.ipynb
+++ b/module3/exo3/exercice.ipynb
@@ -1,25 +1,560 @@
{
- "cells": [],
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Subject 2: Purchasing power of English workers from the 16th to the 19th century"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "%matplotlib inline\n",
+ "import matplotlib.pyplot as plt\n",
+ "import pandas as pd\n",
+ "import numpy as np\n",
+ "import isoweek"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "William Playfair was one of the pioneers of the graphical presentation of data, being credited in particular with the invention of the histogram. One of his famous graphs, taken from his book \"A Letter on Our Agricultural Distresses, Their Causes and Remedies\", shows the evolution of the wheat price and average salaries from 1565 to 1821. First, we will replicate his famous graph and then present alternative versions of the graph to improve the readability."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Plotting the original graph"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "The data used by Playfair are available on [github](https://vincentarelbundock.github.io/Rdatasets/doc/HistData/Wheat.html) in a csv format using the url:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "data_url = 'https://raw.githubusercontent.com/vincentarelbundock/Rdatasets/master/csv/HistData/Wheat.csv'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We load the data are remove the first column that is unecessary. The array is made of three columns : the year, the wheat price (in Shilling/quarter) and the wages (in Shilling/week)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " Year \n",
+ " Wheat \n",
+ " Wages \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 1565 \n",
+ " 41.0 \n",
+ " 5.00 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 1570 \n",
+ " 45.0 \n",
+ " 5.05 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 1575 \n",
+ " 42.0 \n",
+ " 5.08 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 1580 \n",
+ " 49.0 \n",
+ " 5.12 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 1585 \n",
+ " 41.5 \n",
+ " 5.15 \n",
+ " \n",
+ " \n",
+ " 5 \n",
+ " 1590 \n",
+ " 47.0 \n",
+ " 5.25 \n",
+ " \n",
+ " \n",
+ " 6 \n",
+ " 1595 \n",
+ " 64.0 \n",
+ " 5.54 \n",
+ " \n",
+ " \n",
+ " 7 \n",
+ " 1600 \n",
+ " 27.0 \n",
+ " 5.61 \n",
+ " \n",
+ " \n",
+ " 8 \n",
+ " 1605 \n",
+ " 33.0 \n",
+ " 5.69 \n",
+ " \n",
+ " \n",
+ " 9 \n",
+ " 1610 \n",
+ " 32.0 \n",
+ " 5.78 \n",
+ " \n",
+ " \n",
+ " 10 \n",
+ " 1615 \n",
+ " 33.0 \n",
+ " 5.94 \n",
+ " \n",
+ " \n",
+ " 11 \n",
+ " 1620 \n",
+ " 35.0 \n",
+ " 6.01 \n",
+ " \n",
+ " \n",
+ " 12 \n",
+ " 1625 \n",
+ " 33.0 \n",
+ " 6.12 \n",
+ " \n",
+ " \n",
+ " 13 \n",
+ " 1630 \n",
+ " 45.0 \n",
+ " 6.22 \n",
+ " \n",
+ " \n",
+ " 14 \n",
+ " 1635 \n",
+ " 33.0 \n",
+ " 6.30 \n",
+ " \n",
+ " \n",
+ " 15 \n",
+ " 1640 \n",
+ " 39.0 \n",
+ " 6.37 \n",
+ " \n",
+ " \n",
+ " 16 \n",
+ " 1645 \n",
+ " 53.0 \n",
+ " 6.45 \n",
+ " \n",
+ " \n",
+ " 17 \n",
+ " 1650 \n",
+ " 42.0 \n",
+ " 6.50 \n",
+ " \n",
+ " \n",
+ " 18 \n",
+ " 1655 \n",
+ " 40.5 \n",
+ " 6.60 \n",
+ " \n",
+ " \n",
+ " 19 \n",
+ " 1660 \n",
+ " 46.5 \n",
+ " 6.75 \n",
+ " \n",
+ " \n",
+ " 20 \n",
+ " 1665 \n",
+ " 32.0 \n",
+ " 6.80 \n",
+ " \n",
+ " \n",
+ " 21 \n",
+ " 1670 \n",
+ " 37.0 \n",
+ " 6.90 \n",
+ " \n",
+ " \n",
+ " 22 \n",
+ " 1675 \n",
+ " 43.0 \n",
+ " 7.00 \n",
+ " \n",
+ " \n",
+ " 23 \n",
+ " 1680 \n",
+ " 35.0 \n",
+ " 7.30 \n",
+ " \n",
+ " \n",
+ " 24 \n",
+ " 1685 \n",
+ " 27.0 \n",
+ " 7.60 \n",
+ " \n",
+ " \n",
+ " 25 \n",
+ " 1690 \n",
+ " 40.0 \n",
+ " 8.00 \n",
+ " \n",
+ " \n",
+ " 26 \n",
+ " 1695 \n",
+ " 50.0 \n",
+ " 8.50 \n",
+ " \n",
+ " \n",
+ " 27 \n",
+ " 1700 \n",
+ " 30.0 \n",
+ " 9.00 \n",
+ " \n",
+ " \n",
+ " 28 \n",
+ " 1705 \n",
+ " 32.0 \n",
+ " 10.00 \n",
+ " \n",
+ " \n",
+ " 29 \n",
+ " 1710 \n",
+ " 44.0 \n",
+ " 11.00 \n",
+ " \n",
+ " \n",
+ " 30 \n",
+ " 1715 \n",
+ " 33.0 \n",
+ " 11.75 \n",
+ " \n",
+ " \n",
+ " 31 \n",
+ " 1720 \n",
+ " 29.0 \n",
+ " 12.50 \n",
+ " \n",
+ " \n",
+ " 32 \n",
+ " 1725 \n",
+ " 39.0 \n",
+ " 13.00 \n",
+ " \n",
+ " \n",
+ " 33 \n",
+ " 1730 \n",
+ " 26.0 \n",
+ " 13.30 \n",
+ " \n",
+ " \n",
+ " 34 \n",
+ " 1735 \n",
+ " 32.0 \n",
+ " 13.60 \n",
+ " \n",
+ " \n",
+ " 35 \n",
+ " 1740 \n",
+ " 27.0 \n",
+ " 14.00 \n",
+ " \n",
+ " \n",
+ " 36 \n",
+ " 1745 \n",
+ " 27.5 \n",
+ " 14.50 \n",
+ " \n",
+ " \n",
+ " 37 \n",
+ " 1750 \n",
+ " 31.0 \n",
+ " 15.00 \n",
+ " \n",
+ " \n",
+ " 38 \n",
+ " 1755 \n",
+ " 35.5 \n",
+ " 15.70 \n",
+ " \n",
+ " \n",
+ " 39 \n",
+ " 1760 \n",
+ " 31.0 \n",
+ " 16.50 \n",
+ " \n",
+ " \n",
+ " 40 \n",
+ " 1765 \n",
+ " 43.0 \n",
+ " 17.60 \n",
+ " \n",
+ " \n",
+ " 41 \n",
+ " 1770 \n",
+ " 47.0 \n",
+ " 18.50 \n",
+ " \n",
+ " \n",
+ " 42 \n",
+ " 1775 \n",
+ " 44.0 \n",
+ " 19.50 \n",
+ " \n",
+ " \n",
+ " 43 \n",
+ " 1780 \n",
+ " 46.0 \n",
+ " 21.00 \n",
+ " \n",
+ " \n",
+ " 44 \n",
+ " 1785 \n",
+ " 42.0 \n",
+ " 23.00 \n",
+ " \n",
+ " \n",
+ " 45 \n",
+ " 1790 \n",
+ " 47.5 \n",
+ " 25.50 \n",
+ " \n",
+ " \n",
+ " 46 \n",
+ " 1795 \n",
+ " 76.0 \n",
+ " 27.50 \n",
+ " \n",
+ " \n",
+ " 47 \n",
+ " 1800 \n",
+ " 79.0 \n",
+ " 28.50 \n",
+ " \n",
+ " \n",
+ " 48 \n",
+ " 1805 \n",
+ " 81.0 \n",
+ " 29.50 \n",
+ " \n",
+ " \n",
+ " 49 \n",
+ " 1810 \n",
+ " 99.0 \n",
+ " 30.00 \n",
+ " \n",
+ " \n",
+ " 50 \n",
+ " 1815 \n",
+ " 78.0 \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 51 \n",
+ " 1820 \n",
+ " 54.0 \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 52 \n",
+ " 1821 \n",
+ " 54.0 \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Year Wheat Wages\n",
+ "0 1565 41.0 5.00\n",
+ "1 1570 45.0 5.05\n",
+ "2 1575 42.0 5.08\n",
+ "3 1580 49.0 5.12\n",
+ "4 1585 41.5 5.15\n",
+ "5 1590 47.0 5.25\n",
+ "6 1595 64.0 5.54\n",
+ "7 1600 27.0 5.61\n",
+ "8 1605 33.0 5.69\n",
+ "9 1610 32.0 5.78\n",
+ "10 1615 33.0 5.94\n",
+ "11 1620 35.0 6.01\n",
+ "12 1625 33.0 6.12\n",
+ "13 1630 45.0 6.22\n",
+ "14 1635 33.0 6.30\n",
+ "15 1640 39.0 6.37\n",
+ "16 1645 53.0 6.45\n",
+ "17 1650 42.0 6.50\n",
+ "18 1655 40.5 6.60\n",
+ "19 1660 46.5 6.75\n",
+ "20 1665 32.0 6.80\n",
+ "21 1670 37.0 6.90\n",
+ "22 1675 43.0 7.00\n",
+ "23 1680 35.0 7.30\n",
+ "24 1685 27.0 7.60\n",
+ "25 1690 40.0 8.00\n",
+ "26 1695 50.0 8.50\n",
+ "27 1700 30.0 9.00\n",
+ "28 1705 32.0 10.00\n",
+ "29 1710 44.0 11.00\n",
+ "30 1715 33.0 11.75\n",
+ "31 1720 29.0 12.50\n",
+ "32 1725 39.0 13.00\n",
+ "33 1730 26.0 13.30\n",
+ "34 1735 32.0 13.60\n",
+ "35 1740 27.0 14.00\n",
+ "36 1745 27.5 14.50\n",
+ "37 1750 31.0 15.00\n",
+ "38 1755 35.5 15.70\n",
+ "39 1760 31.0 16.50\n",
+ "40 1765 43.0 17.60\n",
+ "41 1770 47.0 18.50\n",
+ "42 1775 44.0 19.50\n",
+ "43 1780 46.0 21.00\n",
+ "44 1785 42.0 23.00\n",
+ "45 1790 47.5 25.50\n",
+ "46 1795 76.0 27.50\n",
+ "47 1800 79.0 28.50\n",
+ "48 1805 81.0 29.50\n",
+ "49 1810 99.0 30.00\n",
+ "50 1815 78.0 NaN\n",
+ "51 1820 54.0 NaN\n",
+ "52 1821 54.0 NaN"
+ ]
+ },
+ "execution_count": 15,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "raw_data = pd.read_csv(data_url)\n",
+ "data = raw_data.copy()\n",
+ "data.pop('Unnamed: 0')\n",
+ "data"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We sort by increasing years and verify that the gap between two points is not more than 5 years:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "hidePrompt": true
+ },
+ "outputs": [],
+ "source": [
+ "sorted_data = data.set_index('period').sort_index()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "ValueError",
+ "evalue": "`bins` must increase monotonically, when an array",
+ "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[1;32m 3\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'Year'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'Wages'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0max2\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0max1\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtwinx\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'Year'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'Wheat'\u001b[0m\u001b[0;34m]\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 359\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0many\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbin_edges\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0mbin_edges\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 360\u001b[0m raise ValueError(\n\u001b[0;32m--> 361\u001b[0;31m '`bins` must increase monotonically, when an array')\n\u001b[0m\u001b[1;32m 362\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 363\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;31mValueError\u001b[0m: `bins` must increase monotonically, when an array"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.figure()\n",
+ "ax1 = plt.gca()\n",
+ "plt.plot(data['Year'], data['Wages'])\n",
+ "ax2 = ax1.twinx()\n",
+ "plt.hist(data['Year'], data['Wheat'])\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.6.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
-