First attempt to make the exercise

parent 2590d2eb
{ {
"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": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Year</th>\n",
" <th>Wheat</th>\n",
" <th>Wages</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1565</td>\n",
" <td>41.0</td>\n",
" <td>5.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1570</td>\n",
" <td>45.0</td>\n",
" <td>5.05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1575</td>\n",
" <td>42.0</td>\n",
" <td>5.08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1580</td>\n",
" <td>49.0</td>\n",
" <td>5.12</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1585</td>\n",
" <td>41.5</td>\n",
" <td>5.15</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>1590</td>\n",
" <td>47.0</td>\n",
" <td>5.25</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>1595</td>\n",
" <td>64.0</td>\n",
" <td>5.54</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>1600</td>\n",
" <td>27.0</td>\n",
" <td>5.61</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>1605</td>\n",
" <td>33.0</td>\n",
" <td>5.69</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>1610</td>\n",
" <td>32.0</td>\n",
" <td>5.78</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>1615</td>\n",
" <td>33.0</td>\n",
" <td>5.94</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>1620</td>\n",
" <td>35.0</td>\n",
" <td>6.01</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>1625</td>\n",
" <td>33.0</td>\n",
" <td>6.12</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>1630</td>\n",
" <td>45.0</td>\n",
" <td>6.22</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>1635</td>\n",
" <td>33.0</td>\n",
" <td>6.30</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>1640</td>\n",
" <td>39.0</td>\n",
" <td>6.37</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>1645</td>\n",
" <td>53.0</td>\n",
" <td>6.45</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>1650</td>\n",
" <td>42.0</td>\n",
" <td>6.50</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>1655</td>\n",
" <td>40.5</td>\n",
" <td>6.60</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>1660</td>\n",
" <td>46.5</td>\n",
" <td>6.75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>1665</td>\n",
" <td>32.0</td>\n",
" <td>6.80</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>1670</td>\n",
" <td>37.0</td>\n",
" <td>6.90</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>1675</td>\n",
" <td>43.0</td>\n",
" <td>7.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>1680</td>\n",
" <td>35.0</td>\n",
" <td>7.30</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>1685</td>\n",
" <td>27.0</td>\n",
" <td>7.60</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>1690</td>\n",
" <td>40.0</td>\n",
" <td>8.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>1695</td>\n",
" <td>50.0</td>\n",
" <td>8.50</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>1700</td>\n",
" <td>30.0</td>\n",
" <td>9.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>1705</td>\n",
" <td>32.0</td>\n",
" <td>10.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>1710</td>\n",
" <td>44.0</td>\n",
" <td>11.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>30</th>\n",
" <td>1715</td>\n",
" <td>33.0</td>\n",
" <td>11.75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>31</th>\n",
" <td>1720</td>\n",
" <td>29.0</td>\n",
" <td>12.50</td>\n",
" </tr>\n",
" <tr>\n",
" <th>32</th>\n",
" <td>1725</td>\n",
" <td>39.0</td>\n",
" <td>13.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>33</th>\n",
" <td>1730</td>\n",
" <td>26.0</td>\n",
" <td>13.30</td>\n",
" </tr>\n",
" <tr>\n",
" <th>34</th>\n",
" <td>1735</td>\n",
" <td>32.0</td>\n",
" <td>13.60</td>\n",
" </tr>\n",
" <tr>\n",
" <th>35</th>\n",
" <td>1740</td>\n",
" <td>27.0</td>\n",
" <td>14.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>36</th>\n",
" <td>1745</td>\n",
" <td>27.5</td>\n",
" <td>14.50</td>\n",
" </tr>\n",
" <tr>\n",
" <th>37</th>\n",
" <td>1750</td>\n",
" <td>31.0</td>\n",
" <td>15.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>38</th>\n",
" <td>1755</td>\n",
" <td>35.5</td>\n",
" <td>15.70</td>\n",
" </tr>\n",
" <tr>\n",
" <th>39</th>\n",
" <td>1760</td>\n",
" <td>31.0</td>\n",
" <td>16.50</td>\n",
" </tr>\n",
" <tr>\n",
" <th>40</th>\n",
" <td>1765</td>\n",
" <td>43.0</td>\n",
" <td>17.60</td>\n",
" </tr>\n",
" <tr>\n",
" <th>41</th>\n",
" <td>1770</td>\n",
" <td>47.0</td>\n",
" <td>18.50</td>\n",
" </tr>\n",
" <tr>\n",
" <th>42</th>\n",
" <td>1775</td>\n",
" <td>44.0</td>\n",
" <td>19.50</td>\n",
" </tr>\n",
" <tr>\n",
" <th>43</th>\n",
" <td>1780</td>\n",
" <td>46.0</td>\n",
" <td>21.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>44</th>\n",
" <td>1785</td>\n",
" <td>42.0</td>\n",
" <td>23.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>45</th>\n",
" <td>1790</td>\n",
" <td>47.5</td>\n",
" <td>25.50</td>\n",
" </tr>\n",
" <tr>\n",
" <th>46</th>\n",
" <td>1795</td>\n",
" <td>76.0</td>\n",
" <td>27.50</td>\n",
" </tr>\n",
" <tr>\n",
" <th>47</th>\n",
" <td>1800</td>\n",
" <td>79.0</td>\n",
" <td>28.50</td>\n",
" </tr>\n",
" <tr>\n",
" <th>48</th>\n",
" <td>1805</td>\n",
" <td>81.0</td>\n",
" <td>29.50</td>\n",
" </tr>\n",
" <tr>\n",
" <th>49</th>\n",
" <td>1810</td>\n",
" <td>99.0</td>\n",
" <td>30.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50</th>\n",
" <td>1815</td>\n",
" <td>78.0</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>51</th>\n",
" <td>1820</td>\n",
" <td>54.0</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>52</th>\n",
" <td>1821</td>\n",
" <td>54.0</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"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<ipython-input-34-2eb44a81e25a>\u001b[0m in \u001b[0;36m<module>\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": [
"<Figure size 432x288 with 2 Axes>"
]
},
"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": { "metadata": {
"kernelspec": { "kernelspec": {
"display_name": "Python 3", "display_name": "Python 3",
"language": "python", "language": "python",
"name": "python3" "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": 4,
"nbformat_minor": 2 "nbformat_minor": 2
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment