{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "A6iFUUQLNDlE" }, "source": [ "\n", " \n", " \n", " \n", "
\n", " Run in Google Colab\n", " \n", " View on Github\n", " \n", " View raw on Github\n", "
" ] }, { "cell_type": "markdown", "metadata": { "id": "rHEGnwRZTG6O" }, "source": [ "# Module 8: Histogram and CDF\n", "\n", "A deep dive into Histogram and boxplot." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2020-06-14T19:55:00.229Z", "iopub.status.busy": "2020-06-14T19:55:00.202Z", "iopub.status.idle": "2020-06-14T19:55:00.311Z", "shell.execute_reply": "2020-06-14T19:55:00.333Z" }, "executionInfo": { "elapsed": 184, "status": "ok", "timestamp": 1687818245973, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "S4vGQ3FkTG6R" }, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import seaborn as sns\n", "import altair as alt\n", "import pandas as pd" ] }, { "cell_type": "markdown", "metadata": { "id": "N6blkVDDTG6T" }, "source": [ "## The tricky histogram with pre-counted data" ] }, { "cell_type": "markdown", "metadata": { "id": "95_k7X_-TG6T" }, "source": [ "Let's revisit the table from the class\n", "\n", "| Hours | Frequency |\n", "|-------|-----------|\n", "| 0-1 | 4,300 |\n", "| 1-3 | 6,900 |\n", "| 3-5 | 4,900 |\n", "| 5-10 | 2,000 |\n", "| 10-24 | 2,100 |" ] }, { "cell_type": "markdown", "metadata": { "id": "CeO69PpmTG6U" }, "source": [ "You can draw a histogram by just providing bins and counts instead of a list of numbers. So, let's try that." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "execution": { "iopub.execute_input": "2020-06-14T19:55:09.164Z", "iopub.status.busy": "2020-06-14T19:55:09.141Z", "iopub.status.idle": "2020-06-14T19:55:09.196Z", "shell.execute_reply": "2020-06-14T19:55:09.215Z" }, "executionInfo": { "elapsed": 154, "status": "ok", "timestamp": 1687818249521, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "FZPPq6inTG6U" }, "outputs": [], "source": [ "bins = [0, 1, 3, 5, 10, 24]\n", "data = {0.5: 4300, 2: 6900, 4: 4900, 7: 2000, 15: 2100}" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "execution": { "iopub.execute_input": "2020-06-14T19:55:11.108Z", "iopub.status.busy": "2020-06-14T19:55:11.089Z", "iopub.status.idle": "2020-06-14T19:55:11.146Z", "shell.execute_reply": "2020-06-14T19:55:11.165Z" }, "executionInfo": { "elapsed": 5, "status": "ok", "timestamp": 1687818250050, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "0kJUBT1hTG6U", "jupyter": { "outputs_hidden": false }, "outputId": "cf1ab5f7-e38b-4ddd-d37c-c993c7108c6a" }, "outputs": [ { "data": { "text/plain": [ "dict_keys([0.5, 2, 4, 7, 15])" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.keys()" ] }, { "cell_type": "markdown", "metadata": { "id": "dLAjvNswTG6V" }, "source": [ "**Q: Draw histogram using this data.** Useful query: [Google search: matplotlib histogram pre-counted](https://www.google.com/search?client=safari&rls=en&q=matplotlib+histogram+already+counted&ie=UTF-8&oe=UTF-8#q=matplotlib+histogram+pre-counted)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 467 }, "execution": { "iopub.execute_input": "2020-06-14T19:55:50.412Z", "iopub.status.busy": "2020-06-14T19:55:50.391Z", "iopub.status.idle": "2020-06-14T19:55:50.511Z", "shell.execute_reply": "2020-06-14T19:55:50.533Z" }, "executionInfo": { "elapsed": 624, "status": "ok", "timestamp": 1687818251274, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "wo4Z0fgRTG6V", "jupyter": { "outputs_hidden": false }, "outputId": "008af409-d043-4577-8c87-e513ddc1ab49" }, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Frequency')" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkkAAAGwCAYAAAC99fF4AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAzJElEQVR4nO3df1SUdd7/8deIgIrM4C8YWVEpNSW1UkvnmO6arGjUyaS9tSzJyG5dbAMyzXtbLeteWj1qtqbuZit2ylLPWluyaoS/tkQtivxRkpmFLgy4GYxa/BDm+0dfrtuJazcdkYsfz8c51znO9XnPZ97XdWbjtZ+55hqb1+v1CgAAAD5aWd0AAABAY0RIAgAAMEFIAgAAMEFIAgAAMEFIAgAAMEFIAgAAMEFIAgAAMNHa6gaagpqaGhUWFio0NFQ2m83qdgAAwEXwer06c+aMIiMj1arVpa8LEZIuQmFhoaKioqxuAwAA+OHEiRPq1q3bJT+PkHQRQkNDJf1wku12u8XdAACAi+HxeBQVFWX8Hb9UhKSLUPsRm91uJyQBANDE+HupDBduAwAAmCAkAQAAmCAkAQAAmCAkAQAAmCAkAQAAmCAkAQAAmLA0JPXs2VM2m63OlpycLEkqLy9XcnKyOnXqpPbt2yshIUHFxcU+cxQUFCg+Pl7t2rVTeHi4HnvsMZ0/f96nZufOnRo0aJCCg4PVq1cvZWRkNNQhAgCAJsrSkPTBBx+oqKjI2LKysiRJv/rVryRJqampevvtt7Vx40bt2rVLhYWFmjBhgvH86upqxcfHq7KyUnv27NHatWuVkZGhefPmGTXHjx9XfHy8Ro0apby8PKWkpOjBBx/Utm3bGvZgAQBAk2Lzer1eq5uolZKSos2bN+vo0aPyeDzq0qWL1q1bp7vuukuSdOTIEfXr1085OTkaNmyYtmzZottuu02FhYWKiIiQJK1atUpz5szRqVOnFBQUpDlz5igzM1OHDh0yXmfSpEkqLS3V1q1bL6ovj8cjh8OhsrIybiYJAEATcbl/vxvNNUmVlZV65ZVX9MADD8hmsyk3N1dVVVWKjY01avr27avu3bsrJydHkpSTk6MBAwYYAUmS4uLi5PF4dPjwYaPmwjlqa2rnMFNRUSGPx+OzAQCAlqXRhKQ333xTpaWluv/++yVJbrdbQUFBCgsL86mLiIiQ2+02ai4MSLXjtWP/qcbj8ej777837SU9PV0Oh8PY+HFbAABankYTkl566SWNGzdOkZGRVreiuXPnqqyszNhOnDhhdUsAAKCBNYofuP3666/17rvvatOmTcY+p9OpyspKlZaW+qwmFRcXy+l0GjX79+/3mav2228X1vz4G3HFxcWy2+1q27ataT/BwcEKDg6+7OMCAABNV6NYSVqzZo3Cw8MVHx9v7Bs8eLACAwOVnZ1t7MvPz1dBQYFcLpckyeVy6eDBgyopKTFqsrKyZLfbFRMTY9RcOEdtTe0cAAAAZiwPSTU1NVqzZo0SExPVuvX/LWw5HA4lJSUpLS1NO3bsUG5urqZOnSqXy6Vhw4ZJksaMGaOYmBjdd999+uSTT7Rt2zY98cQTSk5ONlaCpk+fri+//FKzZ8/WkSNHtGLFCm3YsEGpqamWHC8AAGgaLP+47d1331VBQYEeeOCBOmNLly5Vq1atlJCQoIqKCsXFxWnFihXGeEBAgDZv3qwZM2bI5XIpJCREiYmJWrBggVETHR2tzMxMpaamatmyZerWrZtWr16tuLi4Bjm+htbz8UyrW6jjq2fjf7oIAIBGplHdJ6mxakr3SSIkAQDwg2ZznyQAAIDGhJAEAABggpAEAABggpAEAABggpAEAABggpAEAABggpAEAABggpAEAABggpAEAABggpAEAABggpAEAABggpAEAABggpAEAABggpAEAABggpAEAABggpAEAABggpAEAABggpAEAABggpAEAABggpAEAABggpAEAABggpAEAABggpAEAABggpAEAABggpAEAABggpAEAABggpAEAABggpAEAABggpAEAABggpAEAABggpAEAABggpAEAABggpAEAABggpAEAABggpAEAABggpAEAABggpAEAABggpAEAABggpAEAABggpAEAABgwvKQ9M9//lP33nuvOnXqpLZt22rAgAH68MMPjXGv16t58+apa9euatu2rWJjY3X06FGfOU6fPq3JkyfLbrcrLCxMSUlJOnv2rE/NgQMHNGLECLVp00ZRUVFauHBhgxwfAABomiwNSd9++62GDx+uwMBAbdmyRZ9++qkWL16sDh06GDULFy7U888/r1WrVmnfvn0KCQlRXFycysvLjZrJkyfr8OHDysrK0ubNm7V792499NBDxrjH49GYMWPUo0cP5ebmatGiRXryySf15z//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paen66mnnvL7mAAAQNN3SStJP/5kbsuWLTp37txlNXDNNdcoLy9P+/bt04wZM5SYmKhPP/30sua8XHPnzlVZWZmxnThxwtJ+AABAw/PrZpK1/LicqY6goCD16tVLkjR48GB98MEHWrZsmSZOnKjKykqVlpb6rCYVFxfL6XRKkpxOp/bv3+8zX+233y6s+fE34oqLi2W3201XkSQpODiYn1cBAKCFu6SVJJvNJpvNVmdffaqpqVFFRYUGDx6swMBAZWdnG2P5+fkqKCiQy+WSJLlcLh08eFAlJSVGTVZWlux2u2JiYoyaC+eoramdAwAAwMwlrSR5vV7df//9xipLeXm5pk+fXufbbZs2bbqo+ebOnatx48ape/fuOnPmjNatW6edO3dq27ZtcjgcSkpKUlpamjp27Ci73a6HH35YLpdLw4YNkySNGTNGMTExuu+++7Rw4UK53W498cQTSk5ONnqcPn26li9frtmzZ+uBBx7Q9u3btWHDBmVm8o0yAADw711SSEpMTPR5fO+9917Wi5eUlGjKlCkqKiqSw+HQwIEDtW3bNv3yl7+UJC1dulStWrVSQkKCKioqFBcXpxUrVhjPDwgI0ObNmzVjxgy5XC6FhIQoMTFRCxYsMGqio6OVmZmp1NRULVu2TN26ddPq1asVFxd3Wb0DAIDmza/7JLU03CepeeI+SQDQvDXofZIAAABaCkISAACACUISAACACUISAACACUISAACACUISAACACUISAACACUISAACACUISAACACUISAACACUISAACACUISAACACUISAACACUISAACACUISAACACUISAACACUISAACACUISAACACUISAACACUISAACACUISAACACUISAACACUISAACACUISAACACUISAACACUISAACACUISAACACUISAACACUISAACACUISAACACUISAACACUISAACACUISAACACUISAACACUISAACACUISAACACUISAACACUISAACACUISAACAidZWNwCgZen5eKbVLQBohL56Nt7qFuqwdCUpPT1dN954o0JDQxUeHq7x48crPz/fp6a8vFzJycnq1KmT2rdvr4SEBBUXF/vUFBQUKD4+Xu3atVN4eLgee+wxnT9/3qdm586dGjRokIKDg9WrVy9lZGRc6cMDAABNmKUhadeuXUpOTtbevXuVlZWlqqoq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w4e1fv16LVu2TGlpaRYdNQAAaApaW/niH374oUaNGmU8rg0uiYmJysjI0OzZs3Xu3Dk99NBDKi0t1c0336ytW7eqTZs2xnNeffVVzZw5U6NHj1arVq2UkJCg559/3hh3OBx65513lJycrMGDB6tz586aN2+ez72UAAAAfqzR3CepMeM+SQAAXFncJwkAAKCJICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYICQBAACYaFEh6YUXXlDPnj3Vpk0bDR06VPv377e6JQAA0Ei1mJC0fv16paWlaf78+froo4903XXXKS4uTiUlJVa3BgAAGqEWE5KWLFmiadOmaerUqYqJidGqVavUrl07/eUvf7G6NQAA0Ai1trqBhlBZWanc3FzNnTvX2NeqVSvFxsYqJyenTn1FRYUqKiqMx2VlZZIkj8dzRfqrqfjuiswLAEBTcSX+xtbO6fV6/Xp+iwhJ//rXv1RdXa2IiAif/RERETpy5Eid+vT0dD311FN19kdFRV2xHgEAaMkcz125uc+cOSOHw3HJz2sRIelSzZ07V2lpacbjmpoanT59Wp06dZLNZqvX1/J4PIqKitKJEydkt9vrdW78e5x3a3DercF5twbn3RoXnvfQ0FCdOXNGkZGRfs3VIkJS586dFRAQoOLiYp/9xcXFcjqddeqDg4MVHBzssy8sLOxKtii73c7/iCzAebcG590anHdrcN6tUXve/VlBqtUiLtwOCgrS4MGDlZ2dbeyrqalRdna2XC6XhZ0BAIDGqkWsJElSWlqaEhMTNWTIEN1000167rnndO7cOU2dOtXq1gAAQCPUYkLSxIkTderUKc2bN09ut1vXX3+9tm7dWudi7oYWHBys+fPn1/l4D1cW590anHdrcN6twXm3Rn2ed5vX3+/FAQAANGMt4pokAACAS0VIAgAAMEFIAgAAMEFIAgAAMEFIstALL7ygnj17qk2bNho6dKj2799vdUvN3pNPPimbzeaz9e3b1+q2mp3du3fr9ttvV2RkpGw2m958802fca/Xq3nz5qlr165q27atYmNjdfToUWuabUZ+6rzff//9dd7/Y8eOtabZZiI9PV033nijQkNDFR4ervHjxys/P9+npry8XMnJyerUqZPat2+vhISEOjc3xqW5mPP+i1/8os77ffr06Zf0OoQki6xfv15paWmaP3++PvroI1133XWKi4tTSUmJ1a01e9dee62KioqM7b333rO6pWbn3Llzuu666/TCCy+Yji9cuFDPP/+8Vq1apX379ikkJERxcXEqLy9v4E6bl58675I0duxYn/f/a6+91oAdNj+7du1ScnKy9u7dq6ysLFVVVWnMmDE6d+6cUZOamqq3335bGzdu1K5du1RYWKgJEyZY2HXTdzHnXZKmTZvm835fuHDhpb2QF5a46aabvMnJycbj6upqb2RkpDc9Pd3Crpq/+fPne6+77jqr22hRJHnfeOMN43FNTY3X6XR6Fy1aZOwrLS31BgcHe1977TULOmyefnzevV6vNzEx0XvHHXdY0k9LUVJS4pXk3bVrl9fr/eG9HRgY6N24caNR89lnn3kleXNycqxqs9n58Xn3er3en//8595HHnnksuZlJckClZWVys3NVWxsrLGvVatWio2NVU5OjoWdtQxHjx5VZGSkrrrqKk2ePFkFBQVWt9SiHD9+XG632+f973A4NHToUN7/DWDnzp0KDw/XNddcoxkzZuibb76xuqVmpaysTJLUsWNHSVJubq6qqqp83u99+/ZV9+7deb/Xox+f91qvvvqqOnfurP79+2vu3Ln67rvvLmneFnPH7cbkX//6l6qrq+vc7TsiIkJHjhyxqKuWYejQocrIyNA111yjoqIiPfXUUxoxYoQOHTqk0NBQq9trEdxutySZvv9rx3BljB07VhMmTFB0dLSOHTum//mf/9G4ceOUk5OjgIAAq9tr8mpqapSSkqLhw4erf//+kn54vwcFBdX5kXTe7/XH7LxL0j333KMePXooMjJSBw4c0Jw5c5Sfn69NmzZd9NyEJLQo48aNM/49cOBADR06VD169NCGDRuUlJRkYWfAlTdp0iTj3wMGDNDAgQN19dVXa+fOnRo9erSFnTUPycnJOnToENc5NrB/d94feugh498DBgxQ165dNXr0aB07dkxXX331Rc3Nx20W6Ny5swICAup8u6G4uFhOp9OirlqmsLAw9enTR1988YXVrbQYte9x3v/Wu+qqq9S5c2fe//Vg5syZ2rx5s3bs2KFu3boZ+51OpyorK1VaWupTz/u9fvy7825m6NChknRJ73dCkgWCgoI0ePBgZWdnG/tqamqUnZ0tl8tlYWctz9mzZ3Xs2DF17drV6lZajOjoaDmdTp/3v8fj0b59+3j/N7CTJ0/qm2++4f1/Gbxer2bOnKk33nhD27dvV3R0tM/44MGDFRgY6PN+z8/PV0FBAe/3y/BT591MXl6eJF3S+52P2yySlpamxMREDRkyRDfddJOee+45nTt3TlOnTrW6tWZt1qxZuv3229WjRw8VFhZq/vz5CggI0N133211a83K2bNnff7f2vHjx5WXl6eOHTuqe/fuSklJ0TPPPKPevXsrOjpav/vd7xQZGanx48db13Qz8J/Oe8eOHfXUU08pISFBTqdTx44d0+zZs9WrVy/FxcVZ2HXTlpycrHXr1ulvf/ubQkNDjeuMHA6H2rZtK4fDoaSkJKWlpaljx46y2+16+OGH5XK5NGzYMIu7b7p+6rwfO3ZM69at06233qpOnTrpwIEDSk1N1ciRIzVw4MCLf6HL+m4cLssf//hHb/fu3b1BQUHem266ybt3716rW2r2Jk6c6O3atas3KCjI+7Of/cw7ceJE7xdffGF1W83Ojh07vJLqbImJiV6v94fbAPzud7/zRkREeIODg72jR4/25ufnW9t0M/Cfzvt3333nHTNmjLdLly7ewMBAb48ePbzTpk3zut1uq9tu0szOtyTvmjVrjJrvv//e++tf/9rboUMHb7t27bx33nmnt6ioyLqmm4GfOu8FBQXekSNHejt27OgNDg729urVy/vYY495y8rKLul1bP//xQAAAHABrkkCAAAwQUgCAAAwQUgCAAAwQUgCAAAwQUgCAAAwQUgCAAAwQUgCAAAwQUgCAAAwQUgCAAAwQUgC0GTdf//9pr/3tnPnTtlstjq/vA4Al4KQBAB+qKqqsroFAFcYIQlAs/fXv/5V1157rYKDg9WzZ08tXrzYZ9xms+nNN9/02RcWFqaMjAxJ0ldffSWbzab169fr5z//udq0aaNXX31VX3/9tW6//XZ16NBBISEhuvbaa/X3v/+9gY4KwJXW2uoGAOBKys3N1X/913/pySef1MSJE7Vnzx79+te/VqdOnXT//fdf0lyPP/64Fi9erBtuuEFt2rTRtGnTVFlZqd27dyskJESffvqp2rdvf2UOBECDIyQBaNI2b95cJ5hUV1cb/16yZIlGjx6t3/3ud5KkPn366NNPP9WiRYsuOSSlpKRowoQJxuOCggIlJCRowIABkqSrrrrKz6MA0BjxcRuAJm3UqFHKy8vz2VavXm2Mf/bZZxo+fLjPc4YPH66jR4/6hKmLMWTIEJ/Hv/nNb/TMM89o+PDhmj9/vg4cOOD/gQBodAhJAJq0kJAQ9erVy2f72c9+dklz2Gw2eb1en31mF2aHhIT4PH7wwQf15Zdf6r777tPBgwc1ZMgQ/fGPf7z0gwDQKBGSADRr/fr10/vvv++z7/3331efPn0UEBAgSerSpYuKioqM8aNHj+q77767qPmjoqI0ffp0bdq0SY8++qhefPHF+msegKW4JglAs/boo4/qxhtv1NNPP62JEycqJydHy5cv14oVK4yaW265RcuXL5fL5VJ1dbXmzJmjwMDAn5w7JSVF48aNU58+ffTtt99qx44d6tev35U8HAANiJUkAM3aoEGDtGHDBr3++uvq37+/5s2bpwULFvhctL148WJFRUVpxIgRuueeezRr1iy1a9fuJ+eurq5WcnKy+vXrp7Fjx6pPnz4+4QtA02bz/viDeAAAALCSBAAAYIaQBAAAYIKQBAAAYIKQBAAAYIKQBAAAYIKQBAAAYIKQBAAAYIKQBAAAYIKQBAAAYIKQBAAAYIKQBAAAYOL/AYoBAcRMiFkFAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# YOUR SOLUTION HERE" ] }, { "cell_type": "markdown", "metadata": { "id": "jdeSwaifTG6W" }, "source": [ "As you can see, the **default histogram does not normalize with binwidth and simply shows the counts**! This can be very misleading if you are working with variable bin width (e.g. logarithmic bins). So please be mindful about histograms when you work with variable bins.\n", "\n", "**Q: You can fix this by using the `density` option.**" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 467 }, "execution": { "iopub.execute_input": "2020-06-14T19:55:58.905Z", "iopub.status.busy": "2020-06-14T19:55:58.882Z", "iopub.status.idle": "2020-06-14T19:55:58.991Z", "shell.execute_reply": "2020-06-14T19:55:59.009Z" }, "executionInfo": { "elapsed": 610, "status": "ok", "timestamp": 1687818252370, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "4ucfqdvvTG6W", "jupyter": { "outputs_hidden": false }, "outputId": "625b307a-c444-4fb5-f305-c04e22ae41b3" }, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Density')" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# YOUR SOLUTION HERE" ] }, { "cell_type": "markdown", "metadata": { "id": "4roBIweOTG6W" }, "source": [ "## Let's use an actual dataset" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "execution": { "iopub.execute_input": "2020-06-14T19:56:24.048Z", "iopub.status.busy": "2020-06-14T19:56:24.027Z", "iopub.status.idle": "2020-06-14T19:56:24.081Z", "shell.execute_reply": "2020-06-14T19:56:24.100Z" }, "executionInfo": { "elapsed": 151, "status": "ok", "timestamp": 1687818255570, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "xPTrYs55TG6X" }, "outputs": [], "source": [ "import vega_datasets" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 285 }, "execution": { "iopub.execute_input": "2020-06-14T19:56:25.250Z", "iopub.status.busy": "2020-06-14T19:56:25.234Z", "iopub.status.idle": "2020-06-14T19:56:25.670Z", "shell.execute_reply": "2020-06-14T19:56:25.727Z" }, "executionInfo": { "elapsed": 1381, "status": "ok", "timestamp": 1687818257413, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "a244eCSOTG6X", "jupyter": { "outputs_hidden": false }, "outputId": "57724aad-7da7-436c-f146-84e94932e933" }, "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", " \n", " \n", " \n", " \n", " \n", " \n", "
TitleUS_GrossWorldwide_GrossUS_DVD_SalesProduction_BudgetRelease_DateMPAA_RatingRunning_Time_minDistributorSourceMajor_GenreCreative_TypeDirectorRotten_Tomatoes_RatingIMDB_RatingIMDB_Votes
0The Land Girls146083.0146083.0NaN8000000.0Jun 12 1998RNaNGramercyNoneNoneNoneNoneNaN6.11071.0
1First Love, Last Rites10876.010876.0NaN300000.0Aug 07 1998RNaNStrandNoneDramaNoneNoneNaN6.9207.0
2I Married a Strange Person203134.0203134.0NaN250000.0Aug 28 1998NoneNaNLionsgateNoneComedyNoneNoneNaN6.8865.0
3Let's Talk About Sex373615.0373615.0NaN300000.0Sep 11 1998NoneNaNFine LineNoneComedyNoneNone13.0NaNNaN
4Slam1009819.01087521.0NaN1000000.0Oct 09 1998RNaNTrimarkOriginal ScreenplayDramaContemporary FictionNone62.03.4165.0
\n", "
" ], "text/plain": [ " Title US_Gross Worldwide_Gross US_DVD_Sales \\\n", "0 The Land Girls 146083.0 146083.0 NaN \n", "1 First Love, Last Rites 10876.0 10876.0 NaN \n", "2 I Married a Strange Person 203134.0 203134.0 NaN \n", "3 Let's Talk About Sex 373615.0 373615.0 NaN \n", "4 Slam 1009819.0 1087521.0 NaN \n", "\n", " Production_Budget Release_Date MPAA_Rating Running_Time_min Distributor \\\n", "0 8000000.0 Jun 12 1998 R NaN Gramercy \n", "1 300000.0 Aug 07 1998 R NaN Strand \n", "2 250000.0 Aug 28 1998 None NaN Lionsgate \n", "3 300000.0 Sep 11 1998 None NaN Fine Line \n", "4 1000000.0 Oct 09 1998 R NaN Trimark \n", "\n", " Source Major_Genre Creative_Type Director \\\n", "0 None None None None \n", "1 None Drama None None \n", "2 None Comedy None None \n", "3 None Comedy None None \n", "4 Original Screenplay Drama Contemporary Fiction None \n", "\n", " Rotten_Tomatoes_Rating IMDB_Rating IMDB_Votes \n", "0 NaN 6.1 1071.0 \n", "1 NaN 6.9 207.0 \n", "2 NaN 6.8 865.0 \n", "3 13.0 NaN NaN \n", "4 62.0 3.4 165.0 " ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "movies = vega_datasets.data.movies()\n", "movies.head()" ] }, { "cell_type": "markdown", "metadata": { "id": "EuyhowKmTG6X" }, "source": [ "Let's plot the histogram of IMDB ratings." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 484 }, "execution": { "iopub.execute_input": "2020-06-14T19:56:30.176Z", "iopub.status.busy": "2020-06-14T19:56:30.152Z", "iopub.status.idle": "2020-06-14T19:56:30.285Z", "shell.execute_reply": "2020-06-14T19:56:30.306Z" }, "executionInfo": { "elapsed": 393, "status": "ok", "timestamp": 1687818258217, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "lCzR16y5TG6X", "jupyter": { "outputs_hidden": false }, "outputId": "35899e50-84a1-4384-baf8-0c7a177b225f" }, "outputs": [ { "data": { "text/plain": [ "(array([ 9., 39., 76., 133., 293., 599., 784., 684., 323., 48.]),\n", " array([1.4 , 2.18, 2.96, 3.74, 4.52, 5.3 , 6.08, 6.86, 7.64, 8.42, 9.2 ]),\n", " )" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.hist(movies.IMDB_Rating)" ] }, { "cell_type": "markdown", "metadata": { "id": "az_zAN5wTG6Y" }, "source": [ "Did you get an error or a warning? What's going on?\n", "\n", "The problem is that the column contains `NaN` (Not a Number) values, which represent missing data points. The following command check whether each value is a `NaN` and returns the result." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "execution": { "iopub.execute_input": "2020-06-14T19:56:48.429Z", "iopub.status.busy": "2020-06-14T19:56:48.411Z", "iopub.status.idle": "2020-06-14T19:56:48.468Z", "shell.execute_reply": "2020-06-14T19:56:48.486Z" }, "executionInfo": { "elapsed": 6, "status": "ok", "timestamp": 1687818258701, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "x3jwldMSTG6Y", "jupyter": { "outputs_hidden": false }, "outputId": "bca94b9a-d041-435a-fa39-dcff6d0cef18" }, "outputs": [ { "data": { "text/plain": [ "0 False\n", "1 False\n", "2 False\n", "3 True\n", "4 False\n", " ... \n", "3196 False\n", "3197 True\n", "3198 False\n", "3199 False\n", "3200 False\n", "Name: IMDB_Rating, Length: 3201, dtype: bool" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "movies.IMDB_Rating.isna()" ] }, { "cell_type": "markdown", "metadata": { "id": "OxBEfsovTG6Y" }, "source": [ "As you can see there are a bunch of missing rows. You can count them." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "execution": { "iopub.execute_input": "2020-06-14T19:56:51.688Z", "iopub.status.busy": "2020-06-14T19:56:51.671Z", "iopub.status.idle": "2020-06-14T19:56:51.722Z", "shell.execute_reply": "2020-06-14T19:56:51.739Z" }, "executionInfo": { "elapsed": 148, "status": "ok", "timestamp": 1687818259537, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "3FfJ3a34TG6Y", "jupyter": { "outputs_hidden": false }, "outputId": "1b2524c6-6262-4cc2-b5c6-d16dafeb7c32" }, "outputs": [ { "data": { "text/plain": [ "213" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sum(movies.IMDB_Rating.isna())" ] }, { "cell_type": "markdown", "metadata": { "id": "i1BRz3o5TG6Z" }, "source": [ "or drop them." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "execution": { "iopub.execute_input": "2020-06-14T19:56:52.894Z", "iopub.status.busy": "2020-06-14T19:56:52.876Z", "iopub.status.idle": "2020-06-14T19:56:52.932Z", "shell.execute_reply": "2020-06-14T19:56:52.950Z" }, "executionInfo": { "elapsed": 173, "status": "ok", "timestamp": 1687818261726, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "vwa6CfbsTG6Z", "jupyter": { "outputs_hidden": false }, "outputId": "f32f7a7b-52f0-496f-95be-427c1968999c" }, "outputs": [ { "data": { "text/plain": [ "2988" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "IMDB_ratings_nan_dropped = movies.IMDB_Rating.dropna()\n", "len(IMDB_ratings_nan_dropped)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "execution": { "iopub.execute_input": "2020-06-14T19:56:54.792Z", "iopub.status.busy": "2020-06-14T19:56:54.775Z", "iopub.status.idle": "2020-06-14T19:56:54.826Z", "shell.execute_reply": "2020-06-14T19:56:54.843Z" }, "executionInfo": { "elapsed": 156, "status": "ok", "timestamp": 1687818262363, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "vVZ3sm-ITG6Z", "jupyter": { "outputs_hidden": false }, "outputId": "2ad2aa9f-5d76-4e3e-ae66-cab435e19eb0" }, "outputs": [ { "data": { "text/plain": [ "3201" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "213 + 2988" ] }, { "cell_type": "markdown", "metadata": { "id": "v_MDtrt_TG6Z" }, "source": [ "The `dropna` can be applied to the dataframe too.\n", "\n", "**Q: drop rows from `movies` dataframe where either `IMDB_Rating` or `IMDB_Votes` is `NaN`.**" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "execution": { "iopub.execute_input": "2020-06-14T19:56:55.835Z", "iopub.status.busy": "2020-06-14T19:56:55.817Z", "iopub.status.idle": "2020-06-14T19:56:55.861Z", "shell.execute_reply": "2020-06-14T19:56:55.878Z" }, "executionInfo": { "elapsed": 150, "status": "ok", "timestamp": 1687818264693, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "eUxZKFWkTG6Z" }, "outputs": [], "source": [ "# YOUR SOLUTION HERE" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "execution": { "iopub.execute_input": "2020-06-14T19:56:56.768Z", "iopub.status.busy": "2020-06-14T19:56:56.751Z", "iopub.status.idle": "2020-06-14T19:56:56.803Z", "shell.execute_reply": "2020-06-14T19:56:56.819Z" }, "executionInfo": { "elapsed": 145, "status": "ok", "timestamp": 1687818265230, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "c6jSjbxhTG6a", "jupyter": { "outputs_hidden": false }, "outputId": "69d58a1c-61d4-4721-c1bd-3e9b568d9acf" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0 0\n" ] } ], "source": [ "# Both should be zero.\n", "print(sum(movies.IMDB_Rating.isna()), sum(movies.IMDB_Votes.isna()))" ] }, { "cell_type": "markdown", "metadata": { "id": "4ZeoyhBJTG6a" }, "source": [ "How does `matplotlib` decides the bins? Actually `matplotlib`'s `hist` function uses `numpy`'s `histogram` function under the hood." ] }, { "cell_type": "markdown", "metadata": { "id": "fOlXNjFyTG6a" }, "source": [ "**Q: Plot the histogram of movie ratings (`IMDB_Rating`) using the `plt.hist()` function.**" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 484 }, "execution": { "iopub.execute_input": "2020-06-14T19:57:00.883Z", "iopub.status.busy": "2020-06-14T19:57:00.865Z", "iopub.status.idle": "2020-06-14T19:57:00.973Z", "shell.execute_reply": "2020-06-14T19:57:01.058Z" }, "executionInfo": { "elapsed": 1678, "status": "ok", "timestamp": 1687818275930, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "rn1cO2ByTG6a", "jupyter": { "outputs_hidden": false }, "outputId": "2cd84d13-3fec-4ea2-9948-c299038ba14f" }, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Frequency')" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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iQoyu4BOnTppzZo1nv2goP+WNGnSJL333ntavny5HA6Hxo8fr2HDhunDDz+UJNXX1ys9PV2xsbHauHGjysrKNHLkSAUHB2v27NkXfCwAAKDpMT3sBAUFKTY29qT2yspKLV68WEuXLtX1118vScrPz1fHjh310UcfqVevXnr//ff15Zdfas2aNYqJidE111yjWbNmadq0aXrkkUcUEhJyyntWV1erurras+92uxtncAAAwHSmr9nZvXu34uPjddlllykzM1MlJSWSpK1bt6q2tlapqamevsnJyUpMTFRxcbEkqbi4WF26dFFMTIynT1pamtxut3bs2HHae+bm5srhcHi2hISERhodAAAwm6lhp2fPniooKNCqVau0cOFCfffdd/rFL36ho0ePyuVyKSQkRJGRkV7nxMTEyOVySZJcLpdX0Dlx/MSx08nJyVFlZaVn27dvn38HBgAAmgxTH2MNGjTI889du3ZVz5491a5dO73xxhsKCwtrtPuGhoYqNDS00a4PAACaDtMfY/2vyMhIXXnlldqzZ49iY2NVU1OjI0eOePUpLy/3rPGJjY096e2sE/unWgcEAAAuPU0q7FRVVembb75RXFycunfvruDgYBUVFXmO79y5UyUlJXI6nZIkp9Op7du3q6KiwtOnsLBQdrtdKSkpF7x+AADQ9Jj6GGvKlCm68cYb1a5dO5WWlurhhx9WYGCgbr/9djkcDo0ZM0aTJ09WVFSU7Ha77rnnHjmdTvXq1UuSNGDAAKWkpOiOO+7Q3Llz5XK59OCDDyo7O5vHVAAAQJLJYWf//v26/fbb9a9//Utt2rRR37599dFHH6lNmzaSpKeeekoBAQHKyMhQdXW10tLStGDBAs/5gYGBWrFihe6++245nU6Fh4crKytLM2fONGtIAACgibEZhmGYXYTZ3G63HA6HKisrZbfbzS4HgJ+1n/6e2SWgido7J93sEnAezvbvt09rdr799lufCwMAALiQfAo7V1xxhfr166dXXnlFx48f93dNAAAAfuNT2Pnkk0/UtWtXTZ48WbGxsfrd736njz/+2N+1AQAAnDefws4111yjZ555RqWlpXrppZdUVlamvn37qnPnzpo3b54OHjzo7zoBAAB8cl7f2QkKCtKwYcO0fPlyPf7449qzZ4+mTJmihIQEjRw5UmVlZf6qEwAAwCfnFXa2bNmi3//+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Mf4W4N456aben5kdAABgaYQdAABgaYQdAABgaazZwUkuxufBAACcDjM7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0izzq+fPP/+8nnjiCblcLl199dV69tln9fOf/9zssvgFcQAATGaJmZ3XX39dkydP1sMPP6xPPvlEV199tdLS0lRRUWF2aQAAwGSWCDvz5s3T2LFjNWrUKKWkpCgvL0/NmzfXSy+9ZHZpAADAZBf9Y6yamhpt3bpVOTk5nraAgAClpqaquLj4lOdUV1erurras19ZWSlJcrvdfq+vofoHv18TAICLSWP8ff3f6xqG8ZP9Lvqw889//lP19fWKiYnxao+JidHXX399ynNyc3P1xz/+8aT2hISERqkRAIBLmePpxr3+0aNH5XA4Tnv8og87vsjJydHkyZM9+w0NDTp06JBatWolm81mYmWNx+12KyEhQfv27ZPdbje7nEbDOK3jUhijxDithnFeWIZh6OjRo4qPj//Jfhd92GndurUCAwNVXl7u1V5eXq7Y2NhTnhMaGqrQ0FCvtsjIyMYqsUmx2+2W/j/gCYzTOi6FMUqM02oY54XzUzM6J1z0C5RDQkLUvXt3FRUVedoaGhpUVFQkp9NpYmUAAKApuOhndiRp8uTJysrKUo8ePfTzn/9cTz/9tI4dO6ZRo0aZXRoAADCZJcLObbfdpoMHD2rGjBlyuVy65pprtGrVqpMWLV/KQkND9fDDD5/0+M5qGKd1XApjlBin1TDOpslmnOl9LQAAgIvYRb9mBwAA4KcQdgAAgKURdgAAgKURdgAAgKURdiwuNzdX1113nSIiIhQdHa2hQ4dq586dZpflVwsXLlTXrl09H7dyOp1auXKl2WU1ujlz5shms2nixIlml+JXjzzyiGw2m9eWnJxsdlmN4sCBAxoxYoRatWqlsLAwdenSRVu2bDG7LL9q3779Sf972mw2ZWdnm12a39TX1+uhhx5SUlKSwsLCdPnll2vWrFln/L2mi9HRo0c1ceJEtWvXTmFhYerdu7c2b95sdllnZIlXz3F669evV3Z2tq677jrV1dXpgQce0IABA/Tll18qPDzc7PL8om3btpozZ446dOggwzC0ZMkS3XTTTfr000/VqVMns8trFJs3b9YLL7ygrl27ml1Ko+jUqZPWrFnj2Q8Kst5/qg4fPqw+ffqoX79+Wrlypdq0aaPdu3erZcuWZpfmV5s3b1Z9fb1n/4svvtANN9ygW2+91cSq/Ovxxx/XwoULtWTJEnXq1ElbtmzRqFGj5HA4dO+995pdnl/99re/1RdffKG//OUvio+P1yuvvKLU1FR9+eWX+tnPfmZ2eadn4JJSUVFhSDLWr19vdimNqmXLlsaf//xns8toFEePHjU6dOhgFBYWGr/61a+MCRMmmF2SXz388MPG1VdfbXYZjW7atGlG3759zS7jgpswYYJx+eWXGw0NDWaX4jfp6enG6NGjvdqGDRtmZGZmmlRR4/jhhx+MwMBAY8WKFV7t3bp1M/7whz+YVNXZ4THWJaayslKSFBUVZXIljaO+vl7Lli3TsWPHLPtzIdnZ2UpPT1dqaqrZpTSa3bt3Kz4+XpdddpkyMzNVUlJidkl+97e//U09evTQrbfequjoaF177bV68cUXzS6rUdXU1OiVV17R6NGjLfWjy71791ZRUZF27dolSdq2bZs++OADDRo0yOTK/Kuurk719fVq1qyZV3tYWJg++OADk6o6S2anLVw49fX1Rnp6utGnTx+zS/G7zz//3AgPDzcCAwMNh8NhvPfee2aX1Chee+01o3Pnzsa///1vwzAMS87s/L//9/+MN954w9i2bZuxatUqw+l0GomJiYbb7Ta7NL8KDQ01QkNDjZycHOOTTz4xXnjhBaNZs2ZGQUGB2aU1mtdff90IDAw0Dhw4YHYpflVfX29MmzbNsNlsRlBQkGGz2YzZs2ebXVajcDqdxq9+9SvjwIEDRl1dnfGXv/zFCAgIMK688kqzS/tJhJ1LyF133WW0a9fO2Ldvn9ml+F11dbWxe/duY8uWLcb06dON1q1bGzt27DC7LL8qKSkxoqOjjW3btnnarBh2fuzw4cOG3W633GPJ4OBgw+l0erXdc889Rq9evUyqqPENGDDAGDJkiNll+N1rr71mtG3b1njttdeMzz//3Hj55ZeNqKgoSwbXPXv2GL/85S8NSUZgYKBx3XXXGZmZmUZycrLZpf0kws4lIjs722jbtq3x7bffml3KBdG/f39j3LhxZpfhV2+99ZbnPzAnNkmGzWYzAgMDjbq6OrNLbDQ9evQwpk+fbnYZfpWYmGiMGTPGq23BggVGfHy8SRU1rr179xoBAQHG22+/bXYpfte2bVvjueee82qbNWuWcdVVV5lUUeOrqqoySktLDcMwjF//+tfG4MGDTa7op7Fmx+IMw9D48eP11ltvae3atUpKSjK7pAuioaFB1dXVZpfhV/3799f27dv12WefebYePXooMzNTn332mQIDA80usVFUVVXpm2++UVxcnNml+FWfPn1O+gzErl271K5dO5Mqalz5+fmKjo5Wenq62aX43Q8//KCAAO8/p4GBgWpoaDCposYXHh6uuLg4HT58WKtXr9ZNN91kdkk/yXrvc8JLdna2li5dqnfeeUcRERFyuVySJIfDobCwMJOr84+cnBwNGjRIiYmJOnr0qJYuXaq///3vWr16tdml+VVERIQ6d+7s1RYeHq5WrVqd1H4xmzJlim688Ua1a9dOpaWlevjhhxUYGKjbb7/d7NL8atKkSerdu7dmz56tX//61/r444+1aNEiLVq0yOzS/K6hoUH5+fnKysqy5GcEbrzxRj322GNKTExUp06d9Omnn2revHkaPXq02aX53erVq2UYhq666irt2bNHU6dOVXJyskaNGmV2aT/N7KklNC5Jp9zy8/PNLs1vRo8ebbRr184ICQkx2rRpY/Tv3994//33zS7rgrDimp3bbrvNiIuLM0JCQoyf/exnxm233Wbs2bPH7LIaxbvvvmt07tzZCA0NNZKTk41FixaZXVKjWL16tSHJ2Llzp9mlNAq3221MmDDBSExMNJo1a2Zcdtllxh/+8Aejurra7NL87vXXXzcuu+wyIyQkxIiNjTWys7ONI0eOmF3WGdkMw4KfeAQAAPj/sWYHAABYGmEHAABYGmEHAABYGmEHAABYGmEHAABYGmEHAABYGmEHAABYGmEHAABYGmEHAHz0yCOP6JprrjG7DABnQNgB4LM777xTQ4cO9dq32Wy66667TuqbnZ0tm82mO++886T+NptNwcHBiomJ0Q033KCXXnrppB9RbN++vadvYGCg4uPjNWbMGB0+fPgna/zf85o3b64uXbroz3/+8zmP1Waz6e233/ZqmzJlioqKis75WgAuLMIOAL9KSEjQsmXL9O9//9vTdvz4cS1dulSJiYkn9R84cKDKysq0d+9erVy5Uv369dOECRM0ZMgQ1dXVefWdOXOmysrKVFJSoldffVUbNmzQvffee8aaTpz3xRdfaMSIERo7dqxWrlx53mNt0aKFWrVqdd7XAdC4CDsA/Kpbt25KSEjQm2++6Wl78803lZiYqGuvvfak/qGhoYqNjdXPfvYzdevWTQ888IDeeecdrVy5UgUFBV59IyIiPH379eunrKwsffLJJ2es6cR5l112maZNm6aoqCgVFhZ6jm/evFk33HCDWrduLYfDoV/96lde123fvr0k6eabb5bNZvPs//gx1omZrj/96U+Ki4tTq1atlJ2drdraWk+fsrIypaenKywsTElJSVq6dKnat2+vp59++ozjAOAbwg4Avxs9erTy8/M9+y+99JJGjRp11udff/31uvrqq70C048dOHBA7777rnr27HnW121oaNBf//pXHT58WCEhIZ72o0ePKisrSx988IE++ugjdejQQYMHD9bRo0cl/ScMSVJ+fr7Kyso8+6eybt06ffPNN1q3bp2WLFmigoICr9A2cuRIlZaW6u9//7v++te/atGiRaqoqDjrMQA4d4QdAH43YsQIffDBB/r+++/1/fff68MPP9SIESPO6RrJycnau3evV9u0adPUokULhYWFqW3btrLZbJo3b94Zr3XivNDQUN1yyy1q2bKlfvvb33qOX3/99RoxYoSSk5PVsWNHLVq0SD/88IPWr18vSWrTpo0kKTIyUrGxsZ79U2nZsqWee+45JScna8iQIUpPT/es6/n666+1Zs0avfjii+rZs6e6deumP//5z16P/AD4H2EHgN+1adNG6enpKigoUH5+vtLT09W6detzuoZhGLLZbF5tU6dO1WeffabPP//cEyDS09NVX1//k9c6cd7atWvVs2dPPfXUU7riiis8x8vLyzV27Fh16NBBDodDdrtdVVVVKikpOaeaJalTp04KDAz07MfFxXlmbnbu3KmgoCB169bNc/yKK65Qy5Ytz/k+AM5ekNkFALCm0aNHa/z48ZKk559//pzP/+qrr5SUlOTV1rp1a09I6dChg55++mk5nU6tW7dOqampp73WifOuuOIKLV++XF26dFGPHj2UkpIiScrKytK//vUvPfPMM2rXrp1CQ0PldDpVU1NzznUHBwd77dtstpPeLANwYTGzA6BRDBw4UDU1NaqtrVVaWto5nbt27Vpt375dGRkZP9nvxAzKuTwGSkhI0G233aacnBxP24cffqh7771XgwcPVqdOnRQaGqp//vOfXucFBwefcQbpTK666irV1dXp008/9bTt2bPnjK/PAzg/zOwAaBSBgYH66quvPP98OtXV1XK5XKqvr1d5eblWrVql3NxcDRkyRCNHjvTqe/ToUblcLhmGoX379un+++9XmzZt1Lt373OqbcKECercubO2bNmiHj16qEOHDvrLX/6iHj16yO12a+rUqQoLC/M6p3379ioqKlKfPn0UGhrq06On5ORkpaamaty4cVq4cKGCg4N13333KSws7KRHdgD8h5kdAI3GbrfLbrf/ZJ9Vq1YpLi5O7du318CBA7Vu3TrNnz9f77zzzkkhacaMGYqLi1N8fLyGDBmi8PBwvf/+++f8rZuUlBQNGDBAM2bMkCQtXrxYhw8fVrdu3XTHHXfo3nvvVXR0tNc5Tz75pAoLC5WQkHDKV+jP1ssvv6yYmBj98pe/1M0336yxY8cqIiJCzZo18/maAH6azTAMw+wiAOBStX//fiUkJGjNmjXq37+/2eUAlkTYAYALaO3ataqqqlKXLl1UVlam+++/XwcOHNCuXbtOWtwMwD9YswMAF1Btba0eeOABffvtt4qIiFDv3r316quvEnSARsTMDgAAsDQWKAMAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEv7/wCYoDQjdzK9wwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# YOUR SOLUTION HERE" ] }, { "cell_type": "markdown", "metadata": { "id": "3BelR31kTG6a" }, "source": [ "Have you noticed that this function returns three objects? Take a look at the documentation [here](http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.hist) to figure out what they are.\n", "\n", "To get the returned three objects:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 466 }, "execution": { "iopub.execute_input": "2020-06-14T19:57:04.322Z", "iopub.status.busy": "2020-06-14T19:57:04.229Z", "iopub.status.idle": "2020-06-14T19:57:05.023Z", "shell.execute_reply": "2020-06-14T19:57:05.046Z" }, "executionInfo": { "elapsed": 1035, "status": "ok", "timestamp": 1687818276961, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "qrmt7ma_TG6a", "jupyter": { "outputs_hidden": false }, "outputId": "139797bc-c5b3-4b84-9f47-523354786db2" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 9. 39. 76. 133. 293. 599. 784. 684. 323. 48.]\n", "[1.4 2.18 2.96 3.74 4.52 5.3 6.08 6.86 7.64 8.42 9.2 ]\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "n_raw, bins_raw, patches = plt.hist(movies.IMDB_Rating)\n", "print(n_raw)\n", "print(bins_raw)" ] }, { "cell_type": "markdown", "metadata": { "id": "1SUgGDBwTG6b" }, "source": [ "Here, `n_raw` contains the values of histograms, i.e., the number of movies in each of the 10 bins. Thus, the sum of the elements in `n_raw` should be equal to the total number of movies.\n", "\n", "**Q: Test whether the sum of values in `n_raw` is equal to the number of movies in the `movies` dataset**" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "execution": { "iopub.execute_input": "2020-06-14T19:57:07.793Z", "iopub.status.busy": "2020-06-14T19:57:07.778Z", "iopub.status.idle": "2020-06-14T19:57:07.833Z", "shell.execute_reply": "2020-06-14T19:57:07.849Z" }, "executionInfo": { "elapsed": 10, "status": "ok", "timestamp": 1687818276962, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "iCGZ-jN2TG6b", "jupyter": { "outputs_hidden": false }, "outputId": "3fabb0e6-1b39-4bbc-ebd3-ddf2009c3851" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2988.0\n", "2988\n" ] }, { "data": { "text/plain": [ "True" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# YOUR SOLUTION HERE" ] }, { "cell_type": "markdown", "metadata": { "id": "c9gIcp06TG6b" }, "source": [ "The second returned object (`bins_raw`) is a list containing the edges of the 10 bins: the first bin is \\[1.4, 2.18\\], the second \\[2.18, 2.96\\], and so on. What's the width of the bins?" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "execution": { "iopub.execute_input": "2020-06-14T19:57:10.040Z", "iopub.status.busy": "2020-06-14T19:57:10.025Z", "iopub.status.idle": "2020-06-14T19:57:10.081Z", "shell.execute_reply": "2020-06-14T19:57:10.097Z" }, "executionInfo": { "elapsed": 151, "status": "ok", "timestamp": 1687818311779, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "im5eQCroTG6b", "jupyter": { "outputs_hidden": false }, "outputId": "ca756ea4-bc06-404e-c650-0c2675d17369" }, "outputs": [ { "data": { "text/plain": [ "array([0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78])" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.diff(bins_raw)" ] }, { "cell_type": "markdown", "metadata": { "id": "C3TsmP_RTG6b" }, "source": [ "The width is same as the maximum value minus minimum value, divided by 10." ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "execution": { "iopub.execute_input": "2020-06-14T19:57:11.016Z", "iopub.status.busy": "2020-06-14T19:57:10.997Z", "iopub.status.idle": "2020-06-14T19:57:11.052Z", "shell.execute_reply": "2020-06-14T19:57:11.068Z" }, "executionInfo": { "elapsed": 223, "status": "ok", "timestamp": 1687818312845, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "GxrmxezwTG6b", "jupyter": { "outputs_hidden": false }, "outputId": "e4ef2cd2-6171-4b28-d669-61ca6ed9d8b4" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1.4 9.2\n", "0.7799999999999999\n" ] } ], "source": [ "min_rating = min(movies.IMDB_Rating)\n", "max_rating = max(movies.IMDB_Rating)\n", "print(min_rating, max_rating)\n", "print( (max_rating-min_rating) / 10 )" ] }, { "cell_type": "markdown", "metadata": { "id": "JGxvd4CGTG6c" }, "source": [ "Now, let's plot a normalized (density) histogram." ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 486 }, "execution": { "iopub.execute_input": "2020-06-14T19:57:12.070Z", "iopub.status.busy": "2020-06-14T19:57:12.053Z", "iopub.status.idle": "2020-06-14T19:57:12.176Z", "shell.execute_reply": "2020-06-14T19:57:12.239Z" }, "executionInfo": { "elapsed": 432, "status": "ok", "timestamp": 1687818319541, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "OIrthY8ATG6c", "jupyter": { "outputs_hidden": false }, "outputId": "92cb8ce3-30af-45ce-ac89-3a276607c7b2" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0.0038616 0.0167336 0.03260907 0.05706587 0.12571654 0.25701095\n", " 0.33638829 0.29348162 0.13858854 0.0205952 ]\n", "[1.4 2.18 2.96 3.74 4.52 5.3 6.08 6.86 7.64 8.42 9.2 ]\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "n, bins, patches = plt.hist(movies.IMDB_Rating, density=True)\n", "print(n)\n", "print(bins)" ] }, { "cell_type": "markdown", "metadata": { "id": "-qKKEOXMTG6c" }, "source": [ "The ten bins do not change. But now `n` represents the density of the data inside each bin. In other words, the sum of the area of each bar will equal to 1.\n", "\n", "**Q: Can you verify this?**\n", "\n", "Hint: the area of each bar is calculated as height * width. You may get something like 0.99999999999999978 instead of 1." ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "execution": { "iopub.execute_input": "2020-06-14T19:57:13.305Z", "iopub.status.busy": "2020-06-14T19:57:13.290Z", "iopub.status.idle": "2020-06-14T19:57:13.338Z", "shell.execute_reply": "2020-06-14T19:57:13.353Z" }, "executionInfo": { "elapsed": 154, "status": "ok", "timestamp": 1687818325739, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "HtDdUJUdTG6c", "jupyter": { "outputs_hidden": false }, "outputId": "b7d1e959-23db-4106-f296-d3190f318e81" }, "outputs": [ { "data": { "text/plain": [ "1.0" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# YOUR SOLUTION HERE" ] }, { "cell_type": "markdown", "metadata": { "id": "ugwtR9guTG6c" }, "source": [ "Anyway, these data generated from the `hist` function is calculated from `numpy`'s `histogram` function. https://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram.html\n", "\n", "Note that the result of `np.histogram()` is same as that of `plt.hist()`." ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "execution": { "iopub.execute_input": "2020-06-14T19:57:14.303Z", "iopub.status.busy": "2020-06-14T19:57:14.287Z", "iopub.status.idle": "2020-06-14T19:57:14.334Z", "shell.execute_reply": "2020-06-14T19:57:14.349Z" }, "executionInfo": { "elapsed": 201, "status": "ok", "timestamp": 1687818328266, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "xn-WpuKiTG6c", "jupyter": { "outputs_hidden": false }, "outputId": "05d56921-f033-4a88-dd19-eda81353c5ca" }, "outputs": [ { "data": { "text/plain": [ "(array([ 9, 39, 76, 133, 293, 599, 784, 684, 323, 48]),\n", " array([1.4 , 2.18, 2.96, 3.74, 4.52, 5.3 , 6.08, 6.86, 7.64, 8.42, 9.2 ]))" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.histogram(movies.IMDB_Rating)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 484 }, "execution": { "iopub.execute_input": "2020-06-14T19:57:14.903Z", "iopub.status.busy": "2020-06-14T19:57:14.885Z", "iopub.status.idle": "2020-06-14T19:57:14.997Z", "shell.execute_reply": "2020-06-14T19:57:15.015Z" }, "executionInfo": { "elapsed": 319, "status": "ok", "timestamp": 1687818328581, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "a1DPjJI7TG6c", "jupyter": { "outputs_hidden": false }, "outputId": "f7213626-edd6-4584-f7ef-96070d480917" }, "outputs": [ { "data": { "text/plain": [ "(array([ 9., 39., 76., 133., 293., 599., 784., 684., 323., 48.]),\n", " array([1.4 , 2.18, 2.96, 3.74, 4.52, 5.3 , 6.08, 6.86, 7.64, 8.42, 9.2 ]),\n", " )" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.hist(movies.IMDB_Rating)" ] }, { "cell_type": "markdown", "metadata": { "id": "o4ArxCNETG6d" }, "source": [ "If you look at the documentation, you can see that `numpy` uses simply 10 as the default number of bins. But you can set it manually or set it to be `auto`, which is the \"Maximum of the `sturges` and `fd` estimators.\". Let's try this `auto` option." ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 430 }, "execution": { "iopub.execute_input": "2020-06-14T19:57:15.850Z", "iopub.status.busy": "2020-06-14T19:57:15.833Z", "iopub.status.idle": "2020-06-14T19:57:15.998Z", "shell.execute_reply": "2020-06-14T19:57:16.015Z" }, "executionInfo": { "elapsed": 316, "status": "ok", "timestamp": 1687818329586, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "g04dPJySTG6d", "jupyter": { "outputs_hidden": false }, "outputId": "868eaedc-074b-45df-ea31-5d3a0648d9e2" }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "_ = plt.hist(movies.IMDB_Rating, bins='auto')" ] }, { "cell_type": "markdown", "metadata": { "id": "TM_jST11TG6d" }, "source": [ "## Consequences of the binning parameter\n", "\n", "Let's explore the effect of bin size using small multiples. In `matplotlib`, you can use [subplot](https://www.google.com/search?client=safari&rls=en&q=matplotlib+subplot&ie=UTF-8&oe=UTF-8) to put multiple plots into a single figure.\n", "\n", "For instance, you can do something like:" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 463 }, "execution": { "iopub.execute_input": "2020-06-14T19:57:17.609Z", "iopub.status.busy": "2020-06-14T19:57:17.591Z", "iopub.status.idle": "2020-06-14T19:57:17.858Z", "shell.execute_reply": "2020-06-14T19:57:17.878Z" }, "executionInfo": { "elapsed": 1004, "status": "ok", "timestamp": 1687818421168, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "4lliCeD6TG6d", "jupyter": { "outputs_hidden": false }, "outputId": "88567283-2f7e-470d-bccd-e19734730225" }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(10,5))\n", "plt.subplot(1,2,1)\n", "movies.IMDB_Rating.hist(bins=3)\n", "plt.subplot(1,2,2)\n", "movies.IMDB_Rating.hist(bins=20)" ] }, { "cell_type": "markdown", "metadata": { "id": "XXIbKfeWTG6d" }, "source": [ "What does the argument in `plt.subplot(1,2,1)` mean? If you're not sure, check out: http://stackoverflow.com/questions/3584805/in-matplotlib-what-does-the-argument-mean-in-fig-add-subplot111\n", "\n", "**Q: create 8 subplots (2 rows and 4 columns) with the following `binsizes`.**" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 872 }, "execution": { "iopub.execute_input": "2020-06-14T19:57:19.049Z", "iopub.status.busy": "2020-06-14T19:57:19.029Z", "iopub.status.idle": "2020-06-14T19:57:20.201Z", "shell.execute_reply": "2020-06-14T19:57:20.255Z" }, "executionInfo": { "elapsed": 2347, "status": "ok", "timestamp": 1687818423649, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "jlYvPcu-TG6d", "jupyter": { "outputs_hidden": false }, "outputId": "cb6e99e3-6332-420f-e3d1-c0bec8422308" }, "outputs": [ { "data": { "image/png": "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7dpVXbt2dcU+bdo0JSUl6dixYzxqBIBf8fV6/V1RUVGaPHmy/vSnP+k///mPLr300mY5LgC0Nn+qzXWp+XnabrfX2nbu3Dm3MWh7+ABI+LWAgABdd911OnnypD788MMfHBsYGFjneqfTKenbQrlr1y698cYbmjhxot5//3398pe/1MiRI1VVVeUab7PZ6vVV128RKysrNW7cOL3//vt65ZVX1KdPnybMHgB8h6/V6++75ZZb9O9//1u7du1qwKwBwPf4er2Oj4+X9O0t7ADgL3y9Nn9fVFSUzGazTp48WWtbzbq4uLgGHxf+gWY2/N758+clSeXl5U0+VkBAgEaMGKFly5bp6NGjWrJkiXbs2KE333zTNaZz5871+nr++efdjl1dXa0777xT27dvV15enq699tomxwsAvsRX6nVdan5IP3PmTJNjBwCj8+V6/cknn0iq/7NeAcBX+HJtruv8ffv21cGDB2tt27dvn3784x/z4Y9tGI8ZgV9zOBzKz89XcHCwevbs2aRjnTp1SlFRUW7rBgwYIMn91pfGPjdqxowZev755/X4449f8BlXAOBvfKVe//e//62zAbJu3TqZTCZdccUVjYgYAHyHL9frzz//XE899ZT69etX54eKAYCv8pXa3BC33HKL7r//fh08eND1SJVjx45px44d+v3vf9+oY8I/0MyGX3n99df1z3/+U9K3H6KYl5enDz/8UPfff7/Cw8ObdOxFixZp165dSk1NVdeuXVVaWqrHHntMl156qYYNG+Ya15jnRq1YsUKPPfaYLBaLwsLC9Oyzz7ptHzt2rNq3b9+k+AHASHy1Xi9ZskS7d+/WqFGj1KVLF506dUp/+9vfdODAAc2YMUM/+clPmhQ7ABiNr9br++67Tx9//LFGjBihuLg4ffrpp3r88cd19uxZrVy5sklxA4C3+WptlqT/9//+nz777DNVVFRIknbt2qUHH3xQ0rcf1FvzuTS//e1v9Ze//EWpqan6/e9/r6CgIC1btkwxMTG69957mzRH+Daa2fArCxYscP09JCREPXr00Jo1a/TrX/+6ycf++c9/rk8//VRPPfWUvvjiC1188cW69tprtXDhQkVERDTp2EVFRZKkgoICFRQU1Np+/PhxmtkA/Iqv1uvU1FR9/PHHeuqpp/Tf//5XISEh6tevn9avX69JkyY1OXYAMBpfrdfJ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UVGRiouL5XA4dMstt+jgwYPauHGjqqqqZLPZZLPZVFlZKUnq2bOnRo0apbvvvlv79+/X7t27lZGRofHjxysuLk6SdPvttys4OFhTp07VkSNH9Pzzz2vlypVud8kAAAAAvqDBjxm5kJCQEOXm5io3N9fjmK5du17w2YTDhw/Xe++915DwAAD/v/Lycn300Ueu5ZrmSFRUlDp37qxbbrlF7777rjZt2uRqjkhSVFSUgoOD3Zoja9eulcPhqLM5snDhQk2dOlVz5szR4cOHtXLlSi1fvtwrcwYAX3Tw4EFdd911ruWaBvOkSZOUlZWlV199VZI0YMAAt/3efPNNDR8+XJK0ceNGZWRkaMSIEQoICFBaWppWrVrlGhsREaH8/Hylp6dr0KBBuvjii7VgwQJNmzatZScHAAAANLNGfQAkAMDYaI4AgG8YPnz4D14wUp+LSaKiopSXl/eDY/r166e33367wfEBAAAARkIzGwD8EM0RAAAAAADgbxr0zGwAAAAAAAAAALyBZjYAAAAAAAAAwPBoZgMAAAAAAAAADI9mNgAAAAAAAADA8GhmAwAAAAAAAAAMj2Y2AAAAAAAAAMDwaGYDAAAAAAA00eeff6477rhDnTp1UmhoqPr27auDBw+6tjudTi1YsECdO3dWaGiokpKS9OGHH7od49SpU5owYYLCw8MVGRmpqVOnqry8vLWnAgCGRTMbAAAAAACgCb766itdddVVCgoK0uuvv66jR4/qkUce0UUXXeQak5OTo1WrVmnt2rXat2+f2rdvr5SUFJ07d841ZsKECTpy5IisVqs2bdqkXbt2adq0ad6YEgAYUjtvBwAAAAAAAODLli5dqvj4eK1fv961LiEhwfV3p9OpFStWaN68ebrpppskSc8884xiYmL08ssva/z48frggw+0detWHThwQImJiZKk1atXa8yYMXr44YcVFxfXupMCAAOimQ0AAAAAANAEr776qlJSUvSLX/xCO3fu1I9+9CP99re/1d133y1JOn78uGw2m5KSklz7REREaMiQISooKND48eNVUFCgyMhIVyNbkpKSkhQQEKB9+/Zp7NixdZ7bbrfLbre7lsvKyiRJDodDDoejJaZbbzXn93YcRkNePPt+bsyBTm+G06Ia+v3399dNfedFMxsAAAAAAKAJPvnkE61Zs0aZmZl64IEHdODAAd1zzz0K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sXbs2FFms9lt3TfffKOzZ8+qvLxcO3fu1Pr162WxWBQaGipJqq6u1vvvv68pU6bUOt7gwYOVn5+vr7/+Wh07dqxXDADgLb5er2fOnKnrrrtOY8aMqbPR8fnnn6u0tFSJiYm1tg0ePFhbtmyp17kBwNt8tV6/8cYbkiSz2azExEQVFhYqODhYY8eO1WOPPaaoqChJ1GsAvsdX63J9NaTv8d5770lSrRo+aNAgBQQE6L333qtXXuD7aGbDZyUlJbktm81mPfXUUxo5cuQF9x04cKDWrVvnWv7yyy+1bt06V1G3Wq2qrKzU66+/rosvvtjjcS655JJ6xbp+/XrdddddbutWrlypuXPnupZHjBih9evXu5ZPnTolu92uzp071zpezboTJ06oe/fu9YoBALzFl+v15s2blZ+fr3/8f+3dfXwU5bn/8e8mbDYEkmCoSUgNEK0KCgjyZMRakJCAlIqkDyBVVArWBhRSFeIB5EmD2Co+IBw9CPZIauXXghUosKBClYAQDyrag0JBbE1CK0IKKctC9vcHZ9dssptskt2d2c3n/Xrty+w998xcc+/kMlx7z8wHH/hdp7y8XJL85mt3Pm/qH/cAEG6Rmq8/++wzSRcKN8OHD1dRUZE++OADFRcX64svvtA777wji8VCvgYQcSI1LweqKXWP8vJyxcbGKjU11atfXFycOnbsqC+//LJJ+0bkopiNiLV06VJdccUVkqTKykq98sor+tnPfqbExESNGTOmwXV//vOfe73/7ne/q7Vr16qqqkpJSUnq0KGDJOn111/XXXfdpZgY33fksdvtAcV69dVX12sbN26c+vXrp3/84x9av369Kisr9e9//9uz3P2zrz+m4+PjvfoAgJlFar4+e/aspk+frp///Oe66qqr/K4TaL6mOALA7CI1X586dUqS1L9/f73yyiuSpPz8fCUkJKioqEjbtm1TTk4O+RpAxInUvByoptQ9/v3vf/t9SG98fDz1kVaEYjYi1oABA7wuLxk3bpz69OmjKVOm6Pvf/36DTyKvfY88SbroooskSV9//bWSkpL0k5/8RP/1X/+ln/3sZ5o5c6aGDh2qMWPG6Ic//KFXgq/7LWlTdOnSRV26dPHEPnnyZOXk5OjAgQNq27at53YjDoej3rpnzpyRJE8fADCzSM3XTz31lP75z39q3rx5DfYjXwOIFpGar905dty4cV7tt912m4qKirRz507l5OSQrwFEnEjNy4FqSl5u27at1zPG6vYlf7cePAASUSMmJkZDhgxReXm551JDf2JjY322u1wuSReS5I4dO7R161bdfvvt+vDDD/WTn/xEw4YN83qYTEVFRUCvQL4h/OEPf6gvvvhCO3bskCSlpKTIZrN5Loeszd2WkZHR6HYBwGwiIV+fPHlSCxcu1KRJk1RVVaUjR47oyJEjOnXqlFwul44cOaJjx45J+uYSSH/52p3PASDSREK+lr75mzgtLc1r3+5L0b/++mtJ5GsAkS9S8nKgmlL36NSpk86fP+/5G9zt7Nmz+uqrr6iPtCIUsxFVzp07J+mbSw1bIiYmRkOHDtWTTz6pTz75RI8++qjefPNNvfXWW54+nTp1Cuj1u9/9rtH91S6guPffs2dP7d27t17f3bt369JLL+XhjwAiltnz9ddff61Tp05p8eLFysrK8rx+//vfq7q6WllZWZo8ebIk6dvf/rYuvvhin/n6vffeU+/evVt8jABgFLPna+nCw7+kCw94rM19/1T3/V7J1wCiQSTk5absP9C6hztH1+27d+9e1dTUkMNbEW4zgqjhdDq1ZcsWxcXFqXv37i3a1vHjxz1PPXdzJ8bal780595R//jHP3w+QGHFihWyWCy69tprPW0//OEPNXPmTO3du9dzadGBAwf05ptv6oEHHgj4eADATCIhX6empmrt2rX1lj/zzDMqLS3Vb3/7W68H1eTn5+vll1/WF198oczMTEnStm3b9Omnn2r69OlNOiYAMItIyNeSdMstt+j+++/3PHzMfXn8f/3Xf0mS14PSyNcAIlmk5OWmCLTucdNNNyklJUXLli3TzTff7GlftmyZEhISNHLkyGbtH5GHYjYi1p/+9Cf97//+ryTp2LFjKikp0WeffaaZM2cqKSmpRdueP3++duzYoZEjR6pLly46duyYnn/+eV1yySW64YYbPP2ac++oRx99VO+++66GDx+uzp076/jx4/r973+vPXv2aOrUqfrOd77j6fuLX/xCL774okaOHKkHHnhAVqtVTz75pNLS0vTLX/6yRccIAOESifk6ISFBo0ePrte+bt06vffee/WWPfzww1qzZo2GDBmi+++/X6dOndITTzyhnj176q677mrOoQFA2EVivpak9PR0/cd//IfmzJmj4cOHa/To0frg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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "nbins = [2, 3, 5, 10, 30, 40, 60, 100 ]\n", "figsize = (18, 10)\n", "\n", "# TODO\n", "\n", "# YOUR SOLUTION HERE" ] }, { "cell_type": "markdown", "metadata": { "id": "EhkbFVmOTG6d" }, "source": [ "Do you see the issues with having too few bins or too many bins? In particular, do you notice weird patterns that emerge from `bins=30`?\n", "\n", "**Q: Can you guess why do you see such patterns? What are the peaks and what are the empty bars? What do they tell you about choosing the binsize in histograms?**" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 430 }, "execution": { "iopub.execute_input": "2020-06-14T19:57:21.486Z", "iopub.status.busy": "2020-06-14T19:57:21.468Z", "iopub.status.idle": "2020-06-14T19:57:21.640Z", "shell.execute_reply": "2020-06-14T19:57:21.689Z" }, "executionInfo": { "elapsed": 637, "status": "ok", "timestamp": 1687818426810, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "_RYXN95UTG6e", "jupyter": { "outputs_hidden": false }, "outputId": "6079008d-ce20-459c-8381-b0ef63548fe4" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAGdCAYAAAA44ojeAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAlJUlEQVR4nO3de3BU5f3H8c8mmCVgLm4gJCtJuFRBucnNELEITQRCRK3xAsYWhYI6ASUZFdJ6AWxNvBQZFUFbBW8RdUZRoUK5aNAxIKAR8RIJBUFDohXJklAWkpzfHx321zUQDOxynizv18yZyXmeZ8/5nmlJPj7n2XMclmVZAgAAMEiY3QUAAAD8HAEFAAAYh4ACAACMQ0ABAADGIaAAAADjEFAAAIBxCCgAAMA4BBQAAGCcNnYXcCIaGxtVWVmpqKgoORwOu8sBAAC/gGVZ2r9/v9xut8LCmp8jaZUBpbKyUklJSXaXAQAATsDu3bvVuXPnZse0yoASFRUl6b8XGB0dbXM1AADgl/B4PEpKSvL9HW9OqwwoR27rREdHE1AAAGhlfsnyDBbJAgAA4xBQAACAcQgoAADAOAQUAABgHAIKAAAwDgEFAAAYh4ACAACMQ0ABAADGIaAAAADjEFAAAIBxCCgAAMA4BBQAAGAcAgoAADAOAQUAABinjd0FAABOXJeZy5vt31mUdYoqAQKLGRQAAGAcAgoAADAOAQUAABiHgAIAAIxDQAEAAMYhoAAAAOMQUAAAgHEIKAAAwDgEFAAAYBwCCgAAMA4BBQAAGIeAAgAAjENAAQAAxmlRQCksLNTgwYMVFRWl+Ph4XXnllSovL/cbc/DgQeXm5iouLk5nnnmmsrOzVV1d7Tdm165dysrKUrt27RQfH68777xT9fX1J381AAAgJLQooJSUlCg3N1fr16/XqlWrdPjwYY0cOVJ1dXW+MXl5eXr77bf12muvqaSkRJWVlbrqqqt8/Q0NDcrKytKhQ4f04Ycf6rnnntPixYt17733Bu6qAABAq+awLMs60Q//8MMPio+PV0lJiYYNG6aamhp17NhRxcXFuvrqqyVJX331lc477zyVlpZqyJAheuedd3TZZZepsrJSnTp1kiQtXLhQM2bM0A8//KCIiIjjntfj8SgmJkY1NTWKjo4+0fIBoNXrMnN5s/07i7JOUSXA8bXk7/dJrUGpqamRJLlcLknS5s2bdfjwYWVkZPjG9OzZU8nJySotLZUklZaWqk+fPr5wIkmjRo2Sx+PR559/fjLlAACAENHmRD/Y2Nio6dOna+jQoerdu7ckqaqqShEREYqNjfUb26lTJ1VVVfnG/G84OdJ/pO9ovF6vvF6vb9/j8Zxo2QAAoBU44RmU3Nxcbd26VUuWLAlkPUdVWFiomJgY35aUlBT0cwIAAPucUECZOnWqli1bpnfffVedO3f2tSckJOjQoUPat2+f3/jq6molJCT4xvz8Wz1H9o+M+bmCggLV1NT4tt27d59I2QAAoJVoUUCxLEtTp07VG2+8obVr16pr165+/QMHDtQZZ5yhNWvW+NrKy8u1a9cupaWlSZLS0tL02Wef6fvvv/eNWbVqlaKjo3X++ecf9bxOp1PR0dF+GwAACF0tWoOSm5ur4uJivfnmm4qKivKtGYmJiVFkZKRiYmI0adIk5efny+VyKTo6WtOmTVNaWpqGDBkiSRo5cqTOP/98/e53v9NDDz2kqqoq3X333crNzZXT6Qz8FQIAgFanRQFlwYIFkqThw4f7tS9atEg33nijJOnRRx9VWFiYsrOz5fV6NWrUKD355JO+seHh4Vq2bJluvfVWpaWlqX379powYYLmzJlzclcCAABCxkk9B8UuPAcFAP6L56CgNTllz0EBAAAIBgIKAAAwDgEFAAAYh4ACAACMQ0ABAADGIaAAAADjEFAAAIBxTvhtxgCA/8fzSIDAYgYFAAAYh4ACAACMQ0ABAADGIaAAAADjEFAAAIBxCCgAAMA4BBQAAGAcAgoAADAOAQUAABiHgAIAAIxDQAEAAMYhoAAAAOMQUAAAgHEIKAAAwDht7C4AAGCmLjOXH7NvZ1HWKawEpyNmUAAAgHEIKAAAwDgEFAAAYBwCCgAAMA4BBQAAGIeAAgAAjENAAQAAxiGgAAAA47Q4oKxbt05jx46V2+2Ww+HQ0qVL/fodDsdRt4cfftg3pkuXLk36i4qKTvpiAABAaGhxQKmrq1O/fv00f/78o/bv2bPHb3v22WflcDiUnZ3tN27OnDl+46ZNm3ZiVwAAAEJOix91n5mZqczMzGP2JyQk+O2/+eabGjFihLp16+bXHhUV1WQsAACAFOQ1KNXV1Vq+fLkmTZrUpK+oqEhxcXHq37+/Hn74YdXX1x/zOF6vVx6Px28DAAChK6gvC3zuuecUFRWlq666yq/9tttu04ABA+RyufThhx+qoKBAe/bs0dy5c496nMLCQs2ePTuYpQIAAIMENaA8++yzysnJUdu2bf3a8/PzfT/37dtXERERuvnmm1VYWCin09nkOAUFBX6f8Xg8SkpKCl7hAADAVkELKO+//77Ky8v1yiuvHHdsamqq6uvrtXPnTvXo0aNJv9PpPGpwAQAAoSloa1CeeeYZDRw4UP369Tvu2LKyMoWFhSk+Pj5Y5QAAgFakxTMotbW1qqio8O3v2LFDZWVlcrlcSk5OlvTfWzCvvfaa/vrXvzb5fGlpqTZs2KARI0YoKipKpaWlysvL0w033KCzzjrrJC4FAACEihYHlE2bNmnEiBG+/SNrQyZMmKDFixdLkpYsWSLLsjR+/Pgmn3c6nVqyZIlmzZolr9errl27Ki8vz2+NCQAAOL21OKAMHz5clmU1O2bKlCmaMmXKUfsGDBig9evXt/S0AADgNMK7eAAAgHEIKAAAwDgEFAAAYBwCCgAAMA4BBQAAGIeAAgAAjENAAQAAxiGgAAAA4xBQAACAcQgoAADAOAQUAABgHAIKAAAwDgEFAAAYh4ACAACMQ0ABAADGIaAAAADjEFAAAIBxCCgAAMA4BBQAAGAcAgoAADAOAQUAABiHgAIAAIxDQAEAAMZpY3cBAHAqdZm5/Jh9O4uyTmElAJrDDAoAADAOAQUAABiHgAIAAIxDQAEAAMYhoAAAAOMQUAAAgHEIKAAAwDgtDijr1q3T2LFj5Xa75XA4tHTpUr/+G2+8UQ6Hw28bPXq035i9e/cqJydH0dHRio2N1aRJk1RbW3tSFwIAAEJHiwNKXV2d+vXrp/nz5x9zzOjRo7Vnzx7f9vLLL/v15+Tk6PPPP9eqVau0bNkyrVu3TlOmTGl59QAAICS1+EmymZmZyszMbHaM0+lUQkLCUfu+/PJLrVixQhs3btSgQYMkSY8//rjGjBmjRx55RG63u6UlAQCAEBOUNSjvvfee4uPj1aNHD91666368ccffX2lpaWKjY31hRNJysjIUFhYmDZs2HDU43m9Xnk8Hr8NAACEroAHlNGjR+v555/XmjVr9OCDD6qkpESZmZlqaGiQJFVVVSk+Pt7vM23atJHL5VJVVdVRj1lYWKiYmBjflpSUFOiyAQCAQQL+ssBx48b5fu7Tp4/69u2r7t2767333lN6evoJHbOgoED5+fm+fY/HQ0gBACCEBf1txt26dVOHDh1UUVGh9PR0JSQk6Pvvv/cbU19fr7179x5z3YrT6ZTT6Qx2qQCAU6C5N0pLvFUa/xX056B8++23+vHHH5WYmChJSktL0759+7R582bfmLVr16qxsVGpqanBLgcAALQCLZ5Bqa2tVUVFhW9/x44dKisrk8vlksvl0uzZs5Wdna2EhARt375dd911l371q19p1KhRkqTzzjtPo0eP1uTJk7Vw4UIdPnxYU6dO1bhx4/gGDwAAkHQCMyibNm1S//791b9/f0lSfn6++vfvr3vvvVfh4eHasmWLLr/8cp177rmaNGmSBg4cqPfff9/vFs1LL72knj17Kj09XWPGjNHFF1+sp59+OnBXBQAAWrUWz6AMHz5clmUds3/lypXHPYbL5VJxcXFLTw0AAE4TvIsHAAAYh4ACAACMQ0ABAADGIaAAAADjEFAAAIBxCCgAAMA4BBQAAGAcAgoAADAOAQUAABiHgAIAAIxDQAEAAMYhoAAAAOMQUAAAgHEIKAAAwDgEFAAAYBwCCgAAMA4BBQAAGIeAAgAAjENAAQAAxiGgAAAA4xBQAACAcQgoAADAOAQUAABgHAIKAAAwDgEFAAAYh4ACAACMQ0ABAADGIaAAAADjEFAAAIBxCCgAAMA4BBQAAGCcFgeUdevWaezYsXK73XI4HFq6dKmv7/Dhw5oxY4b69Omj9u3by+126/e//70qKyv9jtGlSxc5HA6/raio6KQvBgAAhIYWB5S6ujr169dP8+fPb9J34MABffzxx7rnnnv08ccf6/XXX1d5ebkuv/zyJmPnzJmjPXv2+LZp06ad2BUAAICQ06alH8jMzFRmZuZR+2JiYrRq1Sq/tieeeEIXXnihdu3apeTkZF97VFSUEhISWnp6AKeBLjOXN9u/syjrFFUCwC5BX4NSU1Mjh8Oh2NhYv/aioiLFxcWpf//+evjhh1VfX3/MY3i9Xnk8Hr8NAACErhbPoLTEwYMHNWPGDI0fP17R0dG+9ttuu00DBgyQy+XShx9+qIKCAu3Zs0dz58496nEKCws1e/bsYJYKAAAMErSAcvjwYV177bWyLEsLFizw68vPz/f93LdvX0VEROjmm29WYWGhnE5nk2MVFBT4fcbj8SgpKSlYpQMAAJsFJaAcCSfffPON1q5d6zd7cjSpqamqr6/Xzp071aNHjyb9TqfzqMEFAACEpoAHlCPhZNu2bXr33XcVFxd33M+UlZUpLCxM8fHxgS4HAAC0Qi0OKLW1taqoqPDt79ixQ2VlZXK5XEpMTNTVV1+tjz/+WMuWLVNDQ4OqqqokSS6XSxERESotLdWGDRs0YsQIRUVFqbS0VHl5ebrhhht01llnBe7KAABAq9XigLJp0yaNGDHCt39kbciECRM0a9YsvfXWW5KkCy64wO9z7777roYPHy6n06klS5Zo1qxZ8nq96tq1q/Ly8vzWmAAAgNNbiwPK8OHDZVnWMfub65OkAQMGaP369S09LQAAOI3wLh4AAGAcAgoAADAOAQUAABiHgAIAAIxDQAEAAMYhoAAAAOMQUAAAgHEIKAAAwDgEFAAAYBwCCgAAMA4BBQAAGIeAAgAAjENAAQAAxiGgAAAA4xBQAACAcQgoAADAOAQUAABgHAIKAAAwDgEFAAAYh4ACAACMQ0ABAADGIaAAAADjEFAAAIBxCCgAAMA4bewuAABgjy4zl9tdAnBMzKAAAADjEFAAAIBxCCgAAMA4BBQAAGAcFskCQAhjISxaqxbPoKxbt05jx46V2+2Ww+HQ0qVL/foty9K9996rxMRERUZGKiMjQ9u2bfMbs3fvXuXk5Cg6OlqxsbGaNGmSamtrT+pCAABA6GhxQKmrq1O/fv00f/78o/Y/9NBDeuyxx7Rw4UJt2LBB7du316hRo3Tw4EHfmJycHH3++edatWqVli1bpnXr1mnKlCknfhUAACCktPgWT2ZmpjIzM4/aZ1mW5s2bp7vvvltXXHGFJOn5559Xp06dtHTpUo0bN05ffvmlVqxYoY0bN2rQoEGSpMcff1xjxozRI488IrfbfRKXAwAAQkFA16Ds2LFDVVVVysjI8LXFxMQoNTVVpaWlGjdunEpLSxUbG+sLJ5KUkZGhsLAwbdiwQb/97W+bHNfr9crr9fr2PR5PIMsGAJwGjrceZ2dR1imqBL9EQANKVVWVJKlTp05+7Z06dfL1VVVVKT4+3r+INm3kcrl8Y36usLBQs2fPDmSpAGAM/nACTbWKrxkXFBSopqbGt+3evdvukgAAQBAFNKAkJCRIkqqrq/3aq6urfX0JCQn6/vvv/frr6+u1d+9e35ifczqdio6O9tsAAEDoCmhA6dq1qxISErRmzRpfm8fj0YYNG5SWliZJSktL0759+7R582bfmLVr16qxsVGpqamBLAcAALRSLV6DUltbq4qKCt/+jh07VFZWJpfLpeTkZE2fPl1//vOfdc4556hr166655575Ha7deWVV0qSzjvvPI0ePVqTJ0/WwoULdfjwYU2dOlXjxo3jGzwAAEDSCQSUTZs2acSIEb79/Px8SdKECRO0ePFi3XXXXaqrq9OUKVO0b98+XXzxxVqxYoXatm3r+8xLL72kqVOnKj09XWFhYcrOztZjjz0WgMsBAAChoMUBZfjw4bIs65j9DodDc+bM0Zw5c445xuVyqbi4uKWnBgAAp4lW8S0eAABweiGgAAAA4/A2YwD4hXgzMHDqMIMCAACMQ0ABAADG4RYPAJwC3B4CWoYZFAAAYBwCCgAAMA4BBQAAGIeAAgAAjENAAQAAxiGgAAAA4xBQAACAcQgoAADAOAQUAABgHAIKAAAwDgEFAAAYh3fxAABa7HjvFtpZlHWKKkGoIqAAgOF40SBOR9ziAQAAxmEGBcAxMY2PE8WsD04WMygAAMA4BBQAAGAcAgoAADAOAQUAABiHgAIAAIxDQAEAAMYhoAAAAOMQUAAAgHEIKAAAwDg8SRZASDmZJ5jy9FPAHAGfQenSpYscDkeTLTc3V5I0fPjwJn233HJLoMsAAACtWMBnUDZu3KiGhgbf/tatW3XppZfqmmuu8bVNnjxZc+bM8e23a9cu0GUAAIBWLOABpWPHjn77RUVF6t69uy655BJfW7t27ZSQkBDoUwMAQkBzt9p4QeXpI6iLZA8dOqQXX3xREydOlMPh8LW/9NJL6tChg3r37q2CggIdOHCg2eN4vV55PB6/DQAAhK6gLpJdunSp9u3bpxtvvNHXdv311yslJUVut1tbtmzRjBkzVF5ertdff/2YxyksLNTs2bODWSoAADBIUAPKM888o8zMTLndbl/blClTfD/36dNHiYmJSk9P1/bt29W9e/ejHqegoED5+fm+fY/Ho6SkpOAVDgAAbBW0gPLNN99o9erVzc6MSFJqaqokqaKi4pgBxel0yul0BrxGAABgpqCtQVm0aJHi4+OVldX8gqaysjJJUmJiYrBKAQAArUxQZlAaGxu1aNEiTZgwQW3a/P8ptm/fruLiYo0ZM0ZxcXHasmWL8vLyNGzYMPXt2zcYpQAAgFYoKAFl9erV2rVrlyZOnOjXHhERodWrV2vevHmqq6tTUlKSsrOzdffddwejDAAA0EoFJaCMHDlSlmU1aU9KSlJJSUkwTgkAAEIILwsEAADGIaAAAADjEFAAAIBxCCgAAMA4BBQAAGAcAgoAADAOAQUAABgnqC8LBADgVOoyc7ndJSBAmEEBAADGIaAAAADjcIsHQKvDND4Q+phBAQAAxiGgAAAA4xBQAACAcQgoAADAOAQUAABgHAIKAAAwDgEFAAAYh4ACAACMQ0ABAADGIaAAAADjEFAAAIBxCCgAAMA4BBQAAGAcAgoAADAOAQUAABiHgAIAAIxDQAEAAMYhoAAAAOMQUAAAgHEIKAAAwDgBDyizZs2Sw+Hw23r27OnrP3jwoHJzcxUXF6czzzxT2dnZqq6uDnQZAACgFQvKDEqvXr20Z88e3/bBBx/4+vLy8vT222/rtddeU0lJiSorK3XVVVcFowwAANBKtQnKQdu0UUJCQpP2mpoaPfPMMyouLtZvfvMbSdKiRYt03nnnaf369RoyZEgwygEAAK1MUGZQtm3bJrfbrW7duiknJ0e7du2SJG3evFmHDx9WRkaGb2zPnj2VnJys0tLSYx7P6/XK4/H4bQAAIHQFPKCkpqZq8eLFWrFihRYsWKAdO3bo17/+tfbv36+qqipFREQoNjbW7zOdOnVSVVXVMY9ZWFiomJgY35aUlBTosgEAgEECfosnMzPT93Pfvn2VmpqqlJQUvfrqq4qMjDyhYxYUFCg/P9+37/F4CCkAAISwoH/NODY2Vueee64qKiqUkJCgQ4cOad++fX5jqqurj7pm5Qin06no6Gi/DQAAhK6gB5Ta2lpt375diYmJGjhwoM444wytWbPG119eXq5du3YpLS0t2KUAAIBWIuC3eO644w6NHTtWKSkpqqys1H333afw8HCNHz9eMTExmjRpkvLz8+VyuRQdHa1p06YpLS2Nb/AAAACfgAeUb7/9VuPHj9ePP/6ojh076uKLL9b69evVsWNHSdKjjz6qsLAwZWdny+v1atSoUXryyScDXQYAAGjFAh5QlixZ0mx/27ZtNX/+fM2fPz/QpwYAACEiKA9qA3DqdJm5vNn+nUVZp6gSIPiO9/93hA4CCnCa4xc+cPKa+3fEfyScGN5mDAAAjMMMCoCgYGYGwMlgBgUAABiHgAIAAIxDQAEAAMYhoAAAAOOwSBbACWMhLIBgYQYFAAAYh4ACAACMQ0ABAADGIaAAAADjEFAAAIBxCCgAAMA4BBQAAGAcAgoAADAOAQUAABiHJ8kCIY6nvQJojZhBAQAAxmEGBQCA42Am8tRjBgUAABiHgAIAAIxDQAEAAMYhoAAAAOOwSBY4RZpbZLezKOsUVgIA5iOgAAAgvqljGm7xAAAA4xBQAACAcQgoAADAOAEPKIWFhRo8eLCioqIUHx+vK6+8UuXl5X5jhg8fLofD4bfdcsstgS4FAAC0UgEPKCUlJcrNzdX69eu1atUqHT58WCNHjlRdXZ3fuMmTJ2vPnj2+7aGHHgp0KQAAoJUK+Ld4VqxY4be/ePFixcfHa/PmzRo2bJivvV27dkpISAj06QEAQAgI+hqUmpoaSZLL5fJrf+mll9ShQwf17t1bBQUFOnDgQLBLAQAArURQn4PS2Nio6dOna+jQoerdu7ev/frrr1dKSorcbre2bNmiGTNmqLy8XK+//vpRj+P1euX1en37Ho8nmGUDAACbBTWg5ObmauvWrfrggw/82qdMmeL7uU+fPkpMTFR6erq2b9+u7t27NzlOYWGhZs+eHcxSAQCAQYIWUKZOnaply5Zp3bp16ty5c7NjU1NTJUkVFRVHDSgFBQXKz8/37Xs8HiUlJQW2YMBgPOESwOkm4AHFsixNmzZNb7zxht577z117dr1uJ8pKyuTJCUmJh613+l0yul0BrJMAABgsIAHlNzcXBUXF+vNN99UVFSUqqqqJEkxMTGKjIzU9u3bVVxcrDFjxiguLk5btmxRXl6ehg0bpr59+wa6HAAA0AoFPKAsWLBA0n8fxva/Fi1apBtvvFERERFavXq15s2bp7q6OiUlJSk7O1t33313oEsBAACtVFBu8TQnKSlJJSUlgT4tAAAIIbyLBwAAGIeAAgAAjENAAQAAxiGgAAAA4wT1SbKAHU7moWY7i7ICWAkA4EQxgwIAAIxDQAEAAMbhFg8AAIY63i3rUL4tzQwKAAAwDgEFAAAYh4ACAACMQ0ABAADGYZEsECAn8/wVAIA/ZlAAAIBxmEFBq8RsBYDW4nT+qvDJYAYFAAAYh4ACAACMwy0e4H8wFQsAZmAGBQAAGIcZFBjJ1EWwptYFAKGGgBIimvvDyW0JAEBrwy0eAABgHGZQcFKYuQkMbh0Bpy/+/R8dMygAAMA4zKCgWSR7AIAdCCgIGp4pAgDBFcq/Z7nFAwAAjMMMCriNAwAwDjMoAADAOMygnAZMnSExtS4AgP0IKAAAnIZMX2Br6y2e+fPnq0uXLmrbtq1SU1P10Ucf2VkOAAAwhG0zKK+88ory8/O1cOFCpaamat68eRo1apTKy8sVHx9vV1mSTu7pqMH6LAAApxPbZlDmzp2ryZMn66abbtL555+vhQsXql27dnr22WftKgkAABjClhmUQ4cOafPmzSooKPC1hYWFKSMjQ6WlpU3Ge71eeb1e335NTY0kyePxBKW+Ru+BY/Yl5712wsc9Xr3NnRcAgJYK5t+skzmmZVnHHWtLQPn3v/+thoYGderUya+9U6dO+uqrr5qMLyws1OzZs5u0JyUlBa3GYIiZZ3cFAAD8MsH8m7V//37FxMQ0O6ZVfIunoKBA+fn5vv3Gxkbt3btXcXFxcjgcNlYWPB6PR0lJSdq9e7eio6PtLidouM7QwnWGjtPhGiWu81SzLEv79++X2+0+7lhbAkqHDh0UHh6u6upqv/bq6molJCQ0Ge90OuV0Ov3aYmNjg1miMaKjo0P6H80RXGdo4TpDx+lwjRLXeSodb+bkCFsWyUZERGjgwIFas2aNr62xsVFr1qxRWlqaHSUBAACD2HaLJz8/XxMmTNCgQYN04YUXat68eaqrq9NNN91kV0kAAMAQtgWU6667Tj/88IPuvfdeVVVV6YILLtCKFSuaLJw9XTmdTt13331Nbm2FGq4ztHCdoeN0uEaJ6zSZw/ol3/UBAAA4hXibMQAAMA4BBQAAGIeAAgAAjENAAQAAxiGgGKawsFCDBw9WVFSU4uPjdeWVV6q8vNzusgJuwYIF6tu3r++hQWlpaXrnnXfsLiuoioqK5HA4NH36dLtLCahZs2bJ4XD4bT179rS7rKD47rvvdMMNNyguLk6RkZHq06ePNm3aZHdZAdWlS5cm/3s6HA7l5ubaXVpANTQ06J577lHXrl0VGRmp7t276/777/9F74hpTfbv36/p06crJSVFkZGRuuiii7Rx40a7y/pFWsWj7k8nJSUlys3N1eDBg1VfX68//vGPGjlypL744gu1b9/e7vICpnPnzioqKtI555wjy7L03HPP6YorrtAnn3yiXr162V1ewG3cuFFPPfWU+vbta3cpQdGrVy+tXr3at9+mTej9avnpp580dOhQjRgxQu+88446duyobdu26ayzzrK7tIDauHGjGhoafPtbt27VpZdeqmuuucbGqgLvwQcf1IIFC/Tcc8+pV69e2rRpk2666SbFxMTotttus7u8gPnDH/6grVu36oUXXpDb7daLL76ojIwMffHFFzr77LPtLq95Foz2/fffW5KskpISu0sJurPOOsv6+9//bncZAbd//37rnHPOsVatWmVdcskl1u233253SQF13333Wf369bO7jKCbMWOGdfHFF9tdxil3++23W927d7caGxvtLiWgsrKyrIkTJ/q1XXXVVVZOTo5NFQXegQMHrPDwcGvZsmV+7QMGDLD+9Kc/2VTVL8ctHsPV1NRIklwul82VBE9DQ4OWLFmiurq6kHzVQW5urrKyspSRkWF3KUGzbds2ud1udevWTTk5Odq1a5fdJQXcW2+9pUGDBumaa65RfHy8+vfvr7/97W92lxVUhw4d0osvvqiJEyeG3ItZL7roIq1Zs0Zff/21JOnTTz/VBx98oMzMTJsrC5z6+no1NDSobdu2fu2RkZH64IMPbKqqBexOSDi2hoYGKysryxo6dKjdpQTFli1brPbt21vh4eFWTEyMtXz5crtLCriXX37Z6t27t/Wf//zHsiwrJGdQ/vGPf1ivvvqq9emnn1orVqyw0tLSrOTkZMvj8dhdWkA5nU7L6XRaBQUF1scff2w99dRTVtu2ba3FixfbXVrQvPLKK1Z4eLj13Xff2V1KwDU0NFgzZsywHA6H1aZNG8vhcFgPPPCA3WUFXFpamnXJJZdY3333nVVfX2+98MILVlhYmHXuuefaXdpxEVAMdsstt1gpKSnW7t277S4lKLxer7Vt2zZr06ZN1syZM60OHTpYn3/+ud1lBcyuXbus+Ph469NPP/W1hWJA+bmffvrJio6ODrnbdWeccYaVlpbm1zZt2jRryJAhNlUUfCNHjrQuu+wyu8sIipdfftnq3Lmz9fLLL1tbtmyxnn/+ecvlcoVc4KyoqLCGDRtmSbLCw8OtwYMHWzk5OVbPnj3tLu24CCiGys3NtTp37mz961//sruUUyY9Pd2aMmWK3WUEzBtvvOH7pXBkk2Q5HA4rPDzcqq+vt7vEoBk0aJA1c+ZMu8sIqOTkZGvSpEl+bU8++aTldrttqii4du7caYWFhVlLly61u5Sg6Ny5s/XEE0/4td1///1Wjx49bKoouGpra63KykrLsizr2muvtcaMGWNzRcfHGhTDWJalqVOn6o033tDatWvVtWtXu0s6ZRobG+X1eu0uI2DS09P12WefqayszLcNGjRIOTk5KisrU3h4uN0lBkVtba22b9+uxMREu0sJqKFDhzb5yv/XX3+tlJQUmyoKrkWLFik+Pl5ZWVl2lxIUBw4cUFiY/5/A8PBwNTY22lRRcLVv316JiYn66aeftHLlSl1xxRV2l3RcofddwFYuNzdXxcXFevPNNxUVFaWqqipJUkxMjCIjI22uLnAKCgqUmZmp5ORk7d+/X8XFxXrvvfe0cuVKu0sLmKioKPXu3duvrX379oqLi2vS3prdcccdGjt2rFJSUlRZWan77rtP4eHhGj9+vN2lBVReXp4uuugiPfDAA7r22mv10Ucf6emnn9bTTz9td2kB19jYqEWLFmnChAkh+ZVxSRo7dqz+8pe/KDk5Wb169dInn3yiuXPnauLEiXaXFlArV66UZVnq0aOHKioqdOedd6pnz5666aab7C7t+OyewoE/SUfdFi1aZHdpATVx4kQrJSXFioiIsDp27Gilp6db//znP+0uK+hCcQ3KddddZyUmJloRERHW2WefbV133XVWRUWF3WUFxdtvv2317t3bcjqdVs+ePa2nn37a7pKCYuXKlZYkq7y83O5Sgsbj8Vi33367lZycbLVt29bq1q2b9ac//cnyer12lxZQr7zyitWtWzcrIiLCSkhIsHJzc619+/bZXdYv4rCsEHtsHgAAaPVYgwIAAIxDQAEAAMYhoAAAAOMQUAAAgHEIKAAAwDgEFAAAYBwCCgAAMA4BBQAAGIeAAgAAjENAAQAAxiGgAAAA4xBQAACAcf4PQcxofxHfYZgAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# YOUR SOLUTION HERE" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "execution": { "iopub.execute_input": "2020-06-14T19:57:22.246Z", "iopub.status.busy": "2020-06-14T19:57:22.230Z", "iopub.status.idle": "2020-06-14T19:57:22.280Z", "shell.execute_reply": "2020-06-14T19:57:22.297Z" }, "executionInfo": { "elapsed": 7, "status": "ok", "timestamp": 1687818426810, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "okuF4FOzTG6e", "jupyter": { "outputs_hidden": false }, "outputId": "fad130a5-cc9d-4832-d9f2-b52d8d95313b" }, "outputs": [ { "data": { "text/plain": [ "40" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# YOUR SOLUTION HERE" ] }, { "cell_type": "markdown", "metadata": { "id": "YhF5JL3mTG6e" }, "source": [ "# YOUR SOLUTION HERE" ] }, { "cell_type": "markdown", "metadata": { "id": "OVCQtwOLTG6e" }, "source": [ "## Formulae for choosing the number of bins.\n", "\n", "We can manually choose the number of bins based on those formulae." ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 409 }, "execution": { "iopub.execute_input": "2020-06-14T19:57:26.087Z", "iopub.status.busy": "2020-06-14T19:57:26.071Z", "iopub.status.idle": "2020-06-14T19:57:26.506Z", "shell.execute_reply": "2020-06-14T19:57:26.556Z" }, "executionInfo": { "elapsed": 1146, "status": "ok", "timestamp": 1687818431715, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "My4M97X8TG6f", "outputId": "17eb04e4-63fd-4e9e-d880-138c1a92f87a" }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA9oAAAF2CAYAAACRVuD7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABjE0lEQVR4nO3de1xVZd7//zcgbAU5hArICEjWeEjN8oCMZpoIIlkmTaM5heVXGwdMpSmzW8tDiTlNOZaHqXHQJrktm7RJS0HzcFdoalmpjaXpUClYGZI6bbeyfn/4Y48bNkcX7M3m9Xw89iPWWtda1/Vh4dX67Otaa3kZhmEIAAAAAACYwtvVDQAAAAAAwJOQaAMAAAAAYCISbQAAAAAATESiDQAAAACAiUi0AQAAAAAwEYk2AAAAAAAmItEGAAAAAMBEJNoAAAAAAJiIRBsAAAAAABORaAN1NGvWLHl5een777+vtmz79u01duzY+m8UALgx+k0ATcG2bdvk5eWl119/vdqyY8eOVfv27eu/UWhwJNpN2GeffaY777xTMTExat68uX7xi19oyJAhev755yuUtdlsWrRokXr37q3AwEC1bNlSvXv31vPPP68LFy5UKN++fXt5eXnZPwEBAerTp49efvllSdKxY8cctlf1OXbsWK3iKruQK/9p3rx5lfu999579rI1uQgE4Blq2hfOmzdP69atc00j61lubq7GjRunrl27ysfHp9KLvuPHj+u3v/2tOnbsqMDAQIWEhKhPnz5auXKlDMNo2EYDcEsrVqyo9Jru0UcfrXb/y8s3a9ZMoaGh6tmzpyZPnqyDBw9eUdt27Nih2267TVFRUWrevLkiIiI0dOhQvf/++xXKDhw40GkMQ4cOvaI2oOlo5uoGwDU++OADDRo0SNHR0Ro/frwiIiL09ddfa+fOnfrzn/+sSZMm2cuePXtWKSkp2r59u2699VaNHTtW3t7e2rhxox588EGtW7dOb731lvz9/R3q6NGjhx566CFJ0okTJ/TXv/5VaWlpslqtuvvuu/X3v//dofyf/vQnffPNN3ruuecc1rdp06ZOMS5dulQtW7a0L/v4+FRatrS0VJMmTVJAQIDOnj1bp/qqcujQIXl7870W4G5q0xfOmzdPd955p0aMGOG6BteTnJwcvfrqq7rxxhsVGRlZabnvv/9e33zzje68805FR0fLZrMpLy9PY8eO1aFDhzRv3jzT2kS/CTRuc+bMUWxsrMO6rl271mjfIUOG6N5775VhGDp9+rQ++eQTrVy5UkuWLNHTTz+tzMzMOrXpiy++kLe3t373u98pIiJCP/74o1555RUNGDBAGzZsqJBEt2vXTllZWQ7rquoj6+Kll15SaWmpqceEmzDQJA0bNsxo06aN8eOPP1bYVlRU5LA8YcIEQ5Lx/PPPVyj7wgsvGJKM3//+9w7rY2JijJSUFId1J0+eNFq2bGl07tzZaZtSUlKMmJiY2gXixBNPPGFIMr777rsa77N06VKjVatWxuTJk2u8b13qAeBeatMXBgQEGGlpaabWf/HiReM///mPqcesi2+//dY4f/68YRh164tvvfVWIyAgwLhw4UKV5eg3Ac+XnZ1tSDJ2795dp/0lGenp6RXWf//990Z8fLwhydiwYcOVNtPu7NmzRnh4uJGUlOSw/uabbzauu+66Oh1z69athiRjzZo1ZjQRjRRfFTdRR44c0XXXXaeQkJAK28LCwuw/f/PNN1q+fLluueUWZWRkVCibnp6uQYMG6cUXX9S3335bZZ1t2rRRp06ddOTIkStuf00YhqGSkpJqpzOeOnVKM2bM0Jw5c5z+Pqrz/fff66677lJQUJBatWqlyZMn6+eff3YoU/5ew7JpVe+//74yMzPVpk0bBQQE6I477tB3333nsO+ePXuUlJSk1q1bq0WLFoqNjdX9999f63YCqKimfaGXl5fOnj2rlStX2qcPlv2bruz+urLbWC7n5eWljIwMrVq1Stddd50sFos2btwoSfr000918803q0WLFmrXrp2efPJJZWdnO72F5p133tFNN92kgIAABQYGKiUlRQcOHKjz7yEyMlK+vr513r99+/Y6d+6czp8/X6Py9JsAaqtVq1ZavXq1mjVrpqeeesq04/r7+6tNmzYqLi52uv3ChQs6c+ZMnY598eJFPfbYY4qIiFBAQIBuu+02ff311w5lyv8/pOz2ymeeeUYvvviiOnToIIvFot69e2v37t0O+xYWFuq+++5Tu3btZLFY1LZtW91+++21vu0S9YOp401UTEyM8vPztX///iqn8bzzzju6ePGi7r333krL3Hvvvdq6das2btyocePGVVruwoUL+uabb3TVVVddUdtr6uqrr9aZM2cUEBCgESNG6E9/+pPCw8MrlJs5c6YiIiL0wAMPaO7cubWu56677lL79u2VlZWlnTt3atGiRfrxxx/t96NXZdKkSbrqqqv0xBNP6NixY1q4cKEyMjL06quvSpJOnjypxMREtWnTRo8++qhCQkJ07NgxvfHGG7VuJ4CKatoX/v3vf9f/+3//T3369NGECRMkSR06dKhTne+++65ee+01ZWRkqHXr1mrfvr2+/fZbDRo0SF5eXpo+fboCAgL017/+VRaLxWlb0tLSlJSUpKefflrnzp3T0qVL1b9/f3388ccN8lCd//znPzp79qzOnDmj7du3Kzs7W/Hx8WrRokWN9qffBDzf6dOnKzzzpnXr1ld0zOjoaN18883aunWrSkpKFBQUVKfjlJSU6Pz58/r+++/18ssva//+/XrssccqlPviiy8UEBCg8+fPKzw8XOPHj9fjjz9e4y8mn3rqKXl5eWnatGk6efKkFi5cqISEBO3bt6/a/jInJ0c//fSTHnjgAXl5eWnBggUaOXKkvvrqK3v9qampOnDggCZNmqT27dvr5MmTysvLU0FBAQ9YcweuHlKHa+Tm5ho+Pj6Gj4+PER8fbzzyyCPGpk2b7FMHy0yZMsWQZHz88ceVHuujjz4yJBmZmZn2dTExMUZiYqLx3XffGd99953x2WefGffcc0+l04EMw7yp4wsXLjQyMjKMVatWGa+//roxefJko1mzZsa1115rnD592qHsJ598Yvj4+BibNm0yDKN20xrLyt52220O63//+98bkoxPPvnEvi4mJsZhymnZtKqEhASjtLTUvn7q1KmGj4+PUVxcbBiGYaxdu/aKpl8BqFpN+0LDqHzqeFpamtO+q6yPuJwkw9vb2zhw4IDD+kmTJhleXl4Ofe0PP/xghIaGGpKMo0ePGoZhGD/99JMREhJijB8/3mH/wsJCIzg4uML6uqhJX5yVlWVIsn8GDx5sFBQUVHts+k3A85X9W3X2qYmqrhUNw7Df5nd5f1FbSUlJ9jb5+fkZDzzwQIXbeO6//35j1qxZxj/+8Q/j5ZdfNm677TZDknHXXXdVe/yyqeO/+MUvjJKSEvv61157zZBk/PnPf7avK///kKNHjxqSjFatWhmnTp2yr3/zzTcNScZbb71lGIZh/Pjjj4Yk449//GNdfw2oZ0wdb6KGDBmi/Px83Xbbbfrkk0+0YMECJSUl6Re/+IX++c9/2sv99NNPkqTAwMBKj1W2raxsmdzcXLVp00Zt2rRRt27d9Pe//1333Xef/vjHP9ZDRP81efJkPf/887r77ruVmpqqhQsXauXKlfryyy+1ZMkSh7IPPvigkpOTlZiYWOf60tPTHZbLHp709ttvV7vvhAkTHKaW3nTTTbp48aL+/e9/S5J9Ouv69etls9nq3EYAztW0LzTTzTffrC5dujis27hxo+Lj49WjRw/7utDQUI0ZM8ahXF5enoqLizV69Gh9//339o+Pj4/i4uK0devWemlzeaNHj1ZeXp5ycnJ09913S7o0yl1T9JuA51u8eLHy8vIcPmYoe9Bt+evO2pg/f75yc3O1fPly9e3bV+fPn6/wFp3ly5friSee0MiRI3XPPffozTff1Pjx4/Xaa69p586dNarn3nvvdbiGvvPOO9W2bdsa9XW/+c1vHGaB3nTTTZKkr776SpLUokUL+fn5adu2bfrxxx9r1B40LBLtJqx3795644039OOPP+rDDz/U9OnT9dNPP+nOO++0vz6hsiT6cmXbLr+fUZLi4uKUl5enjRs36plnnlFISIh+/PFH+fn51VNElbv77rsVERGhzZs329e9+uqr+uCDD/SnP/3pio597bXXOix36NBB3t7eNbo/Jjo62mG5rEMt6zBvvvlmpaamavbs2WrdurVuv/12ZWdny2q1XlGbAfxXTfpCM5V/Cq8k/fvf/9Y111xTYX35dV9++aUk6ZZbbrF/kVn2yc3N1cmTJ01vrzMxMTFKSEjQ6NGjtWrVKl199dVKSEiocbJNvwl4vj59+ighIcHhU+bUqVMqLCy0f06fPl3j45bdL13VIFB1evTooSFDhuj+++9XXl6ePvzwQ4dnQlSm7G06l19PVqV8X+fl5aVrrrnGlL7OYrHo6aef1jvvvKPw8HANGDBACxYsUGFhYY3ahvpHog35+fmpd+/emjdvnpYuXSqbzaY1a9ZIkn3U5dNPP610/7JtV199tcP61q1bKyEhQUlJSXrooYf0yiuvaN26dfrzn/9cT5FULSoqSqdOnbIvP/zww/r1r38tPz8/HTt2TMeOHbM/COPrr7/W8ePH61RP+YcfVaWyV44Z//8D3Ly8vPT6668rPz9fGRkZ+vbbb3X//ferZ8+edX4wBwDnquoLq1LZv/mLFy86XV/T+5idKXsFzN///vcKI0V5eXl6880363zsK3HnnXfq66+/1o4dO+q0P/0m0LSMHDlSbdu2tX8mT55c4333798vHx8fp19a1oWfn59uu+02vfHGG9V+WRgVFSVJDteT9aW6vk6SpkyZoi+++EJZWVlq3ry5Zs6cqc6dO+vjjz+u9/aheiTacNCrVy9Jl957LUnJycny8fGp8M7ry7388svy8/PT7bffXuWxU1JSdPPNN2vevHn18q7qqhiGoWPHjjm8k/vrr79WTk6OYmNj7Z+yLwFuvPFGDRs2rEbHLhthKnP48GGVlpaa+hCKvn376qmnntKePXu0atUqHThwQKtXrzbt+AAcle8LpcqTwauuusrp02rLpjLXRExMjA4fPlxhffl1ZQ9gCwsLqzBSlJCQoIEDB9a4TjOVXZzWdFSKfhNo2v70pz85fEn4yCOP1Gi/goICbd++XfHx8Vc0ol3ef/7zHxmGUe109LJp25dfT1alfF9nGIYOHz5sal/XoUMHPfTQQ8rNzdX+/ft1/vz5K56tCXOQaDdRW7dudfraq7J7Rjp27ChJateuncaNG6fNmzdr6dKlFcovW7ZM7777rh544AG1atWq2nqnTZumH374QS+99NIVRlC58q95kaSlS5fqu+++09ChQ+3r1q5dW+Hzm9/8RtKlLw+ee+65GtW3ePFih+Xnn39e0qUvKa7Ujz/+WOE8ld3DyTRI4MrVtC+UpICAAKcJdYcOHXT69GmHmT8nTpzQ2rVra9yOpKQk5efna9++ffZ1p06d0qpVqyqUCwoK0rx585zef+ys/zNTZcdfvny5vLy8dOONN9boOPSbQNPWs2dPhy8Jyz+3wplTp05p9OjRunjxov7nf/6nTvU6u72muLhY//jHPxQVFWW/DbKkpKRCf2EYhp588klJl/rimnj55ZcdkvfXX39dJ06cMKWvO3fuXIXXInbo0EGBgYH0dW6C13s1UZMmTdK5c+d0xx13qFOnTjp//rw++OADvfrqq2rfvr3uu+8+e9lnn31W//rXv/T73/9eGzdutCermzZt0ptvvqlbbrmlxg84S05OVteuXfXss88qPT29Vu9tLfv2r7r7WmJiYvSb3/xG3bp1U/PmzfXee+9p9erV6tGjhx544AF7uREjRlTYt+wiNzk5ucavoDh69Khuu+02DR06VPn5+XrllVd099136/rrr6/R/lVZuXKllixZojvuuEMdOnTQTz/9pJdeeklBQUE1HnEHULna9IU9e/bU5s2b9eyzzyoyMlKxsbGKi4vTqFGjNG3aNN1xxx168MEH7a/b+uUvf6mPPvqoRu145JFH9Morr2jIkCGaNGmS/fVe0dHROnXqlH00PSgoSEuXLtU999yjG2+8UaNGjVKbNm1UUFCgDRs2qF+/fnrhhRckXeorY2NjlZaWphUrVlRZ/6effmp/+Nvhw4d1+vRp+wXl9ddfr+HDh0u69Kqa999/X0OHDrW37R//+Id2796tSZMmOb3P3Bn6TQBV+eKLL/TKK6/IMAyVlJTok08+0Zo1a3TmzBk9++yzDgMnkjRw4EBt377d6Renl0tOTla7du0UFxensLAwFRQUKDs7W8ePH7e/IlCSPvroI40ePVqjR4/WNddco//85z9au3at3n//fU2YMKHGXyqGhoaqf//+uu+++1RUVKSFCxfqmmuu0fjx42v/Synniy++0ODBg3XXXXepS5cuatasmdauXauioiKNGjXqio8PE7jkWedwuXfeece4//77jU6dOhktW7Y0/Pz8jGuuucaYNGmSUVRUVKH8+fPnjYULFxo9e/Y0/P397a9ESEtLMy5evFihfExMjJGSkuK07hUrVhiSjOzsbIf11b1SpnXr1kbfvn2rje3//b//Z3Tp0sUIDAw0fH19jWuuucaYNm2aw+sVKlOX13sdPHjQuPPOO43AwEDjqquuMjIyMiq8IqKy19SUf/1M2esgtm7dahjGpVenjR492oiOjjYsFosRFhZm3HrrrcaePXuqbR+A6tWmL/zXv/5lDBgwwGjRooW9/yuTm5trdO3a1fDz8zM6duxovPLKK5W+3quy19Z8/PHHxk033WRYLBajXbt2RlZWlrFo0SJDklFYWOhQduvWrUZSUpIRHBxsNG/e3OjQoYMxduxYh77hs88+MyQZjz76aLW/h6pex1M+zltvvdWIjIw0fH19jcDAQKNfv35Gdna2wyu3KkO/CXi+yv6t1tTl/Y+3t7cREhJi3HDDDcbkyZMrvBqxTM+ePY2IiIhqj/3CCy8Y/fv3N1q3bm00a9bMaNOmjTF8+HBjx44dDuW++uor49e//rXRvn17o3nz5oa/v7/Rs2dPY9myZTXq68r6pf/93/81pk+fboSFhRktWrQwUlJSjH//+98OZSt7vZez13ZJMp544gnDMAzj+++/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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "N = len(movies)\n", "\n", "plt.figure(figsize=(12,4))\n", "\n", "# Sqrt\n", "nbins = int(np.sqrt(N))\n", "\n", "plt.subplot(1,3,1)\n", "plt.title(\"SQRT, {} bins\".format(nbins))\n", "movies.IMDB_Rating.hist(bins=nbins)\n", "\n", "# Sturge's formula\n", "nbins = int(np.ceil(np.log2(N) + 1))\n", "\n", "plt.subplot(1,3,2)\n", "plt.title(\"Sturge, {} bins\".format(nbins))\n", "movies.IMDB_Rating.hist(bins=nbins)\n", "\n", "# Freedman-Diaconis\n", "iqr = np.percentile(movies.IMDB_Rating, 75) - np.percentile(movies.IMDB_Rating, 25)\n", "width = 2*iqr/np.power(N, 1/3)\n", "nbins = int((max(movies.IMDB_Rating) - min(movies.IMDB_Rating)) / width)\n", "\n", "plt.subplot(1,3,3)\n", "plt.title(\"F-D, {} bins\".format(nbins))\n", "movies.IMDB_Rating.hist(bins=nbins)\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "id": "8RKA0F83TG6f" }, "source": [ "But we can also use built-in formulae too. Let's try all of them." ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 387 }, "execution": { "iopub.execute_input": "2020-06-14T19:57:27.570Z", "iopub.status.busy": "2020-06-14T19:57:27.554Z", "iopub.status.idle": "2020-06-14T19:57:28.976Z", "shell.execute_reply": "2020-06-14T19:57:28.994Z" }, "executionInfo": { "elapsed": 1582, "status": "ok", "timestamp": 1687818433290, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "qoEJofYATG6f", "jupyter": { "outputs_hidden": false }, "outputId": "2c4f4f9c-1a22-422f-9865-2cae93d50bfc" }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(20,4))\n", "\n", "plt.subplot(161)\n", "movies.IMDB_Rating.hist(bins='fd')\n", "\n", "plt.subplot(162)\n", "movies.IMDB_Rating.hist(bins='doane')\n", "\n", "plt.subplot(163)\n", "movies.IMDB_Rating.hist(bins='scott')\n", "\n", "plt.subplot(164)\n", "movies.IMDB_Rating.hist(bins='rice')\n", "\n", "plt.subplot(165)\n", "movies.IMDB_Rating.hist(bins='sturges')\n", "\n", "plt.subplot(166)\n", "movies.IMDB_Rating.hist(bins='sqrt')" ] }, { "cell_type": "markdown", "metadata": { "id": "33_5ZPO2TG6f" }, "source": [ "Some are decent, but several of them tend to overestimate the good number of bins. As you have more data points, some of the formulae may overestimate the necessary number of bins. Particularly in our case, because of the precision issue, we shouldn't increase the number of bins too much." ] }, { "cell_type": "markdown", "metadata": { "id": "oX4mgRmVTG6f" }, "source": [ "### Then, how should we choose the number of bins?" ] }, { "cell_type": "markdown", "metadata": { "id": "nwa4u4gjTG6f" }, "source": [ "So what's the conclusion? use Scott's rule or Sturges' formula?\n", "\n", "No, I think the take-away is that you **should understand how the inappropriate number of bins can mislead you** and you should **try multiple number of bins** to obtain the most accurate picture of the data. Although the 'default' may work in most cases, don't blindly trust it! Don't judge the distribution of a dataset based on a single histogram. Try multiple parameters to get the full picture!" ] }, { "cell_type": "markdown", "metadata": { "id": "Fevnnf2fTG6f" }, "source": [ "## CDF (Cumulative distribution function)\n", "\n", "Drawing a CDF is easy. Because it's very common data visualization, histogram has an option called `cumulative`." ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 448 }, "execution": { "iopub.execute_input": "2020-06-14T19:57:33.036Z", "iopub.status.busy": "2020-06-14T19:57:32.985Z", "iopub.status.idle": "2020-06-14T19:57:33.475Z", "shell.execute_reply": "2020-06-14T19:57:33.492Z" }, "executionInfo": { "elapsed": 590, "status": "ok", "timestamp": 1687818472742, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "tGx6OxKATG6g", "jupyter": { "outputs_hidden": false }, "outputId": "908dae60-f150-4f40-9149-8faa5670e7ca" }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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fPXVV7r66qt13XXX6Z133tHFF1+sjz/+WBdeeKHdrUXV5s2b1dzcHF7evn27Ro8erZ/85Cc2dhVdv/zlL7Vw4UK99NJL6tOnj7Zs2aK7775baWlp+s///E+724uqe+65R9u3b9cf//hH5eTk6OWXX1ZBQYF27typH/zgB3a3d2rR+PBF2Gvfvn2WJGvdunV2txJzF154ofX888/b3UbUHTp0yPrhD39oeb1e60c/+pH14IMP2t1SVM2ZM8caMGCA3W3E3MyZM61rrrnG7jbOuwcffNC67LLLrFAoZHcrUVNcXGxNmjQpYt0tt9xijR8/3qaOYuPo0aOW0+m0li1bFrH+iiuusB555BGbujo7vIQUBw4ePChJSk9Pt7mT2Glubtaf/vQnHTlyJC4/TqKkpETFxcUqKCiwu5WY+fjjj5WTk6NLL71U48ePV2Njo90tRd1bb72lIUOG6Cc/+YkyMjI0aNAg/fd//7fdbcXUsWPH9PLLL2vSpElx9cG5V111lVavXq2///3vkqSPPvpIGzZs0JgxY2zuLLqOHz+u5uZmJScnR6xPSUnRhg0bbOrqLNmdoPD9NDc3W8XFxdbVV19tdysxsXXrVqtjx46W0+m00tLSrOXLl9vdUtS9+uqrVt++fa2vv/7asiwrLs/ArFixwnrttdesjz76yFq5cqXl8Xisbt26WX6/3+7Wosrlclkul8sqKyuz/vrXv1q///3vreTkZKu6utru1mJm6dKlltPptD7//HO7W4mq5uZma+bMmZbD4bA6dOhgORwO6/HHH7e7rZjweDzWj370I+vzzz+3jh8/bv3xj3+0EhISrMsvv9zu1k6LAGO4+++/38rLy7M+++wzu1uJiUAgYH388cfWli1brIcffti66KKLrB07dtjdVtQ0NjZaGRkZ1kcffRReF48B5ru++uory+12x93LgYmJiZbH44lY98ADD1jDhw+3qaPYKywstH784x/b3UbUvfrqq1bXrl2tV1991dq6dav1hz/8wUpPT4/LMLp7925rxIgRliTL6XRaV155pTV+/HirZ8+edrd2WgQYg5WUlFhdu3a1/vGPf9jdynkzatQo67777rO7jah54403wj80Wh6SLIfDYTmdTuv48eN2txgzQ4YMsR5++GG724iqbt26WZMnT45Y9+yzz1o5OTk2dRRbn376qZWQkGC9+eabdrcSdV27drWeeeaZiHUVFRVWjx49bOoo9g4fPmzt3bvXsizL+ulPf2rdeOONNnd0elwDYyDLsjR16lS98cYbWrNmjfLz8+1u6bwJhUIKBAJ2txE1o0aN0rZt29TQ0BB+DBkyROPHj1dDQ4OcTqfdLcbE4cOH9cknnyg7O9vuVqLq6quvPuEtDf7+978rLy/Ppo5ia/HixcrIyFBxcbHdrUTd0aNHlZAQ+SvS6XQqFArZ1FHsdezYUdnZ2frqq69UU1Ojm266ye6WTiv+7mNsB0pKSrRkyRL95S9/UadOneTz+SRJaWlpSklJsbm76CkrK9OYMWPUrVs3HTp0SEuWLNHatWtVU1Njd2tR06lTJ/Xt2zdiXceOHdWlS5cT1pvs5z//ucaOHau8vDzt3btXc+bMkdPp1O233253a1E1ffp0XXXVVXr88cf105/+VJs2bdJzzz2n5557zu7Woi4UCmnx4sWaOHFiXN4SP3bsWD322GPq1q2b+vTpow8//FBPPfWUJk2aZHdrUVdTUyPLstSjRw/t3r1bM2bMUM+ePXX33Xfb3drp2X0KCK0n6aSPxYsX291aVE2aNMnKy8uzkpKSrIsvvtgaNWqUVVtba3dbMReP18DceuutVnZ2tpWUlGT94Ac/sG699VZr9+7ddrcVE2+//bbVt29fy+VyWT179rSee+45u1uKiZqaGkuStWvXLrtbiQm/3289+OCDVrdu3azk5GTr0ksvtR555BErEAjY3VrULV261Lr00kutpKQkKysryyopKbEOHDhgd1tn5LCsOHxbQQAAENe4BgYAABiHAAMAAIxDgAEAAMYhwAAAAOMQYAAAgHEIMAAAwDgEGAAAYBwCDAAAMA4BBgAAGIcAAwAAjEOAAQAAxiHAAAAA4/w/FW9TjRbMo/8AAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "movies.IMDB_Rating.hist(cumulative=True)" ] }, { "cell_type": "markdown", "metadata": { "id": "ylVvfe-eTG6g" }, "source": [ "You can also combine with options such as `histtype` and `density`." ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 448 }, "execution": { "iopub.execute_input": "2020-06-14T19:57:34.566Z", "iopub.status.busy": "2020-06-14T19:57:34.550Z", "iopub.status.idle": "2020-06-14T19:57:34.671Z", "shell.execute_reply": "2020-06-14T19:57:34.687Z" }, "executionInfo": { "elapsed": 336, "status": "ok", "timestamp": 1687818473325, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "V-qGVKxVTG6g", "jupyter": { "outputs_hidden": false }, "outputId": "9fd0e1f5-e2fb-49dc-ebb8-9d7a17bc5e29" }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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SkpKdOuttyoYDOqRRx5RYWGhfv/73ys1NdW6vIiYMGGCnnjiCV1//fVyHEcvvfSSvvrVr+qdd97R9OnTrcuLirfffls/+clPdPPNN1uXEhXTp0/Xb3/729DjS33S9EjV0tKiBQsW6I477tBvfvMbXXPNNfrwww+VkZFhXVpEvf322+rq6go9fu+997Rw4UJ94xvfMKwqsp588kk9++yzeumllzR9+nTt379fxcXFGj16tP7+7//euryIeuCBB/Tee+/pZz/7mbKzs/Xyyy+roKBAv//975WTk2Nd3sU5GFZOnTrlSHLefPNN61KiKiMjw3n++eety4iK8+fPO9dff71TU1Pj3H777c7KlSutS4qoiooKZ+bMmdZlRN3q1aud/Px86zKG3MqVK53rrrvO6e7uti4lYhYvXuzcf//9vca+9rWvOUuXLjWqKDra2tocj8fj/Md//Eev8S984QvOo48+alTVwHCYZpj55JNPJElXXXWVcSXR0dXVpVdffVWtra2u/UiAkpISLV68WAUFBdalRM2HH36o7OxsXXvttVq6dKmOHz9uXVLE/frXv9acOXP0jW98Q5mZmbrlllv03HPPWZcVVZ2dnXr55Zd1//33u+pDSefPn6/a2lp98MEHkqR3331X9fX1uuuuu4wri6xgMKiuri4lJSX1Gk9OTlZ9fb1RVQNknYbwma6uLmfx4sXOggULrEuJuN/97ndOamqq4/F4nNGjRzs7duywLikqXnnlFWfGjBlOe3u74ziOK/eMvP76687Pf/5z591333V27tzp5OXlORMnTnT8fr91aRHl8/kcn8/nlJeXOwcPHnR+8pOfOElJSc6LL75oXVrUbN++3fF4PE5jY6N1KRHV1dXlrF692omLi3MSEhKcuLg45/HHH7cuKyry8vKc22+/3WlsbHSCwaDzs5/9zImPj3c+97nPWZd2SYSRYeTBBx90Jk2a5Jw4ccK6lIjr6OhwPvzwQ2f//v3OmjVrnLFjxzrvv/++dVkRdfz4cSczM9N59913Q2NuDCP/W0tLi5Oenu66w25er9fJy8vrNfZ3f/d3zhe/+EWjiqKvsLDQ+cpXvmJdRsS98sorzoQJE5xXXnnF+d3vfuf8y7/8i3PVVVe5MlgePXrU+au/+itHkuPxeJxbb73VWbp0qTNt2jTr0i6JMDJMlJSUOBMmTHA++ugj61KGxJ133ul8+9vfti4jon75y1+GfgH0fEly4uLiHI/H4wSDQesSo2bOnDnOmjVrrMuIqIkTJzrf+ta3eo0988wzTnZ2tlFF0XXs2DEnPj7eee2116xLibgJEyY4P/7xj3uNbdiwwbnhhhuMKoq+CxcuOCdPnnQcx3G++c1vOl/+8peNK7o0zhkx5jiOSktL9ctf/lJvvPGGpkyZYl3SkOju7lZHR4d1GRF155136tChQ2poaAh9zZkzR0uXLlVDQ4M8Ho91iVFx4cIF/fGPf9T48eOtS4moBQsW9LnM/oMPPtCkSZOMKoquF154QZmZmVq8eLF1KRHX1tbW6wNcJcnj8ai7u9uoouhLTU3V+PHj1dLSol27dumrX/2qdUmX5L7r8UaYkpISbdu2Tb/61a80atQoNTU1SZJGjx6t5ORk4+oio7y8XHfddZcmTpyo8+fPa9u2baqrq9OuXbusS4uoUaNG9fk06tTUVF199dWu+pTqhx9+WEuWLNGkSZN08uRJVVRUyOPx6J577rEuLaJWrVql+fPn6/HHH9c3v/lN7du3T1u2bNGWLVusS4u47u5uvfDCC1q+fLkrL9NesmSJfvCDH2jixImaPn263nnnHW3atEn333+/dWkRt2vXLjmOoxtuuEFHjx7V9773PU2bNk3FxcXWpV2a9a6ZWCep368XXnjBurSIuf/++51JkyY5iYmJzjXXXOPceeedzu7du63LGhJuPGekqKjIGT9+vJOYmOjk5OQ4RUVFztGjR63Liop///d/d2bMmOH4fD5n2rRpzpYtW6xLiopdu3Y5kpwjR45YlxIVfr/fWblypTNx4kQnKSnJufbaa51HH33U6ejosC4t4rZv3+5ce+21TmJiojNu3DinpKTEOXfunHVZlxXnOC68BR0AABgxOGcEAACYIowAAABThBEAAGCKMAIAAEwRRgAAgCnCCAAAMEUYAQAApggjAADAFGEEAACYIowAAABThBEAAGCKMAIAAEz9X5bSdvdpJDS6AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "movies.IMDB_Rating.hist(histtype='step', cumulative=True, density=True)" ] }, { "cell_type": "markdown", "metadata": { "id": "5LkuToB3TG6g" }, "source": [ "And increase the number of bins." ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 448 }, "execution": { "iopub.execute_input": "2020-06-14T19:57:35.726Z", "iopub.status.busy": "2020-06-14T19:57:35.709Z", "iopub.status.idle": "2020-06-14T19:57:37.266Z", "shell.execute_reply": "2020-06-14T19:57:37.319Z" }, "executionInfo": { "elapsed": 2968, "status": "ok", "timestamp": 1687818476463, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "d0fgONoxTG6g", "jupyter": { "outputs_hidden": false }, "outputId": "3f3cb362-f263-4565-f72a-33ea6be4e2cb" }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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AACijTACAABMEUYAAIApwggAADBFGDG2bNkynXfeeerXr59SU1N12WWXafv27dZlRdWDDz6oc845p3nznezsbL344ovWZcXcXXfdJY/HoxtvvNG6lKgqKSmRx+Np8TFixAjrsmJiz549+vGPf6wTTzxRvXv31tlnn63NmzdblxVVmZmZrb6fHo9HBQUF1qVFTVNTkxYuXKjhw4erd+/eOuWUU7RkyZIj3i+lJzpw4IBuvPFGDRs2TL1799aECRP0+uuvW5d1RN1yO/h4sn79ehUUFOi8887ToUOHdNtttyk3N1fvvfee+vbta11eVAwZMkR33XWXTj31VDmOo8cff1yXXnqp3njjDZ111lnW5cXE66+/roceekjnnHOOdSkxcdZZZ+nll19uftyrl/t+lXz++eeaOHGiLrzwQr344os66aST9MEHH6h///7WpUXV66+/rqampubH77zzjiZNmqTLL7/csKrouvvuu/Xggw/q8ccf11lnnaXNmzcrPz9fxx9/vG644Qbr8qLq6quv1jvvvKMnn3xSgwcP1lNPPaWcnBy99957Sk9Pty6vfQ66lU8//dSR5Kxfv966lJjq37+/88gjj1iXERMHDhxwTj31VKeqqso5//zznXnz5lmXFFXFxcXOqFGjrMuIuVtvvdX5zne+Y13GMTdv3jznlFNOccLhsHUpUTNlyhRnzpw5LcZ+8IMfODNnzjSqKDYaGhocn8/n/OlPf2oxfu655zq33367UVWdw2Wabmb//v2SpAEDBhhXEhtNTU1as2aNDh486NpbAhQUFGjKlCnKycmxLiVmPvjgAw0ePFgnn3yyZs6cqd27d1uXFHXPP/+8srKydPnllys1NVVjxozRww8/bF1WTDU2Nuqpp57SnDlzXHVT0gkTJqi6ulo7duyQJL355pt69dVXNXnyZOPKouvQoUNqampSUlJSi/HevXvr1VdfNaqqk6zTEP6rqanJmTJlijNx4kTrUqLurbfecvr27ev4fD7n+OOPdyoqKqxLiomnn37aGTlypPPVV185juO4cmbkhRdecJ555hnnzTffdNatW+dkZ2c7Q4cOderr661Liyq/3+/4/X6nqKjI2bp1q/PQQw85SUlJzmOPPWZdWsyUl5c7Pp/P2bNnj3UpUdXU1OTceuutjsfjcXr16uV4PB5n6dKl1mXFRHZ2tnP++ec7e/bscQ4dOuQ8+eSTjtfrdU477TTr0jpEGOlGrr32WmfYsGHOJ598Yl1K1AWDQeeDDz5wNm/e7CxYsMBJSUlx3n33Xeuyomr37t1Oamqq8+abbzaPuTGMfNPnn3/uJCcnu+6yW0JCgpOdnd1i7Kc//anz7W9/26ii2MvNzXUuueQS6zKi7umnn3aGDBniPP30085bb73lPPHEE86AAQNcGSx37tzp/M///I8jyfH5fM55553nzJw50xkxYoR1aR0ijHQTBQUFzpAhQ5yPPvrIupRj4qKLLnKuueYa6zKi6tlnn23+BXD4Q5Lj8Xgcn8/nHDp0yLrEmMnKynIWLFhgXUZUDR061LnqqqtajD3wwAPO4MGDjSqKrV27djler9dZu3atdSlRN2TIEOf+++9vMbZkyRLn9NNPN6oo9r788ktn7969juM4zhVXXOFcfPHFxhV1jDUjxhzHUWFhoZ599lm98sorGj58uHVJx0Q4HFYwGLQuI6ouuugivf3229q2bVvzR1ZWlmbOnKlt27bJ5/NZlxgTX375pT788EMNGjTIupSomjhxYqu32e/YsUPDhg0zqii2Hn30UaWmpmrKlCnWpURdQ0NDixu4SpLP51M4HDaqKPb69u2rQYMG6fPPP1dlZaUuvfRS65I65L734/UwBQUFKisr03PPPad+/fqptrZWknT88cerd+/extVFR1FRkSZPnqyhQ4fqwIEDKisrU01NjSorK61Li6p+/fq1uht13759deKJJ7rqLtU333yzpk6dqmHDhmnv3r0qLi6Wz+fT9OnTrUuLqptuukkTJkzQ0qVLdcUVV2jTpk1atWqVVq1aZV1a1IXDYT366KOaPXu2K9+mPXXqVN15550aOnSozjrrLL3xxhtavny55syZY11a1FVWVspxHJ1++unauXOnbrnlFo0YMUL5+fnWpXXMemom3klq8+PRRx+1Li1q5syZ4wwbNsxJTEx0TjrpJOeiiy5yXnrpJeuyjgk3rhmZNm2aM2jQICcxMdFJT093pk2b5uzcudO6rJj44x//6IwcOdLx+/3OiBEjnFWrVlmXFBOVlZWOJGf79u3WpcREfX29M2/ePGfo0KFOUlKSc/LJJzu33367EwwGrUuLuvLycufkk092EhMTnYEDBzoFBQXOF198YV3WEXkcx4Vb0AEAgB6DNSMAAMAUYQQAAJgijAAAAFOEEQAAYIowAgAATBFGAACAKcIIAAAwRRgBAACmCCMAAMAUYQQAAJgijAAAAFOEEQAAYOr/Ab1Q4Q15DQZtAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "movies.IMDB_Rating.hist(cumulative=True, density=True, bins=1000)" ] }, { "cell_type": "markdown", "metadata": { "id": "JrytXZBQTG6g" }, "source": [ "This method works fine. By increasing the number of bins, you can get a CDF in the resolution that you want. But let's also try it manually to better understand what's going on. First, we should sort all the values." ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "execution": { "iopub.execute_input": "2020-06-14T19:57:38.193Z", "iopub.status.busy": "2020-06-14T19:57:38.177Z", "iopub.status.idle": "2020-06-14T19:57:38.229Z", "shell.execute_reply": "2020-06-14T19:57:38.245Z" }, "executionInfo": { "elapsed": 10, "status": "ok", "timestamp": 1687818476464, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "hQmzLYonTG6g", "jupyter": { "outputs_hidden": false }, "outputId": "e986fb7e-dd88-412e-8d7b-7652dee31d4a" }, "outputs": [ { "data": { "text/plain": [ "1247 1.4\n", "406 1.5\n", "1754 1.6\n", "1590 1.7\n", "1515 1.7\n", "Name: IMDB_Rating, dtype: float64" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rating_sorted = movies.IMDB_Rating.sort_values()\n", "rating_sorted.head()" ] }, { "cell_type": "markdown", "metadata": { "id": "GwGp6rXDTG6g" }, "source": [ "We need to know the number of data points," ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "execution": { "iopub.execute_input": "2020-06-14T19:57:39.585Z", "iopub.status.busy": "2020-06-14T19:57:39.569Z", "iopub.status.idle": "2020-06-14T19:57:39.617Z", "shell.execute_reply": "2020-06-14T19:57:39.635Z" }, "executionInfo": { "elapsed": 8, "status": "ok", "timestamp": 1687818476465, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "wzlbCrkcTG6h", "jupyter": { "outputs_hidden": false }, "outputId": "788c365c-1eb4-446c-9a6e-3627f7a758e4" }, "outputs": [ { "data": { "text/plain": [ "2988" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "N = len(rating_sorted)\n", "N" ] }, { "cell_type": "markdown", "metadata": { "id": "TB-YgQwDTG6h" }, "source": [ "And I think this may be useful for you." ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "execution": { "iopub.execute_input": "2020-06-14T19:57:40.533Z", "iopub.status.busy": "2020-06-14T19:57:40.515Z", "iopub.status.idle": "2020-06-14T19:57:40.565Z", "shell.execute_reply": "2020-06-14T19:57:40.581Z" }, "executionInfo": { "elapsed": 7, "status": "ok", "timestamp": 1687818476989, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "ta5S5g-OTG6h", "jupyter": { "outputs_hidden": false }, "outputId": "69f7a2c3-e913-4d5a-c10c-e66abf2dc7c0" }, "outputs": [ { "data": { "text/plain": [ "array([0.02, 0.04, 0.06, 0.08, 0.1 , 0.12, 0.14, 0.16, 0.18, 0.2 , 0.22,\n", " 0.24, 0.26, 0.28, 0.3 , 0.32, 0.34, 0.36, 0.38, 0.4 , 0.42, 0.44,\n", " 0.46, 0.48, 0.5 , 0.52, 0.54, 0.56, 0.58, 0.6 , 0.62, 0.64, 0.66,\n", " 0.68, 0.7 , 0.72, 0.74, 0.76, 0.78, 0.8 , 0.82, 0.84, 0.86, 0.88,\n", " 0.9 , 0.92, 0.94, 0.96, 0.98, 1. ])" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "n = 50\n", "np.linspace(1/n, 1.0, num=n)" ] }, { "cell_type": "markdown", "metadata": { "id": "xTkw7L1ETG6h" }, "source": [ "**Q: now you're ready to draw a proper CDF. Draw the CDF plot of this data.**" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 449 }, "execution": { "iopub.execute_input": "2020-06-14T19:57:41.498Z", "iopub.status.busy": "2020-06-14T19:57:41.481Z", "iopub.status.idle": "2020-06-14T19:57:41.677Z", "shell.execute_reply": "2020-06-14T19:57:41.693Z" }, "executionInfo": { "elapsed": 345, "status": "ok", "timestamp": 1687818478045, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "mS2e8Ji4TG6h", "jupyter": { "outputs_hidden": false }, "outputId": "0e2fd594-524b-4d3a-df83-aad9d593a30e" }, "outputs": [ { "data": { "image/png": "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AgBwG8fH3NS3vLy8and6gsGgMjMzo/5z+me21s5fXh719wUAAHXjaLlJTk6W1+tVYWFhte2FhYVKS0ur8Zy0tLQ6HR8IBBQIBKITGAAANHqOPqoSExOjwYMHa82aNZFtlmVpzZo1ysnJqfGcnJycasdL0quvvlrr8QAAoHlx/GOp6dOna+LEiRoyZIiGDRum+fPnq7S0VJMmTZIkTZgwQRkZGZo7d64kadq0abrooov08MMPa8yYMXr22We1adMmLVq0yMnLAAAAjYTj5Wb8+PE6dOiQZs2apYKCAg0YMECrVq2KDBrOz8+Xx/P1Dabhw4dr2bJluvfee3X33Xere/fuevHFF5njBgAASGoE89w0tPqa5wYAANSfuvz+ZnpYAADgKpQbAADgKpQbAADgKpQbAADgKpQbAADgKpQbAADgKpQbAADgKpQbAADgKpQbAADgKo4vv9DQTkzIHAwGHU4CAADO1Inf22eysEKzKzfFxcWSpMzMTIeTAACAuiouLlZiYuIpj2l2a0tZlqX9+/crPj5ehmE4HafeBINBZWZmau/eva5dQ6s5XKPEdboN1+kezeEapcZznbZtq7i4WO3bt6+2oHZNmt2dG4/How4dOjgdo8EkJCS4+l86qXlco8R1ug3X6R7N4RqlxnGdp7tjcwIDigEAgKtQbgAAgKtQblwqEAho9uzZCgQCTkepN83hGiWu0224TvdoDtcoNc3rbHYDigEAgLtx5wYAALgK5QYAALgK5QYAALgK5QYAALgK5cZF5s6dq6FDhyo+Pl4pKSm68sortWPHDqdjRd2jjz6q888/PzKhVE5Ojl5++WWnY9WrBx98UIZh6I477nA6StTdf//9Mgyj2lfPnj2djhV1+/bt0/XXX6+2bdsqLi5O/fr106ZNm5yOFVVZWVkn/b00DENTp051OlpUmaap++67T507d1ZcXJy6du2qBx544IzWPGpqiouLdccdd6hTp06Ki4vT8OHDtXHjRqdjnVazm6HYzd58801NnTpVQ4cOVTgc1t13361Ro0bpo48+UsuWLZ2OFzUdOnTQgw8+qO7du8u2bT3xxBP6/ve/r/fee099+vRxOl7Ubdy4UX/84x91/vnnOx2l3vTp00evvfZa5LXP567/NB09elQjRozQyJEj9fLLL6tdu3b65JNPlJSU5HS0qNq4caNM04y8/uCDD3TppZfqhz/8oYOpou+hhx7So48+qieeeEJ9+vTRpk2bNGnSJCUmJur22293Ol5U3XTTTfrggw/01FNPqX379vrzn/+s3NxcffTRR8rIyHA6Xu1suNbBgwdtSfabb77pdJR6l5SUZC9ZssTpGFFXXFxsd+/e3X711Vftiy66yJ42bZrTkaJu9uzZdv/+/Z2OUa9mzJhhf/e733U6RoObNm2a3bVrV9uyLKejRNWYMWPsyZMnV9v2gx/8wL7uuuscSlQ/jh07Znu9Xvuf//xnte2DBg2y77nnHodSnRk+lnKxoqIiSVKbNm0cTlJ/TNPUs88+q9LSUuXk5DgdJ+qmTp2qMWPGKDc31+ko9eqTTz5R+/bt1aVLF1133XXKz893OlJU/f3vf9eQIUP0wx/+UCkpKRo4cKAWL17sdKx6VVFRoT//+c+aPHmy6xYpHj58uNasWaOdO3dKkt5//32tW7dOl19+ucPJoiscDss0TcXGxlbbHhcXp3Xr1jmU6gw53a5QP0zTtMeMGWOPGDHC6Sj1YuvWrXbLli1tr9drJyYm2itWrHA6UtQ988wzdt++fe3jx4/btm279s7NypUr7b/85S/2+++/b69atcrOycmxO3bsaAeDQaejRU0gELADgYCdl5dnv/vuu/Yf//hHOzY21n788cedjlZvli9fbnu9Xnvfvn1OR4k60zTtGTNm2IZh2D6fzzYMw54zZ47TsepFTk6OfdFFF9n79u2zw+Gw/dRTT9kej8c+77zznI52SpQbl7rlllvsTp062Xv37nU6Sr0oLy+3P/nkE3vTpk32zJkz7eTkZPvDDz90OlbU5Ofn2ykpKfb7778f2ebWcvNtR48etRMSElz1MaPf77dzcnKqbfvJT35if+c733EoUf0bNWqUPXbsWKdj1ItnnnnG7tChg/3MM8/YW7dutZ988km7TZs2riyru3btsi+88EJbku31eu2hQ4fa1113nd2zZ0+no50S5caFpk6danfo0MHevXu301EazCWXXGLffPPNTseImr/97W+R/5ic+JJkG4Zhe71eOxwOOx2xXg0ZMsSeOXOm0zGipmPHjvaPf/zjatv+8Ic/2O3bt3coUf3as2eP7fF47BdffNHpKPWiQ4cO9iOPPFJt2wMPPGD36NHDoUT1r6SkxN6/f79t27Z9zTXX2FdccYXDiU6NMTcuYtu2brvtNv3tb3/T66+/rs6dOzsdqcFYlqXy8nKnY0TNJZdcom3btmnLli2RryFDhui6667Tli1b5PV6nY5Yb0pKSvTpp58qPT3d6ShRM2LEiJOmZdi5c6c6derkUKL69dhjjyklJUVjxoxxOkq9OHbsmDye6r8+vV6vLMtyKFH9a9mypdLT03X06FGtXr1a3//+952OdEruet6ymZs6daqWLVuml156SfHx8SooKJAkJSYmKi4uzuF00ZOXl6fLL79cHTt2VHFxsZYtW6a1a9dq9erVTkeLmvj4ePXt27fatpYtW6pt27YnbW/q7rrrLo0bN06dOnXS/v37NXv2bHm9Xl177bVOR4uaO++8U8OHD9ecOXN0zTXXaMOGDVq0aJEWLVrkdLSosyxLjz32mCZOnOi6R/pPGDdunH71q1+pY8eO6tOnj9577z3NmzdPkydPdjpa1K1evVq2batHjx7atWuXfvrTn6pnz56aNGmS09FOzelbR4geSTV+PfbYY05Hi6rJkyfbnTp1smNiYux27drZl1xyif3KK684HaveuXXMzfjx4+309HQ7JibGzsjIsMePH2/v2rXL6VhR949//MPu27evHQgE7J49e9qLFi1yOlK9WL16tS3J3rFjh9NR6k0wGLSnTZtmd+zY0Y6NjbW7dOli33PPPXZ5ebnT0aJu+fLldpcuXeyYmBg7LS3Nnjp1qv3VV185Heu0DNt24ZSKAACg2WLMDQAAcBXKDQAAcBXKDQAAcBXKDQAAcBXKDQAAcBXKDQAAcBXKDQAAcBXKDQAAcBXKDQCcgfvvv18DBgxwOgaAM0C5AXBGbrzxRl155ZXVXhuGoVtuueWkY6dOnSrDMHTjjTeedLxhGPL7/UpNTdWll16qpUuXnrTgYFZWVuRYr9er9u3b68c//rGOHj16yozfPK9Fixbq16+flixZUudrNQxDL774YrVtd911l9asWVPn9wLQ8Cg3AM5aZmamnn32WR0/fjyyraysTMuWLVPHjh1POv6yyy7TgQMHtGfPHr388ssaOXKkpk2bprFjxyocDlc79he/+IUOHDig/Px8Pf3003rrrbd0++23nzbTifM++OADXX/99ZoyZYpefvnlc77WVq1aqW3btuf8PgDqH+UGwFkbNGiQMjMz9cILL0S2vfDCC+rYsaMGDhx40vGBQEBpaWnKyMjQoEGDdPfdd+ull17Syy+/rMcff7zasfHx8ZFjR44cqYkTJ+rdd989baYT53Xp0kUzZsxQmzZt9Oqrr0b2b9y4UZdeeqmSk5OVmJioiy66qNr7ZmVlSZKuuuoqGYYRef3tj6VO3Mn67W9/q/T0dLVt21ZTp05VKBSKHHPgwAGNGTNGcXFx6ty5s5YtW6asrCzNnz//tNcB4OxRbgCck8mTJ+uxxx6LvF66dKkmTZp0xudffPHF6t+/f7WC9G379u3TP/7xD2VnZ5/x+1qWpeeff15Hjx5VTExMZHtxcbEmTpyodevW6V//+pe6d++uK664QsXFxZIqy48kPfbYYzpw4EDkdU3eeOMNffrpp3rjjTf0xBNP6PHHH69W0iZMmKD9+/dr7dq1ev7557Vo0SIdPHjwjK8BwNmh3AA4J9dff73WrVunzz//XJ9//rnefvttXX/99XV6j549e2rPnj3Vts2YMUOtWrVSXFycOnToIMMwNG/evNO+14nzAoGArr76aiUlJemmm26K7L/44ot1/fXXq2fPnurVq5cWLVqkY8eO6c0335QktWvXTpLUunVrpaWlRV7XJCkpSY888oh69uypsWPHasyYMZFxOdu3b9drr72mxYsXKzs7W4MGDdKSJUuqfYQHoH5QbgCck3bt2mnMmDF6/PHH9dhjj2nMmDFKTk6u03vYti3DMKpt++lPf6otW7Zo69atkcIwZswYmaZ5yvc6cd7rr7+u7Oxs/e53v1O3bt0i+wsLCzVlyhR1795diYmJSkhIUElJifLz8+uUWZL69Okjr9cbeZ2enh65M7Njxw75fD4NGjQosr9bt25KSkqq888BUDc+pwMAaPomT56s2267TZK0YMGCOp//8ccfq3PnztW2JScnR0pJ9+7dNX/+fOXk5OiNN95Qbm5ure914rxu3brpueeeU79+/TRkyBD17t1bkjRx4kQdOXJEv//979WpUycFAgHl5OSooqKizrn9fn+114ZhnPTkF4CGx50bAOfssssuU0VFhUKhkEaPHl2nc19//XVt27ZN//Ef/3HK407cIanLxzqZmZkaP3688vLyItvefvtt3X777briiivUp08fBQIBHT58uNp5fr//tHeITqdHjx4Kh8N67733Itt27dp12sfZAZw77twAOGder1cff/xx5M+1KS8vV0FBgUzTVGFhoVatWqW5c+dq7NixmjBhQrVji4uLVVBQINu2tXfvXv3sZz9Tu3btNHz48DplmzZtmvr27atNmzZpyJAh6t69u5566ikNGTJEwWBQP/3pTxUXF1ftnKysLK1Zs0YjRoxQIBA4q4+SevbsqdzcXN1888169NFH5ff79d///d+Ki4s76SM4ANHFnRsAUZGQkKCEhIRTHrNq1Sqlp6crKytLl112md544w39z//8j1566aWTStGsWbOUnp6u9u3ba+zYsWrZsqVeeeWVOs8107t3b40aNUqzZs2SJP3pT3/S0aNHNWjQIN1www26/fbblZKSUu2chx9+WK+++qoyMzNrfKT9TD355JNKTU3VhRdeqKuuukpTpkxRfHy8YmNjz/o9AZyeYdu27XQIAGgOvvjiC2VmZuq1117TJZdc4nQcwLUoNwBQT15//XWVlJSoX79+OnDggH72s59p37592rlz50mDkQFED2NuAKCehEIh3X333dq9e7fi4+M1fPhwPf300xQboJ5x5wYAALgKA4oBAICrUG4AAICrUG4AAICrUG4AAICrUG4AAICrUG4AAICrUG4AAICrUG4AAICr/P/Rj8DcLjf+2gAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# YOUR SOLUTION HERE" ] }, { "cell_type": "markdown", "metadata": { "id": "_yRa45NKTG6h" }, "source": [ "## A bit more histogram with altair\n", "\n", "As you may remember, you can get a pandas dataframe from `vega_datasets` package and use it to create visualizations. But, if you use `altair`, you can simply pass the URL instead of the actual data." ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 36 }, "execution": { "iopub.execute_input": "2020-06-14T19:57:43.058Z", "iopub.status.busy": "2020-06-14T19:57:43.042Z", "iopub.status.idle": "2020-06-14T19:57:43.092Z", "shell.execute_reply": "2020-06-14T19:57:43.108Z" }, "executionInfo": { "elapsed": 138, "status": "ok", "timestamp": 1687818484772, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "i5tVwCoUTG6h", "jupyter": { "outputs_hidden": false }, "outputId": "f2d50db3-0a7e-4dbb-8e4c-73112fb813e2" }, "outputs": [ { "data": { "text/plain": [ "'https://cdn.jsdelivr.net/npm/vega-datasets@v1.29.0/data/movies.json'" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vega_datasets.data.movies.url" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "execution": { "iopub.execute_input": "2020-06-14T19:57:43.771Z", "iopub.status.busy": "2020-06-14T19:57:43.755Z", "iopub.status.idle": "2020-06-14T19:57:43.806Z", "shell.execute_reply": "2020-06-14T19:57:43.821Z" }, "executionInfo": { "elapsed": 12, "status": "ok", "timestamp": 1687818484928, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "ovK3CJblTG6i", "jupyter": { "outputs_hidden": false }, "outputId": "148eff64-dbe9-44d0-bcca-a4e775aac584" }, "outputs": [ { "data": { "text/plain": [ "RendererRegistry.enable('jupyterlab')" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Choose based on your environment\n", "alt.renderers.enable('jupyterlab')\n", "# alt.renderers.enable('notebook')" ] }, { "cell_type": "markdown", "metadata": { "id": "lwcVA0LxTG6i" }, "source": [ "As mentioned before, in `altair` histogram is not special. It is just a plot that use bars (`mark_bar()`) where X axis is defined by `IMDB_Rating` with bins (`bin=True`), and Y axis is defined by `count()` aggregation function." ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 108 }, "execution": { "iopub.execute_input": "2020-06-14T19:57:44.724Z", "iopub.status.busy": "2020-06-14T19:57:44.708Z", "iopub.status.idle": "2020-06-14T19:57:44.757Z", "shell.execute_reply": "2020-06-14T19:57:44.817Z" }, "executionInfo": { "elapsed": 11, "status": "ok", "timestamp": 1687818484929, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "h048hIgETG6i", "jupyter": { "outputs_hidden": false }, "outputId": "2729bc70-08cd-4c5b-e569-76c73bf8cbb6" }, "outputs": [ { "data": { "application/vnd.vegalite.v5+json": { "$schema": "https://vega.github.io/schema/vega-lite/v5.17.0.json", "config": { "view": { "continuousHeight": 300, "continuousWidth": 300 } }, "data": { "url": "https://cdn.jsdelivr.net/npm/vega-datasets@v1.29.0/data/movies.json" }, "encoding": { "x": { "bin": true, "field": "IMDB_Rating", "type": "quantitative" }, "y": { "aggregate": "count", "type": "quantitative" } }, "mark": { "type": "bar" } }, "text/plain": [ "\n", "\n", "If you see this message, it means the renderer has not been properly enabled\n", "for the frontend that you are using. For more information, see\n", "https://altair-viz.github.io/user_guide/display_frontends.html#troubleshooting\n" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "alt.Chart(vega_datasets.data.movies.url).mark_bar().encode(\n", " alt.X(\"IMDB_Rating:Q\", bin=True),\n", " alt.Y('count()')\n", ")" ] }, { "cell_type": "markdown", "metadata": { "id": "KrhwH6I1TG6i" }, "source": [ "Have you noted that it is `IMDB_Rating:Q` not `IMDB_Rating`? This is a shorthand for" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 108 }, "execution": { "iopub.execute_input": "2020-06-14T19:57:45.826Z", "iopub.status.busy": "2020-06-14T19:57:45.808Z", "iopub.status.idle": "2020-06-14T19:57:45.861Z", "shell.execute_reply": "2020-06-14T19:57:45.890Z" }, "executionInfo": { "elapsed": 24, "status": "ok", "timestamp": 1687818485080, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "Jna8_X-MTG6i", "jupyter": { "outputs_hidden": false }, "outputId": "11a8b01b-03f5-4d69-c124-cce4b583a2d9" }, "outputs": [ { "data": { "application/vnd.vegalite.v5+json": { "$schema": "https://vega.github.io/schema/vega-lite/v5.17.0.json", "config": { "view": { "continuousHeight": 300, "continuousWidth": 300 } }, "data": { "url": "https://cdn.jsdelivr.net/npm/vega-datasets@v1.29.0/data/movies.json" }, "encoding": { "x": { "bin": true, "field": "IMDB_Rating", "type": "quantitative" }, "y": { "aggregate": "count", "type": "quantitative" } }, "mark": { "type": "bar" } }, "text/plain": [ "\n", "\n", "If you see this message, it means the renderer has not been properly enabled\n", "for the frontend that you are using. For more information, see\n", "https://altair-viz.github.io/user_guide/display_frontends.html#troubleshooting\n" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "alt.Chart(vega_datasets.data.movies.url).mark_bar().encode(\n", " alt.X('IMDB_Rating', type='quantitative', bin=True),\n", " alt.Y(aggregate='count', type='quantitative')\n", ")" ] }, { "cell_type": "markdown", "metadata": { "id": "PXWdvT7XTG6i" }, "source": [ "In altair, you want to specify the data types using one of the four categories: quantitative, ordinal, nominal, and temporal. https://altair-viz.github.io/user_guide/encoding.html#data-types" ] }, { "cell_type": "markdown", "metadata": { "id": "07Qhm4sZTG6i" }, "source": [ "Although you can adjust the bins in `altair`, it does not encourage you to set the bins directly. For instance, although there is `step` parameter that directly sets the bin size, there are parameters such as `maxbins` (maximum number of bins) or `minstep` (minimum allowable step size), or `nice` (attemps to make the bin boundaries more human-friendly), that encourage you not to specify the bins directly." ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 108 }, "execution": { "iopub.execute_input": "2020-06-14T19:57:48.350Z", "iopub.status.busy": "2020-06-14T19:57:48.333Z", "iopub.status.idle": "2020-06-14T19:57:48.386Z", "shell.execute_reply": "2020-06-14T19:57:48.414Z" }, "executionInfo": { "elapsed": 21, "status": "ok", "timestamp": 1687818485080, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "6fg-viz1TG6i", "jupyter": { "outputs_hidden": false }, "outputId": "3c6ba6e4-afc4-4819-dc3f-ed276f5fbc59" }, "outputs": [ { "data": { "application/vnd.vegalite.v5+json": { "$schema": "https://vega.github.io/schema/vega-lite/v5.17.0.json", "config": { "view": { "continuousHeight": 300, "continuousWidth": 300 } }, "data": { "url": "https://cdn.jsdelivr.net/npm/vega-datasets@v1.29.0/data/movies.json" }, "encoding": { "x": { "bin": { "step": 0.09 }, "field": "IMDB_Rating", "type": "quantitative" }, "y": { "aggregate": "count", "type": "quantitative" } }, "mark": { "type": "bar" } }, "text/plain": [ "\n", "\n", "If you see this message, it means the renderer has not been properly enabled\n", "for the frontend that you are using. For more information, see\n", "https://altair-viz.github.io/user_guide/display_frontends.html#troubleshooting\n" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from altair import Bin\n", "\n", "alt.Chart(vega_datasets.data.movies.url).mark_bar().encode(\n", " alt.X(\"IMDB_Rating:Q\", bin=Bin(step=0.09)),\n", " alt.Y('count()')\n", ")" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 108 }, "execution": { "iopub.execute_input": "2020-06-14T19:57:49.339Z", "iopub.status.busy": "2020-06-14T19:57:49.320Z", "iopub.status.idle": "2020-06-14T19:57:49.373Z", "shell.execute_reply": "2020-06-14T19:57:49.401Z" }, "executionInfo": { "elapsed": 20, "status": "ok", "timestamp": 1687818485081, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "lhrilAaATG6j", "jupyter": { "outputs_hidden": false }, "outputId": "530289a0-fa70-4eda-a05e-90caa03bc646" }, "outputs": [ { "data": { "application/vnd.vegalite.v5+json": { "$schema": "https://vega.github.io/schema/vega-lite/v5.17.0.json", "config": { "view": { "continuousHeight": 300, "continuousWidth": 300 } }, "data": { "url": "https://cdn.jsdelivr.net/npm/vega-datasets@v1.29.0/data/movies.json" }, "encoding": { "x": { "bin": { "maxbins": 20, "nice": true }, "field": "IMDB_Rating", "type": "quantitative" }, "y": { "aggregate": "count", "type": "quantitative" } }, "mark": { "type": "bar" } }, "text/plain": [ "\n", "\n", "If you see this message, it means the renderer has not been properly enabled\n", "for the frontend that you are using. For more information, see\n", "https://altair-viz.github.io/user_guide/display_frontends.html#troubleshooting\n" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "alt.Chart(vega_datasets.data.movies.url).mark_bar().encode(\n", " alt.X(\"IMDB_Rating:Q\", bin=Bin(nice=True, maxbins=20)),\n", " alt.Y('count()')\n", ")" ] }, { "cell_type": "markdown", "metadata": { "id": "B6I7ZhwUTG6j" }, "source": [ "### Composing charts in altair\n", "\n", "`altair` has a very nice way to compose multiple plots. Two histograms side by side? just do the following." ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "execution": { "iopub.execute_input": "2020-06-14T19:57:50.814Z", "iopub.status.busy": "2020-06-14T19:57:50.798Z", "iopub.status.idle": "2020-06-14T19:57:50.842Z", "shell.execute_reply": "2020-06-14T19:57:50.859Z" }, "executionInfo": { "elapsed": 156, "status": "ok", "timestamp": 1687818529552, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "xPmv3BSrTG6j" }, "outputs": [], "source": [ "chart1 = alt.Chart(vega_datasets.data.movies.url).mark_bar().encode(\n", " alt.X(\"IMDB_Rating:Q\", bin=Bin(step=0.1)),\n", " alt.Y('count()')\n", ").properties(\n", " width=300,\n", " height=150\n", ")\n", "chart2 = alt.Chart(vega_datasets.data.movies.url).mark_bar().encode(\n", " alt.X(\"IMDB_Rating:Q\", bin=Bin(nice=True, maxbins=20)),\n", " alt.Y('count()')\n", ").properties(\n", " width=300,\n", " height=150\n", ")" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 108 }, "execution": { "iopub.execute_input": "2020-06-14T19:57:52.890Z", "iopub.status.busy": "2020-06-14T19:57:52.874Z", "iopub.status.idle": "2020-06-14T19:57:52.923Z", "shell.execute_reply": "2020-06-14T19:57:52.953Z" }, "executionInfo": { "elapsed": 10, "status": "ok", "timestamp": 1687818530196, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "ysVDBmkHTG6j", "jupyter": { "outputs_hidden": false }, "outputId": "cb97ec72-7ae3-4472-e672-08aa74e3b5af" }, "outputs": [ { "data": { "application/vnd.vegalite.v5+json": { "$schema": "https://vega.github.io/schema/vega-lite/v5.17.0.json", "config": { "view": { "continuousHeight": 300, "continuousWidth": 300 } }, "hconcat": [ { "data": { "url": "https://cdn.jsdelivr.net/npm/vega-datasets@v1.29.0/data/movies.json" }, "encoding": { "x": { "bin": { "step": 0.1 }, "field": "IMDB_Rating", "type": "quantitative" }, "y": { "aggregate": "count", "type": "quantitative" } }, "height": 150, "mark": { "type": "bar" }, "width": 300 }, { "data": { "url": "https://cdn.jsdelivr.net/npm/vega-datasets@v1.29.0/data/movies.json" }, "encoding": { "x": { "bin": { "maxbins": 20, "nice": true }, "field": "IMDB_Rating", "type": "quantitative" }, "y": { "aggregate": "count", "type": "quantitative" } }, "height": 150, "mark": { "type": "bar" }, "width": 300 } ] }, "text/plain": [ "\n", "\n", "If you see this message, it means the renderer has not been properly enabled\n", "for the frontend that you are using. For more information, see\n", "https://altair-viz.github.io/user_guide/display_frontends.html#troubleshooting\n" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "chart1 | chart2" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 108 }, "execution": { "iopub.execute_input": "2020-06-14T19:57:53.433Z", "iopub.status.busy": "2020-06-14T19:57:53.415Z", "iopub.status.idle": "2020-06-14T19:57:53.469Z", "shell.execute_reply": "2020-06-14T19:57:53.502Z" }, "executionInfo": { "elapsed": 11, "status": "ok", "timestamp": 1687818530827, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "4V9T406iTG6j", "jupyter": { "outputs_hidden": false }, "outputId": "e90872a0-239a-4dca-d2a3-87edae091c74" }, "outputs": [ { "data": { "application/vnd.vegalite.v5+json": { "$schema": "https://vega.github.io/schema/vega-lite/v5.17.0.json", "config": { "view": { "continuousHeight": 300, "continuousWidth": 300 } }, "hconcat": [ { "data": { "url": "https://cdn.jsdelivr.net/npm/vega-datasets@v1.29.0/data/movies.json" }, "encoding": { "x": { "bin": { "step": 0.1 }, "field": "IMDB_Rating", "type": "quantitative" }, "y": { "aggregate": "count", "type": "quantitative" } }, "height": 150, "mark": { "type": "bar" }, "width": 300 }, { "data": { "url": "https://cdn.jsdelivr.net/npm/vega-datasets@v1.29.0/data/movies.json" }, "encoding": { "x": { "bin": { "maxbins": 20, "nice": true }, "field": "IMDB_Rating", "type": "quantitative" }, "y": { "aggregate": "count", "type": "quantitative" } }, "height": 150, "mark": { "type": "bar" }, "width": 300 } ] }, "text/plain": [ "\n", "\n", "If you see this message, it means the renderer has not been properly enabled\n", "for the frontend that you are using. For more information, see\n", "https://altair-viz.github.io/user_guide/display_frontends.html#troubleshooting\n" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "alt.hconcat(chart1, chart2)" ] }, { "cell_type": "markdown", "metadata": { "id": "J2H-DmilTG6j" }, "source": [ "Vertical commposition?" ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 108 }, "execution": { "iopub.execute_input": "2020-06-14T19:57:55.011Z", "iopub.status.busy": "2020-06-14T19:57:54.929Z", "iopub.status.idle": "2020-06-14T19:57:55.080Z", "shell.execute_reply": "2020-06-14T19:57:55.113Z" }, "executionInfo": { "elapsed": 447, "status": "ok", "timestamp": 1687818531762, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "XqiQlLJwTG6j", "jupyter": { "outputs_hidden": false }, "outputId": "b4f414f9-d5af-4630-801c-b1f0980d1338" }, "outputs": [ { "data": { "application/vnd.vegalite.v5+json": { "$schema": "https://vega.github.io/schema/vega-lite/v5.17.0.json", "config": { "view": { "continuousHeight": 300, "continuousWidth": 300 } }, "vconcat": [ { "data": { "url": "https://cdn.jsdelivr.net/npm/vega-datasets@v1.29.0/data/movies.json" }, "encoding": { "x": { "bin": { "step": 0.1 }, "field": "IMDB_Rating", "type": "quantitative" }, "y": { "aggregate": "count", "type": "quantitative" } }, "height": 150, "mark": { "type": "bar" }, "width": 300 }, { "data": { "url": "https://cdn.jsdelivr.net/npm/vega-datasets@v1.29.0/data/movies.json" }, "encoding": { "x": { "bin": { "maxbins": 20, "nice": true }, "field": "IMDB_Rating", "type": "quantitative" }, "y": { "aggregate": "count", "type": "quantitative" } }, "height": 150, "mark": { "type": "bar" }, "width": 300 } ] }, "text/plain": [ "\n", "\n", "If you see this message, it means the renderer has not been properly enabled\n", "for the frontend that you are using. For more information, see\n", "https://altair-viz.github.io/user_guide/display_frontends.html#troubleshooting\n" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "alt.vconcat(chart1, chart2)" ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 108 }, "execution": { "iopub.execute_input": "2020-06-14T19:57:56.070Z", "iopub.status.busy": "2020-06-14T19:57:56.051Z", "iopub.status.idle": "2020-06-14T19:57:56.107Z", "shell.execute_reply": "2020-06-14T19:57:56.143Z" }, "executionInfo": { "elapsed": 14, "status": "ok", "timestamp": 1687818531763, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "lNNGnNF9TG6k", "jupyter": { "outputs_hidden": false }, "outputId": "c3de22f3-1815-45c9-85d8-279f43b6fb59" }, "outputs": [ { "data": { "application/vnd.vegalite.v5+json": { "$schema": "https://vega.github.io/schema/vega-lite/v5.17.0.json", "config": { "view": { "continuousHeight": 300, "continuousWidth": 300 } }, "vconcat": [ { "data": { "url": "https://cdn.jsdelivr.net/npm/vega-datasets@v1.29.0/data/movies.json" }, "encoding": { "x": { "bin": { "step": 0.1 }, "field": "IMDB_Rating", "type": "quantitative" }, "y": { "aggregate": "count", "type": "quantitative" } }, "height": 150, "mark": { "type": "bar" }, "width": 300 }, { "data": { "url": "https://cdn.jsdelivr.net/npm/vega-datasets@v1.29.0/data/movies.json" }, "encoding": { "x": { "bin": { "maxbins": 20, "nice": true }, "field": "IMDB_Rating", "type": "quantitative" }, "y": { "aggregate": "count", "type": "quantitative" } }, "height": 150, "mark": { "type": "bar" }, "width": 300 } ] }, "text/plain": [ "\n", "\n", "If you see this message, it means the renderer has not been properly enabled\n", "for the frontend that you are using. For more information, see\n", "https://altair-viz.github.io/user_guide/display_frontends.html#troubleshooting\n" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "chart1 & chart2" ] }, { "cell_type": "markdown", "metadata": { "id": "jAIuSQfmTG6k" }, "source": [ "Shall we avoid some repetitions? You can define a *base* empty chart first and then assign encodings later when you put together multiple charts together. Here is an example: https://altair-viz.github.io/user_guide/compound_charts.html#repeated-charts\n", "\n", "**Q: Using the base chart approach to create a 2x2 chart where the top row shows the two histograms of `IMDB_Rating` with `maxbins`=10 and 50 respectively, and the bottom row shows another two histograms of `IMDB_Votes` with `maxbins`=10 and 50.**" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 108 }, "execution": { "iopub.execute_input": "2020-06-14T19:57:57.894Z", "iopub.status.busy": "2020-06-14T19:57:57.878Z", "iopub.status.idle": "2020-06-14T19:57:57.930Z", "shell.execute_reply": "2020-06-14T19:57:57.969Z" }, "executionInfo": { "elapsed": 13, "status": "ok", "timestamp": 1687818532588, "user": { "displayName": "Vincent Wong", "userId": "06927694896148305320" }, "user_tz": 240 }, "id": "Z8y3XrhmTG6k", "jupyter": { "outputs_hidden": false }, "outputId": "28095dd2-5f7b-4134-b4ef-9f5d92dd447b" }, "outputs": [ { "data": { "application/vnd.vegalite.v5+json": { "$schema": "https://vega.github.io/schema/vega-lite/v5.17.0.json", "config": { "view": { "continuousHeight": 300, "continuousWidth": 300 } }, "data": { "url": "https://cdn.jsdelivr.net/npm/vega-datasets@v1.29.0/data/movies.json" }, "vconcat": [ { "hconcat": [ { "encoding": { "x": { "bin": { "maxbins": 10 }, "field": "IMDB_Rating", "type": "quantitative" }, "y": { "aggregate": "count", "type": "quantitative" } }, "height": 150, "mark": { "type": "bar" }, "width": 200 }, { "encoding": { "x": { "bin": { "maxbins": 50 }, "field": "IMDB_Rating", "type": "quantitative" }, "y": { "aggregate": "count", "type": "quantitative" } }, "height": 150, "mark": { "type": "bar" }, "width": 200 } ] }, { "hconcat": [ { "encoding": { "x": { "bin": { "maxbins": 10 }, "field": "IMDB_Votes", "type": "quantitative" }, "y": { "aggregate": "count", "type": "quantitative" } }, "height": 150, "mark": { "type": "bar" }, "width": 200 }, { "encoding": { "x": { "bin": { "maxbins": 50 }, "field": "IMDB_Votes", "type": "quantitative" }, "y": { "aggregate": "count", "type": "quantitative" } }, "height": 150, "mark": { "type": "bar" }, "width": 200 } ] } ] }, "text/plain": [ "\n", "\n", "If you see this message, it means the renderer has not been properly enabled\n", "for the frontend that you are using. For more information, see\n", "https://altair-viz.github.io/user_guide/display_frontends.html#troubleshooting\n" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# YOUR SOLUTION HERE\n" ] } ], "metadata": { "anaconda-cloud": {}, "colab": { "provenance": [] }, "kernel_info": { "name": "dviz" }, "kernelspec": { "display_name": "Python 3.9.13 64-bit", "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.12.3" }, "nteract": { "version": "0.23.3" }, "toc": { "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false }, "vscode": { "interpreter": { "hash": "b0fa6594d8f4cbf19f97940f81e996739fb7646882a419484c72d19e05852a7e" } } }, "nbformat": 4, "nbformat_minor": 0 }