{ "cells": [ { "cell_type": "code", "execution_count": 22, "metadata": { "tags": [ "remove_input" ] }, "outputs": [], "source": [ "path_data = '../../data/'\n", "\n", "import numpy as np\n", "import pandas as pd\n", "\n", "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "plt.style.use('fivethirtyeight')\n", "\n", "import warnings\n", "warnings.filterwarnings('ignore')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Visualizing Numerical Distributions\n", "\n", "Many of the variables that data scientists study are *quantitative* or *numerical*. Their values are numbers on which you can perform arithmetic. Examples that we have seen include the number of periods in chapters of a book, the amount of money made by movies, and the age of people in the United States.\n", "\n", "The values of a categorical variable can be given numerical codes, but that doesn't make the variable quantitative. In the example in which we studied Census data broken down by age group, the categorial variable `SEX` had the numerical codes `1` for 'Male,' `2` for 'Female,' and `0` for the aggregate of both groups `1` and `2`. While 0, 1, and 2 are numbers, in this context it doesn't make sense to subtract 1 from 2, or take the average of 0, 1, and 2, or perform other arithmetic on the three values. `SEX` is a categorical variable even though the values have been given a numerical code." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For our main example, we will return to a dataset that we studied when we were visualizing categorical data. It is the table `top`, which consists of data from U.S.A.'s top grossing movies of all time. For convenience, here is the description of the table again.\n", "\n", "The first column contains the title of the movie. The second column contains the name of the studio that produced the movie. The third contains the domestic box office gross in dollars, and the fourth contains the gross amount that would have been earned from ticket sales at 2016 prices. The fifth contains the release year of the movie. \n", "\n", "There are 200 movies on the list. Here are the top ten according to the unadjusted gross receipts in the column `Gross`." ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
TitleStudioGrossGross (Adjusted)Year
0Star Wars: The Force AwakensBuena Vista (Disney)9067234189067234002015
1AvatarFox7605076258461208002009
2TitanicParamount65867230211786279001997
3Jurassic WorldUniversal6522706256877280002015
4Marvel's The AvengersBuena Vista (Disney)6233579106688666002012
..................
195The Caine MutinyColumbia217500003861735001954
196The Bells of St. Mary'sRKO213333335458824001945
197Duel in the SunSelz.204081634438775001946
198Sergeant YorkWarner Bros.163618854186718001941
199The Four Horsemen of the ApocalypseMPC91836733994898001921
\n", "

200 rows × 5 columns

\n", "
" ], "text/plain": [ " Title Studio Gross \\\n", "0 Star Wars: The Force Awakens Buena Vista (Disney) 906723418 \n", "1 Avatar Fox 760507625 \n", "2 Titanic Paramount 658672302 \n", "3 Jurassic World Universal 652270625 \n", "4 Marvel's The Avengers Buena Vista (Disney) 623357910 \n", ".. ... ... ... \n", "195 The Caine Mutiny Columbia 21750000 \n", "196 The Bells of St. Mary's RKO 21333333 \n", "197 Duel in the Sun Selz. 20408163 \n", "198 Sergeant York Warner Bros. 16361885 \n", "199 The Four Horsemen of the Apocalypse MPC 9183673 \n", "\n", " Gross (Adjusted) Year \n", "0 906723400 2015 \n", "1 846120800 2009 \n", "2 1178627900 1997 \n", "3 687728000 2015 \n", "4 668866600 2012 \n", ".. ... ... \n", "195 386173500 1954 \n", "196 545882400 1945 \n", "197 443877500 1946 \n", "198 418671800 1941 \n", "199 399489800 1921 \n", "\n", "[200 rows x 5 columns]" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "top = pd.read_csv(path_data + 'top_movies.csv')\n", "\n", "top" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
TitleStudioGrossGross (Adjusted)Year
0Star Wars: The Force AwakensBuena Vista (Disney)906,723,418906,723,4002015
1AvatarFox760,507,625846,120,8002009
2TitanicParamount658,672,3021,178,627,9001997
3Jurassic WorldUniversal652,270,625687,728,0002015
4Marvel's The AvengersBuena Vista (Disney)623,357,910668,866,6002012
..................
195The Caine MutinyColumbia21,750,000386,173,5001954
196The Bells of St. Mary'sRKO21,333,333545,882,4001945
197Duel in the SunSelz.20,408,163443,877,5001946
198Sergeant YorkWarner Bros.16,361,885418,671,8001941
199The Four Horsemen of the ApocalypseMPC9,183,673399,489,8001921
\n", "

200 rows × 5 columns

\n", "
" ], "text/plain": [ " Title Studio Gross \\\n", "0 Star Wars: The Force Awakens Buena Vista (Disney) 906,723,418 \n", "1 Avatar Fox 760,507,625 \n", "2 Titanic Paramount 658,672,302 \n", "3 Jurassic World Universal 652,270,625 \n", "4 Marvel's The Avengers Buena Vista (Disney) 623,357,910 \n", ".. ... ... ... \n", "195 The Caine Mutiny Columbia 21,750,000 \n", "196 The Bells of St. Mary's RKO 21,333,333 \n", "197 Duel in the Sun Selz. 20,408,163 \n", "198 Sergeant York Warner Bros. 16,361,885 \n", "199 The Four Horsemen of the Apocalypse MPC 9,183,673 \n", "\n", " Gross (Adjusted) Year \n", "0 906,723,400 2015 \n", "1 846,120,800 2009 \n", "2 1,178,627,900 1997 \n", "3 687,728,000 2015 \n", "4 668,866,600 2012 \n", ".. ... ... \n", "195 386,173,500 1954 \n", "196 545,882,400 1945 \n", "197 443,877,500 1946 \n", "198 418,671,800 1941 \n", "199 399,489,800 1921 \n", "\n", "[200 rows x 5 columns]" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Make the numbers in the Gross and Gross (Adjusted) columns look nicer:\n", "# Separate '000s with comma\n", "# When using an original data set it is often good practice to work on a copy of the original\n", "\n", "top1 = top.copy()\n", "\n", "top1['Gross'] = top1['Gross'].apply('{:,}'.format)\n", "top1['Gross (Adjusted)'] = top1['Gross (Adjusted)'].apply('{:,}'.format)\n", "\n", "top1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Visualizing the Distribution of the Adjusted Receipts\n", "\n", "In this section we will draw graphs of the distribution of the numerical variable in the column `Gross (Adjusted)`. For simplicity, let's create a smaller table that has the information that we need. And since three-digit numbers are easier to work with than nine-digit numbers, let's measure the `Adjusted Gross` receipts in millions of dollars. Note how `round` is used to retain only two decimal places." ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
TitleAdjusted Gross
0Star Wars: The Force Awakens906.72
1Avatar846.12
2Titanic1178.63
3Jurassic World687.73
4Marvel's The Avengers668.87
.........
195The Caine Mutiny386.17
196The Bells of St. Mary's545.88
197Duel in the Sun443.88
198Sergeant York418.67
199The Four Horsemen of the Apocalypse399.49
\n", "

200 rows × 2 columns

\n", "
" ], "text/plain": [ " Title Adjusted Gross\n", "0 Star Wars: The Force Awakens 906.72\n", "1 Avatar 846.12\n", "2 Titanic 1178.63\n", "3 Jurassic World 687.73\n", "4 Marvel's The Avengers 668.87\n", ".. ... ...\n", "195 The Caine Mutiny 386.17\n", "196 The Bells of St. Mary's 545.88\n", "197 Duel in the Sun 443.88\n", "198 Sergeant York 418.67\n", "199 The Four Horsemen of the Apocalypse 399.49\n", "\n", "[200 rows x 2 columns]" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "millions = pd.DataFrame({'Title': top['Title'], 'Adjusted Gross': np.round((top['Gross (Adjusted)']/1e6), 2)})\n", "\n", "millions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### A Histogram\n", "A *histogram* of a numerical dataset looks very much like a bar chart, though it has some important differences that we will examine in this section. First, let's just draw a histogram of the adjusted receipts.\n", "\n", "The `hist` method generates a histogram of the values in a column. The histogram shows the distribution of the adjusted gross amounts, in millions of 2016 dollars. " ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "unit = 'Million Dollars'\n", "\n", "fig, ax1 = plt.subplots()\n", "\n", "ax1.hist(millions['Adjusted Gross'], 10, density=True, ec='white')\n", "\n", "y_vals = ax1.get_yticks()\n", "\n", "y_label = 'Percent per ' + (unit if unit else 'unit')\n", "\n", "x_label = 'Adjusted Gross (' + (unit if unit else 'unit') + ')'\n", "\n", "ax1.set_yticklabels(['{:g}'.format(x * 100) for x in y_vals])\n", "\n", "plt.ylabel(y_label)\n", "\n", "plt.xlabel(x_label)\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The Horizontal Axis\n", "\n", "The amounts have been grouped into contiguous intervals called *bins*. Although in this dataset no movie grossed an amount that is exactly on the edge between two bins, `hist` does have to account for situations where there might have been values at the edges. So `hist` has an *endpoint convention*: bins include the data at their left endpoint, but not the data at their right endpoint. \n", "\n", "We will use the notation **[*a*, *b*)** for the bin that starts at *a* and ends at *b* but doesn't include *b*.\n", "\n", "Sometimes, adjustments have to be made in the first or last bin, to ensure that the smallest and largest values of the variable are included. You saw an example of such an adjustment in the Census data studied earlier, where an age of \"100\" years actually meant \"100 years old or older.\"\n", "\n", "We can see that there are 10 bins (some bars are so low that they are hard to see), and that they all have the same width. We can also see that none of the movies grossed fewer than 300 million dollars; that is because we are considering only the top grossing movies of all time. \n", "\n", "It is a little harder to see exactly where the ends of the bins are situated. For example, it is not easy to pinpoint exactly where the value 500 lies on the horizontal axis. So it is hard to judge exactly where one bar ends and the next begins.\n", "\n", "The optional argument `bins` can be used with `hist` to specify the endpoints of the bins. It must consist of a sequence of numbers that starts with the left end of the first bin and ends with the right end of the last bin. We will start by setting the numbers in `bins` to be 300, 400, 500, and so on, ending with 2000. \n", "\n", "**Note** defining bin values the y-axis scale has changed to 0.00 - 0.04" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "unit = 'Million Dollars'\n", "\n", "fig, ax1 = plt.subplots()\n", "\n", "ax1.hist(millions['Adjusted Gross'], bins=np.arange(300,2001,100), density=True, ec='white')\n", "\n", "y_vals = ax1.get_yticks()\n", "\n", "y_label = 'Percent per ' + (unit if unit else 'unit')\n", "\n", "x_label = 'Adjusted Gross (' + (unit if unit else 'unit') + ')'\n", "\n", "ax1.set_yticklabels(['{:g}'.format(x * 100) for x in y_vals])\n", "\n", "plt.ylabel(y_label)\n", "\n", "plt.xlabel(x_label)\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The horizontal axis of this figure is easier to read. The labels 200, 400, 600, and so on are centered at the corresponding values. The tallest bar is for movies that grossed between 300 million and 400 million dollars. \n", "\n", "A very small number of movies grossed 800 million dollars or more. This results in the figure being \"skewed to the right,\" or, less formally, having \"a long right hand tail.\" Distributions of variables like income or rent in large populations also often have this kind of shape." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The Counts in the Bins\n", "\n", "The counts of values in the bins can be computed from a table using the `.value_counts()` method, which takes a column label or index and an optional sequence or number of bins. The result is a tabular form of a histogram. The first column lists the bin ranges (but see the note about the final value, below). The second column contains the counts of all values in the `Adjusted Gross` column that are in the corresponding bin. That is, it counts all the `Adjusted Gross` values that are greater than or equal to the value in `bin`, but less than the next value in `bin`." ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Adjusted Gross
(299.999, 400.0]81
(400.0, 500.0]52
(500.0, 600.0]28
(600.0, 700.0]16
(700.0, 800.0]7
(800.0, 900.0]5
(900.0, 1000.0]3
(1100.0, 1200.0]3
(1200.0, 1300.0]2
(1000.0, 1100.0]1
(1500.0, 1600.0]1
(1700.0, 1800.0]1
(1800.0, 1900.0]0
(1300.0, 1400.0]0
(1400.0, 1500.0]0
(1600.0, 1700.0]0
(1900.0, 2000.0]0
\n", "
" ], "text/plain": [ " Adjusted Gross\n", "(299.999, 400.0] 81\n", "(400.0, 500.0] 52\n", "(500.0, 600.0] 28\n", "(600.0, 700.0] 16\n", "(700.0, 800.0] 7\n", "(800.0, 900.0] 5\n", "(900.0, 1000.0] 3\n", "(1100.0, 1200.0] 3\n", "(1200.0, 1300.0] 2\n", "(1000.0, 1100.0] 1\n", "(1500.0, 1600.0] 1\n", "(1700.0, 1800.0] 1\n", "(1800.0, 1900.0] 0\n", "(1300.0, 1400.0] 0\n", "(1400.0, 1500.0] 0\n", "(1600.0, 1700.0] 0\n", "(1900.0, 2000.0] 0" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bin_counts = millions['Adjusted Gross']\n", "\n", "bin_counts = pd.DataFrame(bin_counts.value_counts(bins=(np.arange(300,2001,100))))\n", "\n", "bin_counts" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Adjusted Gross
(299.999, 400.0]0.405
(400.0, 500.0]0.260
(500.0, 600.0]0.140
(600.0, 700.0]0.080
(700.0, 800.0]0.035
(800.0, 900.0]0.025
(900.0, 1000.0]0.015
(1100.0, 1200.0]0.015
(1200.0, 1300.0]0.010
(1000.0, 1100.0]0.005
(1500.0, 1600.0]0.005
(1700.0, 1800.0]0.005
(1800.0, 1900.0]0.000
(1300.0, 1400.0]0.000
(1400.0, 1500.0]0.000
(1600.0, 1700.0]0.000
(1900.0, 2000.0]0.000
\n", "
" ], "text/plain": [ " Adjusted Gross\n", "(299.999, 400.0] 0.405\n", "(400.0, 500.0] 0.260\n", "(500.0, 600.0] 0.140\n", "(600.0, 700.0] 0.080\n", "(700.0, 800.0] 0.035\n", "(800.0, 900.0] 0.025\n", "(900.0, 1000.0] 0.015\n", "(1100.0, 1200.0] 0.015\n", "(1200.0, 1300.0] 0.010\n", "(1000.0, 1100.0] 0.005\n", "(1500.0, 1600.0] 0.005\n", "(1700.0, 1800.0] 0.005\n", "(1800.0, 1900.0] 0.000\n", "(1300.0, 1400.0] 0.000\n", "(1400.0, 1500.0] 0.000\n", "(1600.0, 1700.0] 0.000\n", "(1900.0, 2000.0] 0.000" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bin_counts_norm = millions['Adjusted Gross']\n", "\n", "bin_counts_norm = pd.DataFrame(bin_counts_norm.value_counts(normalize=True,bins=(np.arange(300,2001,100))))\n", "\n", "bin_counts_norm" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Splitting data\n", "in the next step we take the index of 'bin_counts_norm', reset the index so that we create an 'intervals' column which can then be split into 'left' and 'right' elements." ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
intervalsleftright
0(299.999, 400.0]299.999400.0
1(400.0, 500.0]400.000500.0
2(500.0, 600.0]500.000600.0
3(600.0, 700.0]600.000700.0
4(700.0, 800.0]700.000800.0
5(800.0, 900.0]800.000900.0
6(900.0, 1000.0]900.0001000.0
7(1100.0, 1200.0]1100.0001200.0
8(1200.0, 1300.0]1200.0001300.0
9(1000.0, 1100.0]1000.0001100.0
10(1500.0, 1600.0]1500.0001600.0
11(1700.0, 1800.0]1700.0001800.0
12(1800.0, 1900.0]1800.0001900.0
13(1300.0, 1400.0]1300.0001400.0
14(1400.0, 1500.0]1400.0001500.0
15(1600.0, 1700.0]1600.0001700.0
16(1900.0, 2000.0]1900.0002000.0
\n", "
" ], "text/plain": [ " intervals left right\n", "0 (299.999, 400.0] 299.999 400.0\n", "1 (400.0, 500.0] 400.000 500.0\n", "2 (500.0, 600.0] 500.000 600.0\n", "3 (600.0, 700.0] 600.000 700.0\n", "4 (700.0, 800.0] 700.000 800.0\n", "5 (800.0, 900.0] 800.000 900.0\n", "6 (900.0, 1000.0] 900.000 1000.0\n", "7 (1100.0, 1200.0] 1100.000 1200.0\n", "8 (1200.0, 1300.0] 1200.000 1300.0\n", "9 (1000.0, 1100.0] 1000.000 1100.0\n", "10 (1500.0, 1600.0] 1500.000 1600.0\n", "11 (1700.0, 1800.0] 1700.000 1800.0\n", "12 (1800.0, 1900.0] 1800.000 1900.0\n", "13 (1300.0, 1400.0] 1300.000 1400.0\n", "14 (1400.0, 1500.0] 1400.000 1500.0\n", "15 (1600.0, 1700.0] 1600.000 1700.0\n", "16 (1900.0, 2000.0] 1900.000 2000.0" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "interval_split = pd.DataFrame({'intervals': bin_counts_norm.index})\n", "\n", "interval_split['left'] = interval_split['intervals'].array.left\n", "\n", "interval_split['right'] = interval_split['intervals'].array.right\n", "\n", "interval_split" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[300,\n", " 400,\n", " 500,\n", " 600,\n", " 700,\n", " 800,\n", " 900,\n", " 1100,\n", " 1200,\n", " 1000,\n", " 1500,\n", " 1700,\n", " 1800,\n", " 1300,\n", " 1400,\n", " 1600,\n", " 1900]" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lower_limit = np.round(interval_split['left'],0)\n", "\n", "lower_limit = lower_limit.astype(int)\n", "\n", "lower_limit = list(lower_limit)\n", "\n", "lower_limit" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice the `bin` value 2000 in the last row. That's not the left end-point of any bar – it's the right end point of the last bar. By the endpoint convention, the data there are not included. So the corresponding `count` is recorded as 0, and would have been recorded as 0 even if there had been movies that made more than \\$2,000$ million dollars. When either `bin` or `hist` is called with a `bins` argument, the graph only considers values that are in the specified bins.\n", "\n", "Once values have been binned, the resulting counts can be used to generate a **bar chart** using df `lower_limit` *typed* as a list. " ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "image/png": "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b0yYMAERERFqCZKIiEhsghNgeno6LC0tS1xvZWVVppkgiIiIKpLgBGhiYqI0ee3rIiMjYWJiIkpQRERE6iY4AY4bNw4HDhyAj48Pbt26hfz8fOTn5+PmzZuYNm0aDh48iE8++USdsRIREYlGcC/QWbNm4f79+9i6dSt27twJiUQCAJDJZJDJZPDw8MDMmTPVFigREZGYBCdAiUSCgIAAeHl54ciRIwrjAO3t7WFlZaW2IKuTulIpLj4tFG1/RtpSGNYVb39ERDVFmQbCA4ClpWWpnWGodGm5hXA6kCza/o4NN4JhXdF2R0RUY/BRaEREVCOVeAXYoUMH1KpVCxcvXkSdOnXQoUMH+X2/kkgkEsTExIgdIxERkehKTIA9evSARCJBrVq1FF4TERFVByUmwKCgoFJfExERVWW8B0hERDVSiVeADx48eKcd8mkwRERUFZTaCeZd7vk9efLkvQIiIiIqDyUmwG+//ZadXoiIqNoqMQG6ubmVZxxERETlip1giIioRirxCvC33357px26uLi8czBERETlpcQEOHXq1DLvTCKRMAESEVGVUGICvHr1annGQUREVK5KTICmpqblGQcREVG5YicYIiKqkUq8Apw2bRokEgnWr18PqVSKadOmvXVnEokE3377ragBEhERqUOJCfD06dOoVasWioqKIJVKcfr0aUHTIREREVUFJSbA69evl/qaiIioKuM9QCIiqpGYAImIqEYqsQkUALp161amnUkkEkRHR79XQEREROWh1AR49+5daGlpwcbGBrVq8WKRiIiqj1IT4AcffIArV64gLi4OTk5OGD16NGxsbMopNCIiIvUp9bLu5MmTuHTpEtzd3XHkyBHY2dmhS5cu8Pf3R0JCQjmFSEREJL63tmu2bt0aCxcuxKVLl3D06FH06dMHP/74Iz788EP0798fP/74I2eBJyKiKqdMN/Y6d+4Mf39/3Lp1CyEhIahbty4WLFiAH3/8UV3xERERqUWZe7ZkZmZi+/btWL9+PaKiolC/fn2Ym5u/cwCbN29Ghw4dYGBggN69eyMqKqrEsmfOnIGLiwvatm2L5s2bo3v37vjll1/e+dhERFRzldoJplh+fj4OHz6M0NBQHD16FABgb2+Pbdu2wcHBARoaGu908LCwMPj6+mLdunWwtbXF5s2b4ezsjOjoaJiYmCiV//PPP9GuXTvM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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# using matplotlib\n", "\n", "width = lower_limit[1] - lower_limit[0]\n", "\n", "plt.bar(lower_limit, bin_counts_norm['Adjusted Gross'], align='center', width=width, ec='white')\n", "\n", "plt.xlabel('Adjusted Gross (Million Dollars)')\n", "\n", "plt.ylabel('Percent per Million Dollars')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The Vertical Axis: Density Scale\n", "\n", "The horizontal axis of a histogram is straightforward to read, once we have taken care of details like the ends of the bins. The features of the vertical axis require a little more attention. We will go over them one by one.\n", "\n", "Let's start by examining how to calculate the numbers on the vertical axis. If the calculation seems a little strange, have patience – the rest of the section will explain the reasoning.\n", "\n", "**Calculation.** The height of each bar is the **percent of elements that fall into the corresponding bin, relative to the width of the bin**. " ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
CountPercentHeight
(299.999, 400.0]8140.50.405
(400.0, 500.0]5226.00.260
(500.0, 600.0]2814.00.140
(600.0, 700.0]168.00.080
(700.0, 800.0]73.50.035
(800.0, 900.0]52.50.025
(900.0, 1000.0]31.50.015
(1100.0, 1200.0]31.50.015
(1200.0, 1300.0]21.00.010
(1000.0, 1100.0]10.50.005
(1500.0, 1600.0]10.50.005
(1700.0, 1800.0]10.50.005
(1800.0, 1900.0]00.00.000
(1300.0, 1400.0]00.00.000
(1400.0, 1500.0]00.00.000
(1600.0, 1700.0]00.00.000
(1900.0, 2000.0]00.00.000
\n", "
" ], "text/plain": [ " Count Percent Height\n", "(299.999, 400.0] 81 40.5 0.405\n", "(400.0, 500.0] 52 26.0 0.260\n", "(500.0, 600.0] 28 14.0 0.140\n", "(600.0, 700.0] 16 8.0 0.080\n", "(700.0, 800.0] 7 3.5 0.035\n", "(800.0, 900.0] 5 2.5 0.025\n", "(900.0, 1000.0] 3 1.5 0.015\n", "(1100.0, 1200.0] 3 1.5 0.015\n", "(1200.0, 1300.0] 2 1.0 0.010\n", "(1000.0, 1100.0] 1 0.5 0.005\n", "(1500.0, 1600.0] 1 0.5 0.005\n", "(1700.0, 1800.0] 1 0.5 0.005\n", "(1800.0, 1900.0] 0 0.0 0.000\n", "(1300.0, 1400.0] 0 0.0 0.000\n", "(1400.0, 1500.0] 0 0.0 0.000\n", "(1600.0, 1700.0] 0 0.0 0.000\n", "(1900.0, 2000.0] 0 0.0 0.000" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "counts = bin_counts\n", "\n", "counts = counts.rename(columns={'Adjusted Gross': 'Count'})\n", "\n", "percents = counts\n", "\n", "percents['Percent'] = (counts['Count']/200)*100\n", "\n", "percents\n", "\n", "heights = percents\n", "\n", "heights['Height'] = percents['Percent']/100\n", "\n", "heights" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Go over the numbers on the vertical axis of the histogram above to check that the column `Heights` looks correct." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The calculations will become clear if we just examine the first row of the table. \n", "\n", "Remember that there are 200 movies in the dataset. The [300, 400) bin contains 81 movies. That's 40.5% of all the movies:\n", "\n", "$$\n", "\\mbox{Percent} = \\frac{81}{200} \\cdot 100 = 40.5\n", "$$\n", "\n", "The width of the [300, 400) bin is $ 400 - 300 = 100$. So\n", "\n", "$$\n", "\\mbox{Height} = \\frac{40.5}{100} = 0.405\n", "$$\n", "\n", "The code for calculating the heights used the facts that there are 200 movies in all and that the width of each bin is 100." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Units.** The height of the bar is 40.5% divided by 100 million dollars, and so the height is 0.405% per million dollars. \n", "\n", "This method of drawing histograms creates a vertical axis that is said to be ***on the density scale***. The height of bar is **not** the percent of entries in the bin; it is the percent of entries in the bin relative to the amount of space in the bin. That is why the height measures crowdedness or *density*.\n", "\n", "Let's see why this matters." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Unequal Bins\n", "An advantage of the histogram over a bar chart is that a histogram can contain bins of unequal width. Below, the values in the `Millions` column are binned into three uneven categories." ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "uneven = np.array([300, 400, 600, 1500])\n", "\n", "fig, ax1 = plt.subplots()\n", "\n", "ax1.hist(millions['Adjusted Gross'], bins=uneven, density=True, ec='white')\n", "\n", "y_vals = ax1.get_yticks()\n", "\n", "y_label = 'Percent per ' + (unit if unit else 'unit')\n", "\n", "x_label = 'Adjusted Gross (' + (unit if unit else 'unit') + ')'\n", "\n", "ax1.set_yticklabels(['{:g}'.format(x * 100) for x in y_vals])\n", "\n", "plt.ylabel(y_label)\n", "\n", "plt.xlabel(x_label)\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here are the counts in the three bins." ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Adjusted Gross
(299.999, 400.0]81
(400.0, 600.0]80
(600.0, 1500.0]37
\n", "
" ], "text/plain": [ " Adjusted Gross\n", "(299.999, 400.0] 81\n", "(400.0, 600.0] 80\n", "(600.0, 1500.0] 37" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bin_counts_uneven = millions['Adjusted Gross']\n", "\n", "bin_counts_uneven = pd.DataFrame(bin_counts_uneven.value_counts(bins=uneven))\n", "\n", "bin_counts_uneven" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Although the ranges [300, 400) and [400, 600) have nearly identical counts, the bar over the former is twice as tall as the latter because it is only half as wide. The density of values in the [300, 400) is twice as much as the density in [400, 600). \n", "\n", "Histograms help us visualize where on the number line the data are most concentrated, especially when the bins are uneven." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The Problem with Simply Plotting Counts\n", "It is possible to display counts directly in a chart, using the `normed=False` option of the `hist` method. The resulting chart has the same shape as a histogram when the bins all have equal widths, though the numbers on the vertical axis are different." ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "millions.hist('Adjusted Gross', density=False, bins=np.arange(300,2001,100), ec='white')\n", "\n", "plt.xlabel('Adjusted Gross')\n", "\n", "plt.ylabel('Count')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "While the count scale is perhaps more natural to interpret than the density scale, the chart becomes highly misleading when bins have different widths. Below, it appears (due to the count scale) that high-grossing movies are quite common, when in fact we have seen that they are relatively rare." ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "millions.hist('Adjusted Gross', density=False, bins=uneven, ec='white')\n", "\n", "plt.xlabel('Adjusted Gross')\n", "\n", "plt.ylabel('Count')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Even though the method used is called `hist`, **the figure above is NOT A HISTOGRAM.** It misleadingly exaggerates the proportion of movies grossing at least 600 million dollars. The height of each bar is simply plotted at the number of movies in the bin, *without accounting for the difference in the widths of the bins*. \n", "\n", "The picture becomes even more absurd if the last two bins are combined." ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "image/png": "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0Lm6umLr1q0oLy/XWHbnzh1s3boVrq6uzVYcERHRo2rSySjvvfcexo8fj4EDB2LixInChdcXL17Exo0bkZ2djW+++aZFCiUiInoYTQq6F154AevWrcO8efPw/vvvC3cfUalUkMvlWLduHXx9fVukUCIioofR5KcXBAYGYvTo0cjMzBSum7O1tYWHhwdatWrWhyEQERE9sodKplatWqFnz57o2bNnc9dDRETUrBo8GSU/Px+9evXCggULHthvwYIFeO6551BYWNhsxRERET2qBoNuzZo1uHnzJsLDwx/Yb8aMGSgqKlJ7SCoREZG2NRh0P/74I1566aUGb6llZmaGgIAA7N27t9mKIyIielQNBt1ff/2FLl26NGpjbm5uyMnJeeSiiIiImkuDQSeRSFBTU9OojdXU1DzwgadERESPW4NBZ2tri19//bVRG/vtt99ga2v7yEURERE1lwaDbvjw4fj+++9x8eLFB/a7ePEiEhMTMWLEiGYrjoiI6FE1GHTTp0+HiYkJRo0ahcTERFRVVaktr6qqQmJiIl588UWYmppi+vTpLVYsERFRUzV4wfgzzzyDbdu2Ydy4cQgLC8M777wDR0dHtGnTBmVlZbh06RIqKirQoUMHfPfdd7C0tHwcdRMRETVKo+6M0r17d6Snp2PTpk3Yt28fLly4gNLSUpiamsLd3R2+vr544403YG5u3tL1EhERNUmjbwFmbm6O8PDwBi8cJyIi0iVNeh4dERGRvmHQERGRqDHoiIhI1Bh0REQkagw6IiISNQYdERGJGoOOiIhEjUFHRESixqAjIiJR06ugi46OhlQqRUREhNCmUqkQGRkJZ2dntG/fHn5+fjh37pwWqyQiIl2iN0F38uRJxMXFwc3NTa195cqViImJQVRUFA4ePAiZTIYxY8agtLRUS5USEZEu0YugKykpwaRJk7Bq1SpIpVKhXaVSITY2FuHh4fD394erqytiY2NRVlaGxMRE7RVMREQ6Qy+CrjbI+vfvr9aem5uL/Px8DBo0SGgzMjJC7969kZGR8bjLJCIiHdTopxdoS1xcHHJycrB27VqNZfn5+QAAmUym1i6TyXD9+vV6t5mdnf3Q9ZQbWz/0ukREpKn8djmyC6899PoKheKBy3U66LKzszF//nzs3bsXhoaG9faTSCRqv6tUKo22+zX0pjyIsvihVyUiojoYGRtB0fHhP5cbotO7Lk+cOIGioiI8//zzsLS0hKWlJdLS0rB+/XpYWlqibdu2AICCggK19QoLCzVmeURE9GTS6Rmdn58funfvrtY2bdo0ODg44L333oOjoyPkcjlSUlLQo0cPAEBFRQXS09Mxf/58bZRMREQ6RqeDTiqVqp1lCQDGxsawsLCAq6srAGDKlCmIjo6GQqGAo6Mjli1bBhMTEwQGBmqhYiIi0jU6HXSNMWPGDJSXlyMiIgJKpRKenp5ISkqCqamptksjIiIdIFEqlSptF6FPThYDQ7fnPdbX3ObbAS/vrf8sUiIifXZgdEf0smi57ev0yShERESPikFHRESixqAjIiJRY9AREZGoMeiIiEjUGHRERCRqDDoiIhI1Bh0REYkag46IiESNQUdERKLGoCMiIlFj0BERkagx6IiISNQYdEREJGoMOiIiEjUGHRERiRqDjoiIRI1BR0REosagIyIiUWPQERGRqDHoiIhI1Bh0REQkagw6IiISNQYdERGJGoOOiIhEjUFHRESixqAjIiJR0+mg+/zzzzFw4EDY2NjAwcEBQUFB+OOPP9T6qFQqREZGwtnZGe3bt4efnx/OnTunpYqJiEjX6HTQHT16FBMnTsT+/fuxc+dOtGrVCqNHj0ZxcbHQZ+XKlYiJiUFUVBQOHjwImUyGMWPGoLS0VIuVExGRrmil7QIeJCkpSe33tWvXwtbWFsePH4evry9UKhViY2MRHh4Of39/AEBsbCwUCgUSExMREhKijbKJiEiH6PSM7p/KyspQU1MDqVQKAMjNzUV+fj4GDRok9DEyMkLv3r2RkZGhpSqJiEiX6PSM7p9mz56Nrl274rnnngMA5OfnAwBkMplaP5lMhuvXr9e7nezs7IeuodzY+qHXJSIiTeW3y5FdeO2h11coFA9crjdB98EHH+D48ePYt28fDAwM1JZJJBK131UqlUbb/Rp6Ux5EWdxwHyIiajwjYyMoOj7853JD9GLX5Zw5c/D9999j586dsLe3F9rlcjkAoKCgQK1/YWGhxiyPiIieTDofdLNmzUJiYiJ27tyJzp07qy2zs7ODXC5HSkqK0FZRUYH09HR4eXk97lKJiEgH6fSuy5kzZ2Lr1q345ptvIJVKhWNyJiYmaNOmDSQSCaZMmYLo6GgoFAo4Ojpi2bJlMDExQWBgoJarJyIiXaDTQbd+/XoAEC4dqDVr1izMmTMHADBjxgyUl5cjIiICSqUSnp6eSEpKgqmp6WOvl4iIdI9OB51SqWywj0QiwZw5c4TgIyIiup/OH6MjIiJ6FAw6IiISNQYdERGJGoOOiIhEjUFHRESixqAjIiJRY9AREZGoMeiIiEjUGHRERCRqDDoiIhI1Bh0REYkag46IiESNQUdERKLGoCMiIlFj0BERkagx6IiISNQYdEREJGoMOiIiEjUGHRERiRqDjoiIRI1BR0REosagIyIiUWPQERGRqDHoiIhI1Bh0REQkagw6IiISNQYdERGJmmiCbv369XB3d4dcLkf//v1x7NgxbZdEREQ6QBRBl5SUhNmzZ+Nf//oXjhw5gueeew4vv/wyrl69qu3SiIhIy0QRdDExMXjttdcQHBwMJycnfPbZZ5DL5di4caO2SyMiIi1rpe0CHtXdu3eRmZmJt99+W6190KBByMjIaPbX62UBKEM6Nvt2G6KN1yQiEgO9n9EVFRWhuroaMplMrV0mk6GgoEBLVRERka7Q+6CrJZFI1H5XqVQabURE9OTR+6CztLSEgYGBxuytsLBQY5ZHRERPHr0POkNDQ3h4eCAlJUWtPSUlBV5eXlqqioiIdIXen4wCANOmTcNbb70FT09PeHl5YePGjbhx4wZCQkK0XRoREWmZ3s/oAOCll15CZGQkPvvsM/Tt2xfHjx9HQkICbG1ttV1ag6KjoyGVShERESG0qVQqREZGwtnZGe3bt4efnx/OnTuntt6dO3cQERGBTp06wcrKCmPHjkVeXt7jLv+Bbty4gcmTJ8PBwQFyuRxeXl44evSosFyfx1ldXY2FCxcKNylwd3fHwoULUVVVJfTRx/GlpaVh7NixcHFxgVQqRXx8vNry5hqTUqlEWFgYbG1tYWtri7CwMCiVypYe3gPHV1lZiY8//hi9e/eGlZUVnJycEBoaqnE9ri6PD2j4b3i/GTNmQCqVYtWqVWrtuj7GphJF0AFAaGgosrKyUFBQgMOHD8PHx0fbJTXo5MmTiIuLg5ubm1r7ypUrERMTg6ioKBw8eBAymQxjxoxBaWmp0GfOnDlITk7Ghg0bsGfPHpSWliIoKAjV1dWPexh1UiqVGD58OFQqFRISEpCRkYGlS5eqHTfV53GuWLEC69evR1RUFE6cOIElS5bgyy+/xOeffy700cfx3bp1C66urliyZAmMjIw0ljfXmEJDQ3H69Gls27YNiYmJOH36NN566y2tju/27dv4/fffMXPmTBw+fBhbtmxBXl4eAgMD1b7A6PL4Ghrj/Xbs2IHffvsNHTp00Fim62NsKolSqVRpu4gnUUlJCfr374+VK1di6dKlcHV1xWeffQaVSgVnZ2dMmjQJM2fOBACUl5dDoVBgwYIFCAkJQUlJCRwdHRETE4NXXnkFAHDt2jV07doViYmJGDx4sDaHBgCYP38+0tLSsH///jqX6/s4g4KCYGFhgTVr1ghtkydPRnFxMbZu3ar34wOAjh07YunSpRg3bhyA5vubXbhwAV5eXti3bx+8vb0BAOnp6fD19cXJkyehUCi0Mr66nD9/Ht7e3khLS4Obm5tejQ+of4xXrlzB8OHDsX37dgQGBiIsLEy4FlnfxtgYopnR6Zvw8HD4+/ujf//+au25ubnIz8/HoEGDhDYjIyP07t1buAA+MzMTlZWVan2sra3h5OTUIhfJP4zdu3fD09MTISEhcHR0RJ8+fbBu3TqoVPe+V+n7OL29vXH06FFcvHgRwL0PxNTUVAwdOhSA/o+vLs01phMnTqBNmzZqJ4t5e3vDxMRE58ZdO1OVSqUAxDG+qqoqhIaGYubMmXByctJYLoYx/pMoTkbRN3FxccjJycHatWs1luXn5wNAnRfAX79+HQBQUFAAAwMDWFpaavTRlYvkL1++jA0bNmDq1KkIDw9HVlYWZs2aBQAICwvT+3GGh4ejrKwMXl5eMDAwQFVVFWbOnInQ0FAA4vk73q+5xlRQUABLS0u161wlEgmeeeYZnRr33bt3MW/ePIwYMQIdO967M5EYxhcZGQkLCwtMnDixzuViGOM/Meges+zsbMyfPx979+6FoaFhvf0e5gJ4XbpIvqamBt27d8fHH38MAOjWrRtycnKwfv16hIWFCf30dZxJSUn47rvvsH79ejg7OyMrKwuzZ8+Gra0tJkyYIPTT1/E9SHOMqa7+ujTuqqoqhIWFoaSkBN9++22D/fVlfEePHsWWLVuQmpra5HX1ZYx14a7Lx+zEiRMoKirC888/D0tLS1haWiItLQ3r16+HpaUl2rZtCwAPvAC+Xbt2qK6uRlFRUb19tE0ul2vsFuncuTOuXbsmLAf0d5wfffQRpk+fjoCAALi5uWHs2LGYNm0ali9fDkD/x1eX5hpTu3btUFhYKOzGBu59QBYVFenEuKuqqjBx4kScPXsWO3bsEP5NAvo/vtTUVNy4cQNOTk7C58/Vq1fx8ccfw9XVFYD+j7EuDLrHzM/PD8eOHUNqaqrw0717dwQEBCA1NRWOjo6Qy+VqF8BXVFQgPT1d2B/u4eGB1q1bq/XJy8sTDhDrAm9vb1y6dEmt7dKlS7CxsQEA2NnZ6fU4b9++DQMDA7U2AwMD1NTUAND/8dWlucb03HPPoaysDCdOnBD6nDhxArdu3dL6uCsrKxESEoKzZ88iOTlZCPda+j6+0NBQpKWlqX3+dOjQAVOnTsWOHTsA6P8Y68Jdl4+ZVCoVDmzXMjY2hoWFhfCNasqUKYiOjoZCoYCjoyOWLVsGExMTBAYGAgDMzc3x+uuv46OPPoJMJoOFhQXmzp0LNzc3DBgw4DGPqG5Tp07FsGHDsGzZMrz00ks4ffo01q1bhw8//BDAvd0e+jzOESNGYMWKFbCzs4OzszNOnz6NmJgYjB07FoD+jq+srAw5OTkA7u1+vnbtGk6fPg0LCwvY2Ng0y5icnJwwZMgQvPvuu1i5ciVUKhXeffddDB8+vMXP1nvQ+Dp06IDg4GCcOnUK3377LSQSiXBc0szMDEZGRjo/vobGaGNjozHjatWqFeRyuVCbPoyxqXh5gQ7w8/MTLi8A7u0CWLJkCb766isolUp4enpi2bJlQhAC975Jf/jhh0hMTERFRQX69euH6OhoWFtba2sYGvbv34/58+fj0qVLsLa2xqRJk/DWW28J+/D1eZylpaVYtGgRdu3ahcLCQsjlcgQEBOD999/H008/DUA/x5eamopRo0ZptL/66quIjY1ttjEVFxdj1qxZ2Lt3LwDA19cXS5cu1fgS+DjHN3v2bHTr1q3O9WJiYoRT9HV5fEDDf8N/6tq1q9rlBYDuj7GpGHRERCRqPEZHRESixqAjIiJRY9AREZGoMeiIiEjUGHRERCRqDDoiIhI1Bh1RI+Tm5mo8xDIyMlInrxlqjPj4eEilUuTm5mq7FKIWx6CjJ8qWLVsglUrRvXt3bZfSoPT0dERGRurEU5uLi4uxaNEi9O3bFzY2NmjXrh26dOmC4OBgJCcnq93zkEjXMOjoiZKQkABbW1v89ddfavfpexgRERG4ceNGM1Wm6fjx44iKikJJSUmLvUZj/P777/D29sbKlSvh4uKCDz/8ENHR0Rg/fjyuXbuG119/HRs2bNBqjUQPwntd0hPjxo0bOHLkCNasWYMFCxYgISEBzz333ENvr1WrVmjVStz/hEpKSvDaa69BpVLh0KFDarf6AoDZs2fjyJEjDYbx7du3YWxs3JKlEtWLMzp6Ymzbtg1PP/00XnjhBQQEBCApKQmVlZUa/W7cuIHg4GBYW1vD3t4e06dPF540fb+6jtFJpVJERkZq9PXz84Ofn59a2/r169G7d29YWVnB3t4e/fv3x8aNG4Vtf/rppwDuPcuv9mbg9z9HLCUlBSNHjoS1tTWsrKwwcuTIOp/ufPLkSQwbNgxyuRxdunTB8uXLG72r8auvvkJeXh4WLVqkEXK1+vXrp3Zvxdrjf0eOHMHs2bPRuXNnWFlZCcv37NmDwYMHo0OHDrCzs8O4ceOEJ7XXKisrw7x58+Du7i7ccHjUqFFq48/JycEbb7wBJycnyOVyuLm5ITg4GP/5z38aNTZ6coj76yjRfbZu3Yrhw4ejTZs2CAwMxIoVK/DTTz/B19dX6FNRUQF/f3/k5ORg0qRJsLOzQ3JyMiZPntystWzevBkzZ87Eiy++iEmTJqGyshLnz5/H8ePH8eabb2LUqFHIzs5GUlISFi9eLDztufYZf4mJiQgLC0Pfvn0xd+5c1NTUID4+Hi+++CJ2796Nnj17AgDOnz+P0aNHw9TUFDNnzoShoSG++uormJiYNKrOvXv3wsjICP7+/k0e46xZs2Bubo733nsPf//9t1D3pEmT0KVLF8ydOxd///031q1bh2HDhuHQoUOwt7cHALz33nvYvn07QkND4ezsjJKSEvzyyy/IyspC3759UVlZiZdeegkVFRUIDQ2FXC5Hfn4+Dh48iP/85z9qwUrEoKMnwrlz53DmzBnMmjULANClSxe4uLggISFBLeji4uJw4cIFrFmzRnjkTmhoKEaOHNms9ezfvx8uLi7YvHlzncu7dOmCrl27IikpCX5+frCzsxOW3bp1CzNnzkRQUJDa3ehDQkLg7e2N+fPnY+fOnQCARYsW4e7du9i7dy+effZZAMC4cePQo0ePRtV5/vx5ODg4wNDQUK391q1bqKioEH5v1aoVzM3N1foYGxtj165dwu7dyspKzJ07F46Ojti3b58Qtn5+fhg4cCAWL16MdevWCe9PcHAwFi9eXG9dly9fRlxcnFoIR0RENGpc9GThrkt6ImzduhVmZmYYNmyY0BYQEIC9e/cKsw3g3gesTCbDyy+/LLQZGBjgrbfeatZ6TE1NkZeXh19//bXJ66akpECpVOKVV15BUVGR8FNeXo4BAwYgPT0dlZWVqK6uxs8//4wRI0YIIQcAzzzzDF555ZVGvVZpaSlMTU012j/55BM4ODgIP6+99ppGn+DgYLVjmJmZmcjPz8fEiRPVZpTdunXDgAED8OOPPwq7VE1NTfHrr7/Wuxuytqaff/4Zt27datRY6MnFoCPRU6lUSExMhI+PD27cuIHc3Fzk5uaiV69eqKioEGY/AHD16lU8++yzGk8Pd3R0bNaawsPD0aZNGwwePBgeHh549913cfjw4Uat++effwIAxowZoxY2Dg4O2Lx5MyorK1FSUoLCwkLcvn27zgdhNnY8pqamdR6fDAsLw/bt27F9+/Z6n51Xuxuy1pUrVwAAnTt31ujr5OQEpVIpfOn49NNP8ccff6BLly4YMGAAFi5ciAsXLqhte/Lkydi8eTMcHBzg7++P1atXo6ioqFHjoicLd12S6KWmpuLatWu4du2a8JDI+yUkJGD8+PEA7oVi7YNh7/eo14nV1NTgqaf+973S2dkZJ0+exE8//YSff/4Z+/fvx6ZNmxASEoLly5c3uC0AWL16db3HoszMzHDz5k0AeKTxODs7IzMzE3fv3lXbfalQKIQANTIyqnPd+trr8s96AgIC4OPjg7179+LgwYNYu3YtVqxYgZiYGAQFBQEAlixZguDgYKHPhx9+iGXLlmH37t1wcXFp9GuT+DHoSPQSEhJgYWGBVatWaSw7fPgwNmzYIJzAYGtri6ysLFRXV6vN6mpnUQ2RSqV1nmp/5coVjRmOiYkJ/P394e/vj6qqKkyZMgWbNm1CREQErKys6gwoAMJuyGeeeQYDBgyotxaZTAZjY2ONMxqbMh5fX18cP34c27dvb/TuzvrY2toCAC5evIhBgwapLcvOzoZUKoWZmZnQ1r59e4SEhCAkJARKpRJDhw5FVFSUEHQA4OLiAhcXF7z33ns4c+YMBgwYgNjYWPz73/9+pFpJXLjrkkStdtfk0KFDMXLkSI2fadOmoaamBomJiQCAYcOG4b///S+2bdsmbKO6uhpr165t1Ot16tQJR48eVWvbvXs38vLy1NpqZ1u1WrVqBTc3NwAQ7oRSe93ZP++MMnjwYJibm2PZsmW4c+eORg2FhYUA7h1bHDRoEPbt24e//vpLbfn943uQN954Ax07dsTcuXNx7ty5Ovs0dnbo4eEBuVyOjRs3ory8XGjPyspCSkoKhg0bBolEgurqao0vC1KpFHZ2dsJ78ffff6Oqqkqtj5OTE4yMjHTiTjKkWzijI1GrPdnkhRdeqHO5vb09XFxcsHXrVrzzzjsIDg7Ghg0b8Pbbb+P06dOwt7fHzp076zxOVZc33ngD77zzDl577TUMHToUFy9eRGJiotrJIMC942symQze3t5o164d/vrrL6xbtw6urq5wdnYGAOE2ZQsWLEBAQAAMDQ3Rr18/yGQyrFy5EhMnTkSfPn3w8ssvQy6XIy8vD6mpqTAxMRGC+4MPPsDBgwfh6+uL0NBQtG7dGl999RVsbGwadccVc3NzxMfHIygoCP3798fo0aPRs2dPGBkZ4caNG9i/fz8uXbokXM7wIK1bt8aiRYswadIkDB8+HEFBQcLlBWZmZvjggw8A3DsBxtXVFaNGjUKXLl1gZmaG48eP46effsKkSZMAAEeOHEFERARefPFFKBQKqFQqJCUlobS0FAEBAY36W9GTg0FHorZ161YYGhpi8ODB9fYZMWIEli9fjjNnzqBLly7YsWMHZs+ejbi4OLRu3RojR47E5MmT0adPnwZfb/z48bhy5Qo2b96MgwcPonv37ti2bRvmzp2r1i8kJATbtm1DbGwsSktL0b59e4wbNw4RERHCsbxevXph3rx5+Oqrr4SZZ3JyMmQyGUaPHo0OHTrg888/x+rVq1FeXg65XI6ePXtiwoQJwuu4urrihx9+wLx58/DZZ59BJpNh4sSJkMlkmD59eqPeQw8PDxw7dgyxsbHYu3cvdu/ejcrKSrRr1w49e/bEe++9p3aJxoMEBgbCyMgI0dHRWLBgAQwNDdGnTx988sknwq5dY2NjhIaGIiUlBXv37kVVVRXs7OywYMECTJkyBcC9yy+GDBmCAwcOYPPmzfi///s/uLi4ID4+XuPCfCKJUqnk3ViJHsLChQuxfPlynulHpON4jI7oIeXn5wt3LCEi3cVdl0RNdPnyZSQnJ2PHjh0YPny4tsshogZwRkfURGlpaVi6dCmef/55LFq0SNvlEFEDeIyOiIhEjTM6IiISNQYdERGJGoOOiIhEjUFHRESixqAjIiJRY9AREZGo/T+uNmGcBNZx+gAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "very_uneven = np.array([300, 400, 1500])\n", "\n", "millions.hist('Adjusted Gross', density=False, bins=very_uneven, ec='white')\n", "\n", "plt.xlabel('Adjusted Gross')\n", "\n", "plt.ylabel('Count')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this count-based figure, the shape of the distribution of movies is lost entirely." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The Histogram: General Principles and Calculation\n", "\n", "The figure above shows that what the eye perceives as \"big\" is area, not just height. This observation becomes particularly important when the bins have different widths.\n", "\n", "That is why a histogram has two defining properties:\n", "\n", "1. The bins are drawn to scale and are contiguous (though some might be empty), because the values on the horizontal axis are numerical.\n", "2. The **area** of each bar is proportional to the number of entries in the bin. \n", "\n", "Property 2 is the key to drawing a histogram, and is usually achieved as follows:\n", "\n", "$$\n", "\\mbox{area of bar} ~=~ \\mbox{percent of entries in bin}\n", "$$\n", "\n", "The calculation of the heights just uses the fact that the bar is a rectangle:\n", "\n", "$$\n", "\\mbox{area of bar} = \\mbox{height of bar} \\times \\mbox{width of bin}\n", "$$\n", "\n", "and so\n", "\n", "$$\n", "\\mbox{height of bar} ~=~ \n", "\\frac{\\mbox{area of bar}}{\\mbox{width of bin}} ~=~\n", "\\frac{\\mbox{percent of entries in bin}}{\\mbox{width of bin}}\n", "$$\n", "\n", "The units of height are \"percent per unit on the horizontal axis.\"\n", "\n", "When drawn using this method, the histogram is said to be drawn on the density scale. On this scale:\n", "- The area of each bar is equal to the percent of data values that are in the corresponding bin.\n", "- The total area of all the bars in the histogram is 100%. Speaking in terms of proportions, we say that the areas of all the bars in a histogram \"sum to 1\"." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Flat Tops and the Level of Detail\n", "\n", "Even though the density scale correctly represents percents using area, some detail is lost by grouping values into bins.\n", "\n", "Take another look at the [300, 400) bin in the figure below. The flat top of the bar, at the level 0.405% per million dollars, hides the fact that the movies are somewhat unevenly distributed across that bin. " ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax1 = plt.subplots()\n", "\n", "ax1.hist(millions['Adjusted Gross'], bins=uneven, density=True, ec='white')\n", "\n", "y_vals = ax1.get_yticks()\n", "\n", "y_label = 'Percent per ' + (unit if unit else 'unit')\n", "\n", "x_label = 'Adjusted Gross (' + (unit if unit else 'unit') + ')'\n", "\n", "ax1.set_yticklabels(['{:g}'.format(x * 100) for x in y_vals])\n", "\n", "plt.ylabel(y_label)\n", "\n", "plt.xlabel(x_label)\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To see this, let us split the [300, 400) bin into 10 narrower bins, each of width 10 million dollars." ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "some_tiny_bins = np.array([300, 310, 320, 330, 340, 350, 360, 370, 380, 390, 400, 600, 1500])\n", "\n", "fig, ax1 = plt.subplots()\n", "\n", "ax1.hist(millions['Adjusted Gross'], bins=some_tiny_bins, density=True, ec='white')\n", "\n", "y_vals = ax1.get_yticks()\n", "\n", "y_label = 'Percent per ' + (unit if unit else 'unit')\n", "\n", "x_label = 'Adjusted Gross (' + (unit if unit else 'unit') + ')'\n", "\n", "ax1.set_yticklabels(['{:g}'.format(x * 100) for x in y_vals])\n", "\n", "plt.ylabel(y_label)\n", "\n", "plt.xlabel(x_label)\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Some of the skinny bars are taller than 0.405 and others are shorter; the first two have heights of 0 because there are no data between 300 and 320. By putting a flat top at the level 0.405 across the whole bin, we are deciding to ignore the finer detail and are using the flat level as a rough approximation. Often, though not always, this is sufficient for understanding the general shape of the distribution." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**The height as a rough approximation.**\n", "This observation gives us a different way of thinking about the height.\n", "Look again at the [300, 400) bin in the earlier histograms. As we have seen, the bin is 100 million dollars wide and contains 40.5% of the data. Therefore the height of the corresponding bar is 0.405% per million dollars.\n", "\n", "Now think of the bin as consisting of 100 narrow bins that are each 1 million dollars wide. The bar's height of \"0.405% per million dollars\" means that as a rough approximation, 0.405% of the movies are in each of those 100 skinny bins of width 1 million dollars." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice that because we have the entire dataset that is being used to draw the histograms, we can draw the histograms to as fine a level of detail as the data and our patience will allow. However, if you are looking at a histogram in a book or on a website, and you don't have access to the underlying dataset, then it becomes important to have a clear understanding of the \"rough approximation\" created by the flat tops." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Histograms Q&A\n", "Let's draw the histogram again, this time with four bins, and check our understanding of the concepts." ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "image/png": "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375dso9IJEJISIhSAiciInqb4KR29+5diEQi6Om9XuC3dPysYcOG0NPTw6tXr/Dnn39K7VPRe9eIiIgqQnBS44odRERU21X/UvJERERKwqRGREQqg0mNiIhUBpMaERGpDCY1IiJSGUxqRESkMgQntR49euDEiRNyy0+ePIkePXpUSVBEREQVITippaSkIDc3V255bm6u5MGhRERENUGhy4/lrRDy999/o1mzZpUOiIiIqKLKXVFk//79+OmnnySvN2/ejD179sjUy87Oxu3bt2FnZ1f1ERIREQlUblLLzc1Fenq65PWzZ89QUlIiVUckEqFx48ZwdXWFr6+vcqIkIiISoNyk5unpCU9PTwCAubk5NmzYgOHDh1dLYERERIoSvKDxzZs3lRkHERFRpQlOaqVycnLw6NEjPH36FGKxWKa8X79+VRIYERGRogQntadPn2LRokX45ZdfUFxcLFMuFoshEomQlZVVpQESEREJJTipzZs3D8eOHYOnpyf69esHTU1NJYZFRESkOMFJ7fTp0/D29sa6deuUGQ8REVGFCb75Wl1dHYaGhsqMhYiIqFIEJ7XRo0fj119/VWYsRERElSI4qc2aNQtpaWmYNm0arl69irS0NPz7778yP0RERDVF8JiapaUlRCIR4uPjERISIrceZz8SEVFNEZzUPv/883IXNCYiIqppgpPa4sWLlRkHERFRpVXoydfFxcXIyspCUVFRVcdDRERUYQoltWvXrmHMmDHQ1dWFkZERLly4AADIzMzE+PHjce7cOaUESUREJITgpHblyhUMHz4cycnJmDBhgtS6j1paWnjx4gV++OEHhQMICgqCubk5dHR0MHDgQMTGxsqtm5+fDx8fH/Tt2xetW7eGvb29wu0REZHqEpzU1qxZA0NDQ1y+fBnLly+XKR8wYAB+//13hRoPCwuDr68vPvvsM0RHR6NPnz5wdHTEw4cPy6xfXFyMRo0awcvLC7a2tgq1RUREqk9wUrt27RomTZqERo0alTkLsn379lIPFBUiICAALi4ucHV1hYmJCfz8/KCjo4Pg4OAy6zdp0gT+/v6YMmUK2rdvr1BbRESk+gQntXr16qFePfnV09PToaGhIbjhgoICxMfHw8bGRmq7jY0NLl++LPg4REREpQRP6bewsMDJkyfh7e0tU1ZQUIDQ0FD06dNHcMOZmZkoLi6Gtra2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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "uneven_again = np.array([300, 350, 400, 450, 1500])\n", "\n", "fig, ax1 = plt.subplots()\n", "\n", "ax1.hist(millions['Adjusted Gross'], bins=uneven_again, density=True, ec='white')\n", "\n", "y_vals = ax1.get_yticks()\n", "\n", "y_label = 'Percent per ' + (unit if unit else 'unit')\n", "\n", "x_label = 'Adjusted Gross (' + (unit if unit else 'unit') + ')'\n", "\n", "ax1.set_yticklabels(['{:g}'.format(x * 100) for x in y_vals])\n", "\n", "plt.ylabel(y_label)\n", "\n", "plt.xlabel(x_label)\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Adjusted Gross
(450.0, 1500.0]92
(350.0, 400.0]49
(299.999, 350.0]32
(400.0, 450.0]25
\n", "
" ], "text/plain": [ " Adjusted Gross\n", "(450.0, 1500.0] 92\n", "(350.0, 400.0] 49\n", "(299.999, 350.0] 32\n", "(400.0, 450.0] 25" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bin_counts_uneven_again = millions['Adjusted Gross']\n", "\n", "bin_counts_uneven_again = pd.DataFrame(bin_counts_uneven_again.value_counts(bins=uneven_again))\n", "\n", "bin_counts_uneven_again" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Look again at the histogram, and compare the [400, 450) bin with the [450, 1500) bin.\n", "\n", "**Q**: Which has more movies in it? \n", "\n", "**A**: The [450, 1500) bin. It has 92 movies, compared with 25 movies in the [400, 450) bin.\n", "\n", "**Q**: Then why is the [450, 1500) bar so much shorter than the [400, 450) bar?\n", "\n", "**A**: Because height represents density per unit of space in the bin, not the number of movies in the bin. The [450, 1500) bin does have more movies than the [400, 450) bin, but it is also a whole lot wider. So it is less crowded. The density of movies in it is much lower." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Differences Between Bar Charts and Histograms\n", "\n", "- Bar charts display one quantity per category. They are often used to display the distributions of categorical variables. Histograms display the distributions of quantitative variables. \n", "- All the bars in a bar chart have the same width, and there is an equal amount of space between consecutive bars. The bars of a histogram can have different widths, and they are contiguous.\n", "- The lengths (or heights, if the bars are drawn vertically) of the bars in a bar chart are proportional to the value for each category. The heights of bars in a histogram measure densities; the *areas* of bars in a histogram are proportional to the numbers of entries in the bins." ] } ], "metadata": { "anaconda-cloud": {}, "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.8.5" } }, "nbformat": 4, "nbformat_minor": 1 }