{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "A6iFUUQLNDlE"
},
"source": [
"
"
]
},
{
"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",
" Title | \n",
" US_Gross | \n",
" Worldwide_Gross | \n",
" US_DVD_Sales | \n",
" Production_Budget | \n",
" Release_Date | \n",
" MPAA_Rating | \n",
" Running_Time_min | \n",
" Distributor | \n",
" Source | \n",
" Major_Genre | \n",
" Creative_Type | \n",
" Director | \n",
" Rotten_Tomatoes_Rating | \n",
" IMDB_Rating | \n",
" IMDB_Votes | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" The Land Girls | \n",
" 146083.0 | \n",
" 146083.0 | \n",
" NaN | \n",
" 8000000.0 | \n",
" Jun 12 1998 | \n",
" R | \n",
" NaN | \n",
" Gramercy | \n",
" None | \n",
" None | \n",
" None | \n",
" None | \n",
" NaN | \n",
" 6.1 | \n",
" 1071.0 | \n",
"
\n",
" \n",
" 1 | \n",
" First Love, Last Rites | \n",
" 10876.0 | \n",
" 10876.0 | \n",
" NaN | \n",
" 300000.0 | \n",
" Aug 07 1998 | \n",
" R | \n",
" NaN | \n",
" Strand | \n",
" None | \n",
" Drama | \n",
" None | \n",
" None | \n",
" NaN | \n",
" 6.9 | \n",
" 207.0 | \n",
"
\n",
" \n",
" 2 | \n",
" I Married a Strange Person | \n",
" 203134.0 | \n",
" 203134.0 | \n",
" NaN | \n",
" 250000.0 | \n",
" Aug 28 1998 | \n",
" None | \n",
" NaN | \n",
" Lionsgate | \n",
" None | \n",
" Comedy | \n",
" None | \n",
" None | \n",
" NaN | \n",
" 6.8 | \n",
" 865.0 | \n",
"
\n",
" \n",
" 3 | \n",
" Let's Talk About Sex | \n",
" 373615.0 | \n",
" 373615.0 | \n",
" NaN | \n",
" 300000.0 | \n",
" Sep 11 1998 | \n",
" None | \n",
" NaN | \n",
" Fine Line | \n",
" None | \n",
" Comedy | \n",
" None | \n",
" None | \n",
" 13.0 | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" 4 | \n",
" Slam | \n",
" 1009819.0 | \n",
" 1087521.0 | \n",
" NaN | \n",
" 1000000.0 | \n",
" Oct 09 1998 | \n",
" R | \n",
" NaN | \n",
" Trimark | \n",
" Original Screenplay | \n",
" Drama | \n",
" Contemporary Fiction | \n",
" None | \n",
" 62.0 | \n",
" 3.4 | \n",
" 165.0 | \n",
"
\n",
" \n",
"
\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": [
"