{ "cells": [ { "cell_type": "markdown", "id": "d2a3fe29-64a2-4786-b3dd-c84ae710d009", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "# Chapter 03: Data visualization\n", "\n", "```{contents} Table of Contents\n", ":depth: 3\n", "```\n", "\n", "Data visualization is another piece of exploratory data analysis. \n", "Visuals are, technically, a mapping from a dataset to some graphic.\n", "They are meant as summaries and not meant to be an exhaustive tabulation of all data points in a data frame. \n", "\n", "The foundation for plotting in Python is [matplotlib](https://matplotlib.org/stable/). \n", "We'll also explore the [seaborn visualization library](https://seaborn.pydata.org/), and, in the homework, you'll learn about another popular viz tool called [altair](https://altair-viz.github.io/). \n", "\n", "\n", "As our example, we'll use a classic dataset called the \"heart disease\" dataset.\n", "The abstract for this dataset reads\n", "\n", "*This data set dates from 1988 and consists of four databases: Cleveland, Hungary, Switzerland, and Long Beach V. It contains 76 attributes, including the predicted attribute, but all published experiments refer to using a subset of 14 of them. The \"target\" field refers to the presence of heart disease in the patient. It is integer valued 0 = no disease and 1 = disease.*" ] }, { "cell_type": "code", "execution_count": 21, "id": "c5796aae-534b-417e-9c8e-6b592f078c7f", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
agesexcptrestbpscholfbsrestecgthalachexangoldpeakslopecathaltarget
052101252120116801.02230
153101402031015513.10030
270101451740112512.60030
361101482030116100.02130
462001382941110601.91320
.............................................
102059111402210116410.02021
102160101252580014112.81130
102247101102750011811.01120
102350001102540015900.02021
102454101201880111301.41130
\n", "

1025 rows × 14 columns

\n", "
" ], "text/plain": [ " age sex cp trestbps chol fbs restecg thalach exang oldpeak \\\n", "0 52 1 0 125 212 0 1 168 0 1.0 \n", "1 53 1 0 140 203 1 0 155 1 3.1 \n", "2 70 1 0 145 174 0 1 125 1 2.6 \n", "3 61 1 0 148 203 0 1 161 0 0.0 \n", "4 62 0 0 138 294 1 1 106 0 1.9 \n", "... ... ... .. ... ... ... ... ... ... ... \n", "1020 59 1 1 140 221 0 1 164 1 0.0 \n", "1021 60 1 0 125 258 0 0 141 1 2.8 \n", "1022 47 1 0 110 275 0 0 118 1 1.0 \n", "1023 50 0 0 110 254 0 0 159 0 0.0 \n", "1024 54 1 0 120 188 0 1 113 0 1.4 \n", "\n", " slope ca thal target \n", "0 2 2 3 0 \n", "1 0 0 3 0 \n", "2 0 0 3 0 \n", "3 2 1 3 0 \n", "4 1 3 2 0 \n", "... ... .. ... ... \n", "1020 2 0 2 1 \n", "1021 1 1 3 0 \n", "1022 1 1 2 0 \n", "1023 2 0 2 1 \n", "1024 1 1 3 0 \n", "\n", "[1025 rows x 14 columns]" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd \n", "\n", "heart_disease = pd.read_csv(\"heart.csv\")\n", "heart_disease" ] }, { "cell_type": "markdown", "id": "cda665c1-3247-4861-86f1-4dd660ed214e", "metadata": {}, "source": [ "## Matplotlib \n", "\n", "Matplotlib was created by neurobiologist [John Hunter](https://en.wikipedia.org/wiki/John_D._Hunter) and since that time has grown to be the most popular plotting framework for Python.\n", "All the objects in a matplotlib plot are called \"artists\".\n", "There are two paradigms for generating a matplotlib plot: (1) object-oriented or (2) pyplot-style. \n", "\n", "### Object oriented\n", "\n", "The object-orientated style of producing matplotlib figures is to generate, and interact, with the figure and axes objects.\n", "The figure is considered the entire visualization.\n", "The figure typically contains one or more axes.\n", "\n", "To create a blank figure in matplotlib using this style you use the syntax\n", "```fig,ax = plt.subplots()```. \n", "This creates an empty figure pane and returns two objects: (1) the figure and (2) a single axis. " ] }, { "cell_type": "code", "execution_count": 22, "id": "a2a66f7c-d4ae-4046-9e7c-bc6f64516f6c", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "fig,ax = plt.subplots()" ] }, { "cell_type": "markdown", "id": "dde6b3b4-ddfd-4707-aaff-35d1e054ec10", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "When the function ```plt.subplots``` is not given any arguments, the default is to create a single axis.\n", "In matplotlib you can specify several axes easily. \n", "Axes are specified by dividing the figure into $r$ rows and $c$ columns. \n", "A figure object is returned and a matrix that contains all of the axes. " ] }, { "cell_type": "code", "execution_count": 23, "id": "a4d5e36d-dc9a-4d83-af06-458469cc90cf", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "fig,axs = plt.subplots(2,3)" ] }, { "cell_type": "code", "execution_count": 24, "id": "b4f24a6d-4f52-400b-8b9a-d1afcaa4b14c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ ]\n" ] } ], "source": [ "print(axs[0,:])" ] }, { "cell_type": "markdown", "id": "71ae17e1-1023-46d5-b457-340ee2403044", "metadata": {}, "source": [ "### Histogram - 1d\n", "\n", "The first graphic we will build is a histogram. \n", "Given a dataset $\\mathcal{D} = (d_{1},d_{2},\\cdots,d_{n})$ of amount or balance-type data, a histogram completes the following algorithm:\n", "1. Sort the values of $\\mathcal{D}$\n", "2. Partition the values into $B$ bins. Each bin has a lower bound $l$ and upper bound $u$\n", "3. For each bin $b$ in $B$ with lower bound $l_{b}$ nad upper bound $u_{b}$\n", " 1. Count the number of data points and call this $c_{b}$\n", " 2. Draw a rectangle where the left edge of the rectangle is at $l$, the right edge is at $u$, adn the height is at $c_{b}$.\n", "\n", "\n", "The histogram summarizes what values are most frequently observed, what values are rarely observed, and what values are not at all observed. \n", "Histograms can give the audience a quick summary of what values they may expect to see in the future from additional data points.\n", "Care must be taken when deciding on a partition. \n", "Different partitions will lead to different histogram visuals. \n", "\n", "Lets look at the histogram for age in the heart disease dataset.\n", "We will use the function ```hist``` in matplotlib. \n", "In the object-orientated style hist is an attribute of the axes in which you want to draw the graph. " ] }, { "cell_type": "code", "execution_count": 25, "id": "1c83151b-990e-49dc-829e-4bda271920d5", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(array([ 4., 39., 109., 125., 120., 205., 219., 149., 46., 9.]),\n", " array([29. , 33.8, 38.6, 43.4, 48.2, 53. , 57.8, 62.6, 67.4, 72.2, 77. ]),\n", " )" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAGdCAYAAAA44ojeAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAbEUlEQVR4nO3de2xX9f348VexUPHS1qK0dHLzCqgwBlttxM1JIyBzOplRwxZUptEVp3abQqKoyzaYc9NpFObmvMTbdIk6NeIYxjK3ioIxXqYMHA4ctjhZW+ArBen5/fGLn6yKl2Lr5936eCQnoeecfvr6vPMJfeZ8Li3IsiwLAICE9Mn3AAAA7yVQAIDkCBQAIDkCBQBIjkABAJIjUACA5AgUACA5AgUASE5hvgfYFe3t7bF+/frYe++9o6CgIN/jAAAfQ5ZlsWnTpqisrIw+fT78GkmPDJT169fH4MGD8z0GALAL1q1bF/vvv/+HntMjA2XvvfeOiP9/B4uLi/M8DQDwcbS2tsbgwYNzv8c/TI8MlHef1ikuLhYoANDDfJyXZ3iRLACQHIECACRHoAAAyREoAEByBAoAkByBAgAkR6AAAMkRKABAcgQKAJAcgQIAJEegAADJESgAQHIECgCQHIECACSnMN8DAPQGw2Y/ku8ROu21+VPzPQJ8IFdQAIDkCBQAIDkCBQBIjkABAJIjUACA5AgUACA5AgUASI5AAQCSI1AAgOQIFAAgOQIFAEiOQAEAkiNQAIDkCBQAIDkCBQBIjkABAJIjUACA5AgUACA5AgUASI5AAQCSI1AAgOQIFAAgOYX5HgDgvYbNfiTfIwB55goKAJAcgQIAJEegAADJ6VSgzJs3L774xS/G3nvvHQMHDoyTTjopVq5c2eGcrVu3Rm1tbQwYMCD22muvmDZtWjQ1NXU4Z+3atTF16tTYY489YuDAgfHDH/4w3nnnnU9+bwCAXqFTgVJfXx+1tbXx1FNPxeLFi2P79u1x3HHHxZYtW3LnXHTRRfHQQw/FfffdF/X19bF+/fo4+eSTc8d37NgRU6dOjW3btsXf/va3uO222+LWW2+NuXPndt29AgB6tIIsy7Jd/eY333wzBg4cGPX19fHlL385WlpaYr/99ou77rorvvnNb0ZExCuvvBIjR46MhoaGOPLII+PRRx+Nr33ta7F+/fooLy+PiIiFCxfGJZdcEm+++Wb069fvI39ua2trlJSUREtLSxQXF+/q+ECivIvn0/Ha/Kn5HoHPmM78/v5Er0FpaWmJiIiysrKIiFixYkVs3749ampqcueMGDEihgwZEg0NDRER0dDQEEcccUQuTiIiJk2aFK2trfHSSy/t9Oe0tbVFa2trhw0A6L12OVDa29vjwgsvjKOOOioOP/zwiIhobGyMfv36RWlpaYdzy8vLo7GxMXfO/8bJu8ffPbYz8+bNi5KSktw2ePDgXR0bAOgBdjlQamtr48UXX4x77rmnK+fZqTlz5kRLS0tuW7duXbf/TAAgf3bpk2RnzZoVDz/8cCxdujT233//3P6KiorYtm1bNDc3d7iK0tTUFBUVFblznn766Q639+67fN49572KioqiqKhoV0YFAHqgTl1BybIsZs2aFffff388/vjjMXz48A7Hx40bF3379o0lS5bk9q1cuTLWrl0b1dXVERFRXV0dL7zwQmzYsCF3zuLFi6O4uDhGjRr1Se4LANBLdOoKSm1tbdx1113x4IMPxt577517zUhJSUn0798/SkpKYubMmVFXVxdlZWVRXFwc559/flRXV8eRRx4ZERHHHXdcjBo1Kr797W/HVVddFY2NjXHppZdGbW2tqyQAQER0MlAWLFgQERHHHHNMh/233HJLnHHGGRERcc0110SfPn1i2rRp0dbWFpMmTYobb7wxd+5uu+0WDz/8cJx33nlRXV0de+65Z8yYMSN+9KMffbJ7AgD0Gp/oc1DyxeegQO/mc1A+HT4HhU/bp/Y5KAAA3UGgAADJESgAQHIECgCQHIECACRHoAAAyREoAEByBAoAkByBAgAkR6AAAMkRKABAcgQKAJAcgQIAJEegAADJESgAQHIECgCQHIECACRHoAAAyREoAEByBAoAkByBAgAkR6AAAMkRKABAcgQKAJAcgQIAJEegAADJESgAQHIECgCQHIECACRHoAAAyREoAEByBAoAkByBAgAkR6AAAMkRKABAcgQKAJAcgQIAJEegAADJESgAQHIECgCQHIECACRHoAAAyREoAEByBAoAkByBAgAkR6AAAMkRKABAcgQKAJAcgQIAJEegAADJESgAQHIECgCQHIECACRHoAAAyREoAEByBAoAkByBAgAkR6AAAMkRKABAcgQKAJAcgQIAJEegAADJESgAQHIECgCQHIECACRHoAAAyREoAEByBAoAkByBAgAkp9OBsnTp0jjhhBOisrIyCgoK4oEHHuhw/IwzzoiCgoIO2+TJkzucs3Hjxpg+fXoUFxdHaWlpzJw5MzZv3vyJ7ggA0Ht0OlC2bNkSY8aMiRtuuOEDz5k8eXK88cYbue3uu+/ucHz69Onx0ksvxeLFi+Phhx+OpUuXxjnnnNP56QGAXqmws98wZcqUmDJlyoeeU1RUFBUVFTs99vLLL8eiRYvimWeeifHjx0dExPXXXx/HH398XH311VFZWdnZkQCAXqZbXoPyxBNPxMCBA+PQQw+N8847L956663csYaGhigtLc3FSURETU1N9OnTJ5YtW7bT22tra4vW1tYOGwDQe3V5oEyePDluv/32WLJkSfzsZz+L+vr6mDJlSuzYsSMiIhobG2PgwIEdvqewsDDKysqisbFxp7c5b968KCkpyW2DBw/u6rEBgIR0+imej3Laaafl/n3EEUfE6NGj48ADD4wnnngiJk6cuEu3OWfOnKirq8t93draKlIAoBfr8kB5rwMOOCD23XffWL16dUycODEqKipiw4YNHc555513YuPGjR/4upWioqIoKirq7lEBPlOGzX4k3yN02mvzp+Z7BD4l3f45KK+//nq89dZbMWjQoIiIqK6ujubm5lixYkXunMcffzza29ujqqqqu8cBAHqATl9B2bx5c6xevTr39Zo1a+K5556LsrKyKCsriyuvvDKmTZsWFRUV8eqrr8bFF18cBx10UEyaNCkiIkaOHBmTJ0+Os88+OxYuXBjbt2+PWbNmxWmnneYdPABAROzCFZTly5fH2LFjY+zYsRERUVdXF2PHjo25c+fGbrvtFs8//3x8/etfj0MOOSRmzpwZ48aNi7/85S8dnqK58847Y8SIETFx4sQ4/vjjY8KECXHTTTd13b0CAHq0Tl9BOeaYYyLLsg88/thjj33kbZSVlcVdd93V2R8NAHxG+Fs8AEByBAoAkByBAgAkR6AAAMkRKABAcgQKAJAcgQIAJEegAADJESgAQHIECgCQHIECACRHoAAAyREoAEByBAoAkByBAgAkR6AAAMkRKABAcgQKAJAcgQIAJEegAADJESgAQHIECgCQHIECACRHoAAAyREoAEByBAoAkByBAgAkR6AAAMkRKABAcgQKAJAcgQIAJEegAADJESgAQHIK8z0A9CTDZj+S7xE6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uueHdU9HQfZx3usDAPAp8rd4AIDkCBQAIDkCBQBIjkABAJIjUD7AggULYvTo0bkP66muro5HH300d3zr1q1RW1sbAwYMiL322iumTZv2vg+e45ObP39+FBQUxIUXXpjbZ+273hVXXBEFBQUdthEjRuSOW/Pu8+9//zu+9a1vxYABA6J///5xxBFHxPLly3PHsyyLuXPnxqBBg6J///5RU1MTq1atyuPEPd+wYcPe93gvKCiI2traiPB4T4VA+QD7779/zJ8/P1asWBHLly+PY489Nk488cR46aWXIiLioosuioceeijuu+++qK+vj/Xr18fJJ5+c56l7l2eeeSZ+/etfx+jRozvst/bd47DDDos33ngjtz355JO5Y9a8e/z3v/+No446Kvr27RuPPvpo/P3vf49f/OIXsc8+++TOueqqq+K6666LhQsXxrJly2LPPfeMSZMmxdatW/M4ec/2zDPPdHisL168OCIiTjnllIjweE9Gxse2zz77ZL/97W+z5ubmrG/fvtl9992XO/byyy9nEZE1NDTkccLeY9OmTdnBBx+cLV68OPvKV76SXXDBBVmWZda+m1x++eXZmDFjdnrMmnefSy65JJswYcIHHm9vb88qKiqyn//857l9zc3NWVFRUXb33Xd/GiN+JlxwwQXZgQcemLW3t3u8J8QVlI9hx44dcc8998SWLVuiuro6VqxYEdu3b4+amprcOSNGjIghQ4ZEQ0NDHiftPWpra2Pq1Kkd1jgirH03WrVqVVRWVsYBBxwQ06dPj7Vr10aENe9Of/zjH2P8+PFxyimnxMCBA2Ps2LHxm9/8Jnd8zZo10djY2GHtS0pKoqqqytp3kW3btsUdd9wRZ511VhQUFHi8J0SgfIgXXngh9tprrygqKopzzz037r///hg1alQ0NjZGv3793vcHC8vLy6OxsTE/w/Yi99xzTzz77LMxb9689x2z9t2jqqoqbr311li0aFEsWLAg1qxZE0cffXRs2rTJmnejf/7zn7FgwYI4+OCD47HHHovzzjsvvve978Vtt90WEZFb3/d+wra17zoPPPBANDc3xxlnnBER/o9JSd4+6r4nOPTQQ+O5556LlpaW+MMf/hAzZsyI+vr6fI/Vq61bty4uuOCCWLx4cey+++75HuczY8qUKbl/jx49OqqqqmLo0KFx7733Rv/+/fM4We/W3t4e48ePj5/+9KcRETF27Nh48cUXY+HChTFjxow8T/fZcPPNN8eUKVOisrIy36PwHq6gfIh+/frFQQcdFOPGjYt58+bFmDFj4le/+lVUVFTEtm3borm5ucP5TU1NUVFRkZ9he4kVK1bEhg0b4gtf+EIUFhZGYWFh1NfXx3XXXReFhYVRXl5u7T8FpaWlccghh8Tq1as93rvRoEGDYtSoUR32jRw5Mvf02rvr+953kFj7rvGvf/0r/vznP8d3vvOd3D6P93QIlE5ob2+Ptra2GDduXPTt2zeWLFmSO7Zy5cpYu3ZtVFdX53HCnm/ixInxwgsvxHPPPZfbxo8fH9OnT8/929p3v82bN8err74agwYN8njvRkcddVSsXLmyw75//OMfMXTo0IiIGD58eFRUVHRY+9bW1li2bJm17wK33HJLDBw4MKZOnZrb5/GekHy/SjdVs2fPzurr67M1a9Zkzz//fDZ79uysoKAg+9Of/pRlWZade+652ZAhQ7LHH388W758eVZdXZ1VV1fneere6X/fxZNl1r47fP/738+eeOKJbM2aNdlf//rXrKamJtt3332zDRs2ZFlmzbvL008/nRUWFmY/+clPslWrVmV33nlntscee2R33HFH7pz58+dnpaWl2YMPPpg9//zz2YknnpgNHz48e/vtt/M4ec+3Y8eObMiQIdkll1zyvmMe72kQKB/grLPOyoYOHZr169cv22+//bKJEyfm4iTLsuztt9/Ovvvd72b77LNPtscee2Tf+MY3sjfeeCOPE/de7w0Ua9/1Tj311GzQoEFZv379ss997nPZqaeemq1evTp33Jp3n4ceeig7/PDDs6KiomzEiBHZTTfd1OF4e3t7dtlll2Xl5eVZUVFRNnHixGzlypV5mrb3eOyxx7KI2OlaerynoSDLsizfV3EAAP6X16AAAMkRKABAcgQKAJAcgQIAJEegAADJESgAQHIECgCQHIECACRHoAAAyREoAEByBAoAkByBAgAk5/8BeSlC8DgWbmIAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig,ax = plt.subplots()\n", "ax.hist( heart_disease[\"age\"] )" ] }, { "cell_type": "markdown", "id": "627b52be-0d3a-487f-9dc0-5eaf610ae1a2", "metadata": {}, "source": [ "If we wanted to plot, side by side, a histogram of age and a histogeam of resting beats per second for each patient, we can build a figure with two axes. We can place the histogram for age in the first axes and the histogram for beats per second in the second axis. " ] }, { "cell_type": "code", "execution_count": 26, "id": "a4212b9f-e092-47e5-9038-18f4b675b5aa", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(array([ 33., 140., 232., 251., 192., 89., 43., 28., 10., 7.]),\n", " array([ 94. , 104.6, 115.2, 125.8, 136.4, 147. , 157.6, 168.2, 178.8,\n", " 189.4, 200. ]),\n", " )" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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d1RaWqpp06b5jOvK8yM1/R66bPPmzdq9e7diYmKu6OvKc9TU/Bw/flwTJkzQ4MGDtWvXLu3fv19Lly5VSEiINaarH5uamqPMzEzl5eXpzTff1JEjR7RgwQJlZGTovffes8Z05TkqKChQenq6du/erfz8fNXV1Wny5Mk6f/68Naap/b906ZJSUlJ08eJFff7553r99de1fv16LVu2zJ4iDa7qhhtuMP/xH/9hKisrTY8ePcymTZusviNHjhhJpqioyI8Vdiznzp0zt956q8nPzzd33323efTRR40xhvlrhqeeesqMGjWq0T7mr2mLFy82EyZMuGp/Q0ODcbvd5ne/+521rrKy0jidTvPWW2+1R4mdyqOPPmpuvvlm09DQwPsP3Z4ks3nzZmu5OZ8nhw8fNpLMnj17rDEffvihcTgc5rvvvmu32tvDj+enMV988YWRZL755htjTPeaH2OuPkfffvut+clPfmIOHjxo4uLizEsvvWT1dac5amx+7rvvPvPAAw9c9We627GpsTkaNmyYWb58uc+6n/70p+af//mfjTHdb44qKiqMJFNQUGCMad7+f/DBByYgIMB4vV5rzJo1a4zL5TK1tbWtrokz2o24dOmS3n77bZ0/f14ej0clJSWqq6tTQkKCNWbw4MEaMGCAioqK/Fhpx5Kenq6UlBSfeZLE/DXT0aNHFRMTo5tuuklpaWnW5VHMX9Pee+89jR07Vr/85S8VGRmp0aNH69///d+t/rKyMnm9Xp85DAsLU3x8PHP4IxcvXtSbb76pX//613I4HLz/gB9pzudJUVGRwsPDNXbsWGtMQkKCAgICVFxc3O41+1tVVZUcDofCw8MlMT+S1NDQoAcffFCLFi3SsGHDrujvznPU0NCgrVu36rbbblNiYqIiIyMVHx/vc+k0xybpb//2b/Xee+/pu+++kzFGO3fu1J///GdNnjxZUvebo6qqKklSRESEpObtf1FRkUaMGKGoqChrTGJioqqrq62rmluDoP0DBw4cUO/eveV0OvXwww9r8+bNGjp0qLxer4KDg60DxGVRUVHyer3+KbaDefvtt/Xll18qOzv7ij7mr2nx8fFav3698vLytGbNGpWVlelnP/uZzp07x/w1w1/+8hetWbNGt956qz766CPNnz9fv/nNb/T6669LkjVPP/wgvbzMHPrasmWLKisrNXv2bEn8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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig,axs = plt.subplots(1,2, figsize=(12,3)) #<-- one row and two columns \n", "axs[0].hist(heart_disease[\"age\"])\n", "axs[1].hist(heart_disease[\"trestbps\"])" ] }, { "cell_type": "markdown", "id": "45f98b3b-e962-4a9e-bf12-fed3c7de6abf", "metadata": {}, "source": [ "### Labels and limits\n", "This figure presents several communication challenges that we can address in matplotlib. \n", "First, there are no axes labels. \n", "The reader cannot understand that the first plot corresponds to patient age and the second to resting beats per second (of their heart). \n", "\n", "To add a label to the horizontal axes we will use ```set_xlabel``` and to label the verical axes we will use ```set_ylabel```. " ] }, { "cell_type": "code", "execution_count": 27, "id": "2da7732b-c650-4e5c-bf40-88db9f033172", "metadata": {}, "outputs": [ { "data": { "image/png": "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3r27Q53jx49r0KBBstvtCgwM1NChQ5WTk1OKRwEAgOsUa/b4559/XgcPHlTXrl3l6flHE/n5+XrggQe4px0AAFhOnTql5s2b6x//+If69etXYJ3u3btrwYIF1rqPj49D+aBBg5Senq6EhATl5eXpwQcf1LBhw7R48eISjR0AAHdQrKTd29tbH374oZ5//nlt375dvr6+atq0qSIiIpwdHwAAuIb16NFDPXr0uGwdHx8fhYaGFli2d+9excfHa8uWLWrdurUkadasWerZs6emTZum8PBwp8cMAIA7KVbSfl79+vVVv359Z8UCAADKoLVr1yo4OFiVKlVSly5d9MILL1hz5CQmJiowMNBK2CUpKipKHh4e2rx5s+66664C28zNzVVubq61np2dXbIHAQBACSlW0n7u3DktXLhQq1atUmZmpvLz8x3KV69e7ZTgAADA9a179+7q16+fatWqpQMHDujpp59Wjx49lJiYqHLlyikjI0PBwcEOr/H09FRQUJAyMjIu2W5cXJyee+65kg4fAIASV6ykfdSoUVq4cKF69eqlJk2ayGazOTsuAABQBvx1AtumTZuqWbNmqlOnjtauXauuXbsWu90JEyZo7Nix1np2draqV69+VbECAOAKxUraP/jgA/3nP/9Rz549nR0PAAAow2rXrq0qVapo//796tq1q0JDQ5WZmelQ5+zZszp+/Pgl74OX/rhP/sIJ7QAAuBYV65Fv3t7eqlu3rrNjAQAAZdzhw4d17NgxhYWFSZIiIyOVlZWlpKQkq87q1auVn5+vtm3buipMAABKTbGS9scff1yvv/66jDHOjgcAAFxHcnJylJycrOTkZElSamqqkpOTlZaWppycHI0bN06bNm3SwYMHtWrVKvXp00d169ZVdHS0JKlRo0bq3r27Hn74YX377bfasGGDYmNjdc899zBzPACgTCjW5fHffPON1qxZoy+//FI33nijvLy8HMo//vhjpwQHAACubVu3btVtt91mrZ+/z3zw4MGaO3euduzYoXfeeUdZWVkKDw9Xt27d9Pzzzztc2v7ee+8pNjZWXbt2lYeHh/r376833nij1I8FAABXKFbSHhgYeMlHrADXk5pPfe7qEC7p4NRerg4BAArVuXPny16Z99VXXxXaRlBQkBYvXuzMsAAAuGYUK2lfsGCBs+MAAAAAAAAXKNY97dIfM7euXLlS//73v3Xy5ElJ0pEjR5STk+O04AAAAAAAKMuKdab9p59+Uvfu3ZWWlqbc3Fzdfvvtqlixol5++WXl5uZq3rx5zo4TAAAAReDOt3YBAK5csc60jxo1Sq1bt9avv/4qX19fa/tdd92lVatWOS04AAAAAADKsmKdaf/666+1ceNGeXt7O2yvWbOmfv75Z6cEBuDyOJMCAAAAXP+KdaY9Pz9f586du2j74cOHVbFixasOCgAAAAAAFDNp79atm1577TVr3WazKScnR5MmTVLPnj2dFRsAAAAAAGVasS6Pnz59uqKjo9W4cWOdPn1a9957r/bt26cqVaro/fffd3aMAAAAAACUScVK2qtVq6bt27frgw8+0I4dO5STk6OhQ4dq0KBBDhPTAQAAAACA4itW0i5Jnp6euu+++5wZCwAAAAAA+ItiJe2LFi26bPkDDzxQrGAAAAAAAMCfipW0jxo1ymE9Ly9Pv/32m7y9veXn50fSDgAAAACAExRr9vhff/3VYcnJyVFKSoo6dOjARHQAAAAAADhJsZL2gtSrV09Tp0696Cw8AAAAAAAoHqcl7dIfk9MdOXLEmU0CAAAAAFBmFeue9k8//dRh3Rij9PR0/etf/1L79u2dEhjKlppPfe7qEAAAAADA7RQrae/bt6/Dus1mU9WqVdWlSxdNnz7dGXEBAAAAAFDmFStpz8/Pd3YcAAAAAADgAk69px0AAAAAADhPsc60jx07tsh1Z8yYUZxdAAAAAABQ5hUraf/uu+/03XffKS8vTw0aNJAk/fDDDypXrpxuuukmq57NZrtsO+vXr9err76qpKQkpaena+nSpQ73yxtjNGnSJL311lvKyspS+/btNXfuXNWrV8+qc/z4cY0cOVKfffaZPDw81L9/f73++uuqUKFCcQ4NAAAAAAC3UazL43v37q1bb71Vhw8f1rZt27Rt2zYdOnRIt912m+644w6tWbNGa9as0erVqy/bzqlTp9S8eXPNnj27wPJXXnlFb7zxhubNm6fNmzfL399f0dHROn36tFVn0KBB2r17txISErR8+XKtX79ew4YNK85hAQAAAADgVop1pn369OlasWKFKlWqZG2rVKmSXnjhBXXr1k2PP/54kdrp0aOHevToUWCZMUavvfaannnmGfXp00eStGjRIoWEhGjZsmW65557tHfvXsXHx2vLli1q3bq1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vGSfSdKyZcus7zzR0dE6dOiQQ/knn3yim266SeXLl1ft2rX13HPPWfuSpBkzZqhp06by9/dX9erV9eijjyonJ8fqzwcffFAnTpywvgec/z+ZM2eOtd+QkBD97W9/u2SM5/vmamO12WyaO3eu7rzzTvn7++vFF18scH+Xi62wvxFJ2r17t+644w7Z7XZVrFhRHTt2tL6H5efna8qUKapWrZp8fHzUokULxcfHW689/z79+OOPddttt8nPz0/NmzdXYmLiRX1So0YN+fn56a677tKxY8cu2X8oRQaAU8yfP9+0bt3aGGPMZ599ZurUqWPy8/Ot8h9//NF4eXmZJ554wnz//ffm/fffNzfccIORZH799VdjjDH79+83/v7+ZubMmeaHH34wGzZsMC1btjRDhgy55H4//vhj4+XlZWbPnm1SUlLM9OnTTbly5czq1auNMcZkZmaa7t27m7vvvtukp6ebrKysAtsZPHiwqVChghkwYIDZtWuXWb58ualatap5+umnrTr//e9/zUcffWT27dtnvvvuO9O7d2/TtGlTc+7cOWOMMd9++62RZFauXGnS09PNsWPHrLb79OljtfPCCy+Yhg0bmvj4eHPgwAGzYMEC4+PjY9auXWuMMWbNmjVGkmnbtq1Zu3at2b17t+nYsaO55ZZbjDHG/Pbbb+bxxx83N954o0lPTzfp6enmt99+K/C4ZsyYYRo2bOiw7b333jOVKlUyp0+fdqhXs2ZN6/8sIiLC2O12M23aNLN//36zf/9+8+qrr5rq1aub9evXm4MHD5qvv/7aLF682KHt8ePHm06dOl3y/wsArjcXfsbv3LnThIaGmrZt21rbCvvcj4mJMS1atDBbtmwxqampJiEhwXz66afGmKKPLZ06dTJ2u91MnjzZ/PDDD+add94xNpvNrFixwhhjzNmzZ02DBg3M7bffbpKTk83XX39tbr75ZiPJLF269JLHV1i7qampRpL57rvvrNf8+uuvRpJZs2aNMebPca1du3bmm2++Mdu2bTN169Y1nTp1Mt26dTPbtm0z69evN5UrVzZTp0512HeFChXMqFGjzPfff2/effdd4+fnZ958802rzkMPPWRuueUWs379emus8vHxMT/88IMxxpgFCxYYLy8vc8stt5gNGzaY77//3pw6deqi4zx8+LDx8/Mzjz76qNm7d69ZunSpqVKlipk0aZIxxpisrCwzZcoUU61aNZOenm4yMzML7K/z+2vdurXZuHGj2bp1q7n55putMdwYY9avX2/sdrtZuHChOXDggFmxYoWpWbOmmTx5slVn5syZZvXq1SY1NdWsWrXKNGjQwIwYMcIYY0xubq557bXXjN1ut74HnDx50mzZssWUK1fOLF682Bw8eNBs27bNvP7665f8v3VWrJJMcHCwefvtt82BAwfMTz/9dNG+CoutsL+Rw4cPm6CgINOvXz+zZcsWk5KSYt5++23z/fffG2P++B5jt9vN+++/b77//nvz5JNPGi8vL+t9cP592rBhQ7N8+XKTkpJi/va3v5mIiAiTl5dnjDFm06ZNxsPDw7z88ssmJSXFvP766yYwMNAEBARcsg9ROkjaASe55ZZbzGuvvWaMMSYvL89UqVLFGqyN+SOZa9KkicNr/vnPfzok7UOHDjXDhg1zqPP1118bDw8P8/vvv19yvw8//LDDtr///e+mZ8+e1nqfPn3M4MGDLxv/4MGDTVBQkMNAPnfuXFOhQgUrKb/QL7/8YiSZnTt3GmMK/uJyvu3zX6xOnz5t/Pz8zMaNGx3qDB061AwcONAY8+eXm5UrV1rln3/+uZFk9cOkSZNM8+bNL3tMxhgzatQo06VLF4dtv//+u6lUqZL58MMPrW3NmjVzGIAjIiJM3759HV43cuRI06VLF4cfYy70+uuvm5o1axYaFwBcLwYPHmzKlStn/P39jY+Pj5FkPDw8zH//+19jTNE+93v37m0efPDBAtsvythizB8JbocOHRzqtGnTxowfP94YY8yXX35pPD09TXp6ulWekJBQpKT9cu1eSdL+13EtLi7OSDIHDhywtj3yyCMmOjraYd+NGjVyGHfGjx9vGjVqZIwx5qeffjLlypUzP//8s0N8Xbt2NRMmTDDG/JGYSjLJycmXPEZjjHn66adNgwYNHPY1e/Zsh+8BM2fONBEREZdt5/z+Nm3aZG3bu3evkWQ2b95sxffSSy85vO5///d/TVhY2CXbXbJkialcubLDfi5MJj/66CNjt9tNdnb2ZWN0dqySzOjRoy+7r8vFVpS/kQkTJphatWqZM2fOFNh+eHi4efHFFx22tWnTxjz66KPGmD/fp//zP/9jle/evdtIMnv37jXGGDNw4ECH74/GGDNgwACSdjfA5fGAE6SkpOjbb7/VwIEDJUmenp4aMGCA5s+f71CnTZs2Dq+7+eabHda3b9+uhQsXqkKFCtYSHR2t/Px8paamFrjvvXv3qn379g7b2rdvr717917xcTRv3lx+fn7WemRkpHJycqzLxPbt26eBAweqdu3astvt1qVxl7rMriD79+/Xb7/9pttvv93hOBctWuRwqb0kNWvWzPp3WFiYJCkzM/OKjun3339X+fLlHbaVL19e999/v95++21J0rZt27Rr166Lbh1o3bq1w/qQIUOUnJysBg0a6LHHHtOKFSsu2p+vr+9FlzYCwPXutttuU3JysjZv3qzBgwfrwQcfVP/+/SUV7XN/xIgR+uCDD9SiRQs9+eSTxX7ax1/HDemPseP8uJGSkqLq1asrNDTUKr9wHC5Ou8WNLyQkRH5+fqpdu7bDtgvbbdeunWw2m7UeGRmpffv26dy5c9q5c6fOnTun+vXrO/TtunXrHMZUb2/vi47hQnv37lVkZKTDvtq3b6+cnBwdPnz4io7T09PT4TtPw4YNFRgYaH032b59u6ZMmeIQ88MPP6z09HRrDF25cqW6du2qG264QRUrVtT999+vY8eOXXaMvf322xUREaHatWvr/vvv13vvvVfomOyMWKWLvzNcSWxF+RtJTk5Wx44d5eXldVHb2dnZOnLkSJG+D17uu9XevXvVtm1bh/qRkZGXPS6UDmaPAJxg/vz5Onv2rMLDw61txhj5+PjoX//6lwICAorUTk5Ojh555BE99thjF5XVqFHDafEWV+/evRUREaG33npL4eHhys/PV5MmTYo0Sdt55+9H+/zzz3XDDTc4lPn4+Dis/3VgOv8l4konz6lSpYp27tx50faHHnpILVq00OHDh7VgwQJ16dJFERERDnX8/f0d1m+66Salpqbqyy+/1MqVK3X33XcrKirK4Z6z48ePq2rVqlcUIwBc6/z9/VW3bl1J0ttvv63mzZtr/vz5Gjp0aJE+93v06KGffvpJX3zxhRISEtS1a1fFxMRo2rRpVxTHhQmNzWYr9qRrRW3Xw+OPc2DmL/eZX2oisgvHtauNNycnR+XKlVNSUpLKlSvnUFahQgXr376+vg7JuKvl5OToueeeU79+/S4qK1++vA4ePKg77rhDI0aM0IsvvqigoCB98803Gjp0qM6cOeNwguGvKlasqG3btmnt2rVasWKFJk6cqMmTJ2vLli3FnrSwsFjPu/A7w5XEVpS/EV9f32LFfyFnfLdC6SNpB67S2bNntWjRIk2fPl3dunVzKOvbt6/ef/99DR8+XA0aNNAXX3zhUL5lyxaH9Ztuukl79uyxvvgURaNGjbRhwwYNHjzY2rZhwwY1btz4io9l+/bt+v33362BYdOmTapQoYKqV6+uY8eOKSUlRW+99ZY6duwo6Y9J8/7K29tb0h8z017KXyfB6dSp0xXH+Nd9XW4/57Vs2VJz586VMcbhC0vTpk3VunVrvfXWW1q8eLH+9a9/FWm/drtdAwYM0IABA/S3v/1N3bt31/HjxxUUFCRJ2rVrl1q2bFm8gwKA64CHh4eefvppjR07Vvfee2+RP/erVq2qwYMHa/DgwerYsaPGjRunadOmFWlsKYoGDRro0KFDOnr0qEJCQiRdPA4Xx/kfatPT063P/4KeX15cmzdvdljftGmT6tWrp3Llyqlly5Y6d+6cMjMzrbG5uBo1aqSPPvrIYbzcsGGDKlasqGrVql1RW2fPntXWrVutKxlSUlKUlZWlRo0aSfrj+05KSsolv+8kJSUpPz9f06dPt34U+c9//uNQ51LfAzw9PRUVFaWoqChNmjRJgYGBWr16dYFJtzNivRKXiu32228v9G+kWbNmeuedd5SXl3fRjz12u13h4eHasGGDw+s3bNhQ5KtJpD/eAwW93+B6JO3AVVq+fLl+/fVXDR069KIz6v3799f8+fM1fPhwPfLII5oxY4bGjx+voUOHKjk52Zrx/PzgOH78eLVr106xsbF66KGH5O/vrz179ighIeGSSeW4ceN09913q2XLloqKitJnn32mjz/+WCtXrrziYzlz5oyGDh2qZ555RgcPHtSkSZMUGxsrDw8PVapUSZUrV9abb76psLAwpaWl6amnnnJ4fXBwsHx9fRUfH69q1aqpfPnyF/VJxYoV9cQTT2jMmDHKz89Xhw4ddOLECW3YsEF2u93hx4fLqVmzplJTU5WcnKxq1aqpYsWKF52pl/64ZDMnJ0e7d+++6HmyDz30kGJjY+Xv76+77rqr0H3OmDFDYWFhatmypTw8PLRkyRKFhoY6/Hr/9ddf6/nnny/SMQDA9ervf/+7xo0bp9mzZ+uJJ54o9HN/4sSJatWqlW688Ubl5uZq+fLlVtJUlLGlKG6//XbVqVNHgwcP1iuvvKKTJ0/qmWeekaSrOgvt6+urdu3aaerUqapVq5YyMzOtdp0hLS1NY8eO1SOPPKJt27Zp1qxZmj59uiSpfv36GjRokB544AFNnz5dLVu21C+//KJVq1apWbNmDk9OKcyjjz6q1157TSNHjlRsbKxSUlI0adIkjR071kqci8rLy0sjR47UG2+8IU9PT8XGxqpdu3ZWAjlx4kTdcccdqlGjhv72t7/Jw8ND27dv165du/TCCy+obt26ysvL06xZs9S7d29t2LBB8+bNc9hHzZo1lZOTo1WrVlm3961evVo//vijbr31VlWqVElffPGF8vPz1aBBgxKLtaiWL19+ydiK8t0oNjZWs2bN0j333KMJEyYoICBAmzZt0s0336wGDRpo3LhxmjRpkurUqaMWLVpowYIFSk5O1nvvvVfkGB977DG1b99e06ZNU58+ffTVV185zEAPF3LtLfXAte+OO+64aNKO8zZv3mwkme3btxtjjPnkk09M3bp1jY+Pj+ncubOZO3euw+RqxvwxS+7tt99uKlSoYPz9/U2zZs0umljkQnPmzDG1a9c2Xl5epn79+mbRokUO5UWdiK5Pnz5m4sSJpnLlyqZChQrm4YcfdphhPSEhwTRq1Mj4+PiYZs2ambVr1140gc9bb71lqlevbjw8PKxZ1C+cLCg/P9+89tprpkGDBsbLy8tUrVrVREdHm3Xr1hlj/pyw5/wEfcYY89133xlJJjU11Rjzx6Qt/fv3N4GBgUaSWbBgwSWP7e677zZPPfXURdtPnjxpzZR7oYiICDNz5kyHbW+++aZp0aKF8ff3N3a73XTt2tVs27bNKt+4caMJDAy85Ez2AHA9uvAz/ry4uDhTtWpVk5OTU+jn/vPPP28aNWpkfH19TVBQkOnTp4/58ccfrbaKMrZ06tTJjBo1yiGGC8e/vXv3mvbt2xtvb2/TsGFD89lnnxlJJj4+/pLHV5R29+zZYyIjI42vr69p0aKFWbFiRYET0f11XCtoIrULJ1nt1KmTefTRR83w4cON3W43lSpVMk8//bTDZHFnzpwxEydONDVr1jReXl4mLCzM3HXXXWbHjh2X3M+lrF271rRp08Z4e3ub0NBQM378eGtmcWOKPhFdQECA+eijj0zt2rWNj4+PiYqKumhG9fj4eHPLLbcYX19fY7fbzc033+wwK/6MGTNMWFiY8fX1NdHR0WbRokUX9eHw4cNN5cqVjSQzadIk8/XXX5tOnTqZSpUqGV9fX9OsWTOHSWdLKtYLvwsVpLDYCvsbMcaY7du3m27duhk/Pz9TsWJF07FjR2siw3PnzpnJkyebG264wXh5eZnmzZubL7/80nptUSZMNOaPpyFVq1bN+Pr6mt69e5tp06YxEZ0bsBnzlxtwAJSqF198UfPmzbvoeaCuMGTIEGVlZV32WbXXqh07duj222/XgQMHHO7xO3jwoOrUqaMtW7bopptuuur9DBgwQM2bN9fTTz991W0BAErehg0b1KFDB+3fv1916tRxdTgoZQsXLtTo0aOVlZXl6lCAy+LyeKAUzZkzR23atFHlypW1YcMGvfrqq4qNjXV1WNe9Zs2a6eWXX1ZqaqqaNm2qvLw8HTt2TM8884zatWvnlIT9zJkzatq0qcaMGeOEiAEAJWHp0qWqUKGC6tWrp/3792vUqFFq3749CTsAt0bSDpSiffv26YUXXtDx48dVo0YNPf7445owYYKrwyoT/vo4tw0bNui2225T/fr1HWZ+vxre3t5OvYcRAOB8J0+e1Pjx45WWlqYqVaooKirKuj8cANwVl8cDAAAAAOCmrmwqSAAAAAAAUGpI2gEAAAAAcFMk7QAAAAAAuCmSdgAAAAAA3BRJOwAAAAAAboqkHQAAAAAAN0XSDgAAAACAmyJpBwAAAADATZG0AwAAAADgpv4fOVTIxv6L4YoAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig,axs = plt.subplots(1,2, figsize=(12,3)) #<-- one row and two columns \n", "axs[0].hist(heart_disease[\"age\"])\n", "axs[0].set_xlabel(\"Age of patient (yrs)\")\n", "\n", "axs[1].hist(heart_disease[\"trestbps\"])\n", "axs[1].set_xlabel(\"Resting number of beats per second\")\n", "\n", "axs[0].set_ylabel(\"Frequency\")\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "b353f765-2222-4dd9-ae6f-0c08e8f70cb7", "metadata": {}, "source": [ "Because these two plots are side by side and share a common vertical label of frequency, lets set the \"y limits\" (the smallest value and the largest value to present to the reader) to be the same for both axes. \n", "We can do that with the ```set_ylim``` function. " ] }, { "cell_type": "code", "execution_count": 28, "id": "7af3916e-9dd8-4556-8a90-a449ff854887", "metadata": {}, "outputs": [ { "data": { "image/png": "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mKdHjx46cuSIU/uXX36pm266SRUrVlTdunX14osvOrYlSVOnTlXz5s3l7++vmjVr6rHHHlN2drZjPB966CFlZmY6jgMu/J+8++67ju1Wr15dd999d6ExXhib0sZqs9k0c+ZM/eUvf5G/v79effXVArd3udiK+huRpN27d+uuu+6S3W5XQECAOnfu7DgOy8/P10svvaQaNWrIx8dHrVq10tKlSx2vvfA+XbhwoW6//Xb5+fmpZcuWWr9+/SVjUqtWLfn5+al///46efJkoeOHa8gAcInZs2ebNm3aGGOM+frrr029evVMfn6+o/3nn382Xl5eZuzYsWbv3r3mk08+MTfccIORZH799VdjjDEHDhww/v7+Ztq0aWbfvn1m7dq1pnXr1mbo0KGFbnfhwoXGy8vLvPPOOyYpKclMmTLFVKhQwaxYscIYY0x6errp2bOnueeee0xqaqrJyMgocD3R0dGmUqVKZtCgQWbXrl1m8eLFplq1aubZZ5919PnPf/5jPv/8c7N//36zbds206dPH9O8eXNz/vx5Y4wxP/74o5Fkli1bZlJTU83Jkycd6+7bt69jPa+88opp3LixWbp0qTl48KCZM2eO8fHxMatWrTLGGLNy5UojybRr186sWrXK7N6923Tu3Nl06NDBGGPMb7/9Zp566ilz4403mtTUVJOammp+++23Avdr6tSppnHjxk7LPvroI1O5cmVz9uxZp361a9d2/J9FREQYu91u3nzzTXPgwAFz4MAB88Ybb5iaNWua1atXm0OHDpkffvjBfPzxx07rHj9+vOnSpUuh/18AUNZc/Bm/c+dOExoaatq1a+dYVtTnfkxMjGnVqpXZtGmTSU5ONvHx8earr74yxhQ/t3Tp0sXY7XbzwgsvmH379pl58+YZm81mvv/+e2OMMefOnTONGjUy3bp1M4mJieaHH34wt9xyi5FkFi1aVOj+FbXe5ORkI8ls27bN8Zpff/3VSDIrV640xvw3r7Vv396sWbPGbN261dSvX9906dLFdO/e3WzdutWsXr3aVKlSxUyePNlp25UqVTKjRo0ye/fuNR9++KHx8/Mz7733nqPPww8/bDp06GBWr17tyFU+Pj5m3759xhhj5syZY7y8vEyHDh3M2rVrzd69e82ZM2cu2c+jR48aPz8/89hjj5k9e/aYRYsWmapVq5pJkyYZY4zJyMgwL730kqlRo4ZJTU016enpBY7Xhe21adPGrFu3zmzevNnccsstjhxujDGrV682drvdzJ071xw8eNB8//33pnbt2uaFF15w9Jk2bZpZsWKFSU5ONsuXLzeNGjUyI0eONMYYk5OTY6ZPn27sdrvjOOD06dNm06ZNpkKFCubjjz82hw4dMlu3bjVvvfVWof+3ropVkgkJCTEffPCBOXjwoDl8+PAl2yoqtqL+Ro4ePWqCg4PNgAEDzKZNm0xSUpL54IMPzN69e40xfxzH2O1288knn5i9e/eap59+2nh5eTneBxfep40bNzaLFy82SUlJ5u677zYREREmLy/PGGPMhg0bjIeHh3nttddMUlKSeeutt0xQUJAJDAwsdAxxbVC0Ay7SoUMHM336dGOMMXl5eaZq1aqOZG3MH8Vcs2bNnF7z97//3aloHzZsmBk+fLhTnx9++MF4eHiY33//vdDtPvLII07L/vrXv5o777zT8bxv374mOjr6svFHR0eb4OBgp0Q+c+ZMU6lSJUdRfrETJ04YSWbnzp3GmIIPXC6s+8KB1dmzZ42fn59Zt26dU59hw4aZwYMHG2P+e3CzbNkyR/s333xjJDnGYdKkSaZly5aX3SdjjBk1apS54447nJb9/vvvpnLlyubf//63Y1mLFi2cEnBERITp16+f0+sef/xxc8cddzh9GXOxt956y9SuXbvIuACgrIiOjjYVKlQw/v7+xsfHx0gyHh4e5j//+Y8xpnif+3369DEPPfRQgesvTm4x5o8Ct1OnTk592rZta8aPH2+MMWbJkiXG09PTpKamOtrj4+OLVbRfbr1XUrT/Oa/FxcUZSebgwYOOZY8++qjp0aOH07abNGnilHfGjx9vmjRpYowx5vDhw6ZChQrml19+cYqva9euZsKECcaYPwpTSSYxMbHQfTTGmGeffdY0atTIaVvvvPOO03HAtGnTTERExGXXc2F7GzZscCzbs2ePkWQ2btzoiO8f//iH0+v+93//14SFhRW63gULFpgqVao4befiYvLzzz83drvdZGVlXTZGV8cqyYwePfqy27pcbMX5G5kwYYKpU6eOyc3NLXD94eHh5tVXX3Va1rZtW/PYY48ZY/77Pv2f//kfR/vu3buNJLNnzx5jjDGDBw92On40xphBgwZRtFsAl8cDLpCUlKQff/xRgwcPliR5enpq0KBBmj17tlOftm3bOr3ulltucXq+fft2zZ07V5UqVXI8evToofz8fCUnJxe47T179qhjx45Oyzp27Kg9e/Zc8X60bNlSfn5+jueRkZHKzs52XCa2f/9+DR48WHXr1pXdbndcGlfYZXYFOXDggH777Td169bNaT/nz5/vdKm9JLVo0cLx77CwMElSenr6Fe3T77//rooVKzotq1ixoh544AF98MEHkqStW7dq165dl9w60KZNG6fnQ4cOVWJioho1aqQnnnhC33///SXb8/X1veTSRgAo626//XYlJiZq48aNio6O1kMPPaSBAwdKKt7n/siRI/Xpp5+qVatWevrpp0v8ax9/zhvSH7njQt5ISkpSzZo1FRoa6mi/OA+XZL0lja969ery8/NT3bp1nZZdvN727dvLZrM5nkdGRmr//v06f/68du7cqfPnz6thw4ZOY5uQkOCUU729vS/Zh4vt2bNHkZGRTtvq2LGjsrOzdfTo0SvaT09PT6djnsaNGysoKMhxbLJ9+3a99NJLTjE/8sgjSk1NdeTQZcuWqWvXrrrhhhsUEBCgBx54QCdPnrxsju3WrZsiIiJUt25dPfDAA/roo4+KzMmuiFW69JjhSmIrzt9IYmKiOnfuLC8vr0vWnZWVpWPHjhXrePByx1Z79uxRu3btnPpHRkZedr9wbTB7BOACs2fP1rlz5xQeHu5YZoyRj4+P/vnPfyowMLBY68nOztajjz6qJ5544pK2WrVquSzekurTp48iIiL0/vvvKzw8XPn5+WrWrFmxJmm74ML9aN98841uuOEGpzYfHx+n539OTBcOIq508pyqVatq586dlyx/+OGH1apVKx09elRz5szRHXfcoYiICKc+/v7+Ts9vuukmJScna8mSJVq2bJnuueceRUVFOd1zdurUKVWrVu2KYgSA652/v7/q168vSfrggw/UsmVLzZ49W8OGDSvW536vXr10+PBhffvtt4qPj1fXrl0VExOjN99884riuLigsdlsJZ50rbjr9fD44xyY+dN95oVNRHZxXittvNnZ2apQoYK2bNmiChUqOLVVqlTJ8W9fX1+nYtzdsrOz9eKLL2rAgAGXtFWsWFGHDh3SXXfdpZEjR+rVV19VcHCw1qxZo2HDhik3N9fpBMOfBQQEaOvWrVq1apW+//57TZw4US+88II2bdpU4kkLi4r1gouPGa4ktuL8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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig,axs = plt.subplots(1,2, figsize=(12,3)) #<-- one row and two columns \n", "\n", "axs[0].hist(heart_disease[\"age\"]) #<-- histogram for age \n", "axs[0].set_xlabel(\"Age of patient (yrs)\") #<-- label x axis\n", "axs[0].set_ylim(0,250) #<-- set y limits\n", "\n", "axs[1].hist(heart_disease[\"trestbps\"]) #<-- histogram for beats per second\n", "axs[1].set_xlabel(\"Resting number of beats per second\") #<-- label x axis\n", "axs[1].set_ylim(0,250) #<-- set y limits\n", "\n", "axs[0].set_ylabel(\"Frequency\") #<-- label y axis \n", "\n", "plt.show() #<-- display the figure" ] }, { "cell_type": "markdown", "id": "7f5d128d-b197-4d1e-9d5e-c1a4bb58ee40", "metadata": { "editable": true, "scrolled": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "### Box and whisker plots\n", "\n", "The Box and whisker plot is a summarizing visualization that maps a dataset $\\mathcal{D}$ to the following summary metrics: the median, 25th and 75th percentiles (and so then the interquartile range), a summary of values that are two times the interquartile range, and an individual representation of any values beyond this range. \n", "\n", "Like the histogram, the box and whisker plot aims to present typical values (median), dispersion (interquartile range), and also values that are rare. \n", "An advantage that the boxplot has, when compared to a histogram, is that a data scientist can explore how summary metrics for some amount/balance data compare across groups. \n", "\n", "For example, suppose we wish to compare cholesterol levels of patients who have versus who have not presented with the heart condition angina. \n", "We can use selection and indexing techniques that we learned in the last chapter to select patients based on angina." ] }, { "cell_type": "code", "execution_count": 29, "id": "aecec6ca-da9a-4d61-be19-f6f9a7eaf5b4", "metadata": { "editable": true, "scrolled": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "yes_angina = heart_disease.loc[heart_disease.exang==1]\n", "no_angina = heart_disease.loc[heart_disease.exang==0]" ] }, { "cell_type": "markdown", "id": "11ad4c61-0818-4860-b738-5d1508a27159", "metadata": {}, "source": [ "We can construct a boxand whisker plot for both groups using the matplotlib function ```boxplot```." ] }, { "cell_type": "code", "execution_count": 30, "id": "4dd3d749-a99d-45a0-a2b2-9be25b8a3c59", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig,ax = plt.subplots()\n", "ax.boxplot( [yes_angina[\"chol\"], no_angina[\"chol\"]])\n", "ax.set_ylabel(\"Cholesterol\")\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "8a7bc752-6219-4de9-ba91-4d037f14533c", "metadata": {}, "source": [ "### Tick labels\n", "Like with the histogram, we are left with a problem communicating which boxplot corresponds to which angina status. \n", "The values \"1\" and \"2\" are ambiguous and confusing. \n", "\n", "Every matplotlib generates horizontal \"ticks\" (the small markers above the values 1 and 2) and vertical ticks (the small markers to the left of the values: 200,300,400,500). \n", "Matplotlib also generates horizontal tick labels (the 1 and 2) and vertical tick labels (the 200,300,400,500). \n", "\n", "We can set horizontal tick using the ```set_xticks``` command.\n", "The input is a list of values for where to draw the tick markers. \n", "We can also add more descriptive labels corresponding to each tick with the command ```set_xticklabel```.\n", "The input is a list of strings. " ] }, { "cell_type": "code", "execution_count": 31, "id": "edb14d45-7d54-4fd7-9520-6aaf2e610803", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAGdCAYAAAD0e7I1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAtFElEQVR4nO3df1iUdb7/8dcADoIwQ1pAluhWKKCYR7NEy/a0JiV5oLhOu+XP1M4eQ9tiZdErK7NSs7Rfkp1NNt2yX66bnsyOv7IspTT8kRWiViatoqdNBogRVO7vH32Z04QmDIMDH56P65pL5/585jPv2+uamZef+3Pft82yLEsAAACGCgp0AQAAAM2JsAMAAIxG2AEAAEYj7AAAAKMRdgAAgNEIOwAAwGiEHQAAYDTCDgAAMFpIoAtoCWpra3Xo0CFFRkbKZrMFuhwAANAAlmWpoqJCnTt3VlDQmedvCDuSDh06pC5dugS6DAAA4IOSkhJdfPHFZ2wn7EiKjIyU9OM/lsPhCHA1AACgIcrLy9WlSxfP7/iZEHYkz6Erh8NB2AEAoJU52xIUFigDAACjEXYAAIDRCDsAAMBohB0AAGA0wg4AADAaYQcAABiNsAMAAIxG2AEAAEYj7AAAjOB2uzVp0iSlpqZq0qRJcrvdgS4JLYTNsiwr0EUEWnl5uZxOp1wuF1dQBoBWKCMjQytXrqy3PT09XStWrDj3BeGcaOjvNzM7AIBWrS7o2O12TZ06Vfv379fUqVNlt9u1cuVKZWRkBLpEBBgzO2JmBwBaK7fbrfDwcNntdlVUVMhut3vaampqFBkZqZqaGlVVVSksLCyAlaI5MLMDADBeTk6OJCk7O9sr6EiS3W7XPffc49UPbRNhBwDQau3bt0+SNGHChNO2jx8/3qsf2ibCDgCg1YqPj5ckLVq06LTt+fn5Xv3QNrFmR6zZAYDWijU7bRtrdgAAxgsLC1N6eron2OTm5mrv3r3Kzc31BJ309HSCThvHzI6Y2QGA1o7r7LRNDf39DjmHNQEA0CxWrFght9utnJwc7du3T/Hx8Xr88ceZ0YEkwg4AwBBhYWFasGBBoMtAC8SaHQAAYDTCDgAAMBphBwAAGI2wAwAAjEbYAQAARiPsAAAAoxF2AACA0Qg7AADAaIQdAABgNMIOAAAwGmEHAAAYjbADAACMRtgBAABGI+wAAACjEXYAAIDRCDsAAMBohB0AAGA0wg4AADAaYQcAABiNsAMAAIxG2AEAAEYj7AAAAKMRdgAAgNEIOwAAwGiEHQAAYDTCDgAAMBphBwAAGI2wAwAAjEbYAQAARiPsAAAAoxF2AACA0Qg7AADAaIQdAABgNMIOAAAwGmEHAAAYjbADAACMRtgBAABGI+wAAACjBTTszJgxQzabzeuRkJDgaT9+/LiysrLUqVMnRUREKDMzU0eOHPEa4+DBg0pLS1N4eLiio6OVk5OjkydPnutdAQAALVRIoAvo2bOn1q9f73keEvJ/Jd177716++23tWzZMjmdTk2aNEm33HKLNm/eLEk6deqU0tLSFBsbqy1btujw4cMaPXq02rVrp1mzZp3zfQEAAC1PwMNOSEiIYmNj6213uVzKz8/XK6+8ouuuu06S9OKLLyoxMVEfffSRBgwYoLVr1+qLL77Q+vXrFRMToz59+ujhhx9Wbm6uZsyYIbvdfq53BwAAtDABX7Ozb98+de7cWZdccolGjBihgwcPSpIKCwt14sQJDRkyxNM3ISFBcXFxKigokCQVFBQoOTlZMTExnj6pqakqLy/X559/fm53BAAAtEgBndm56qqrtHjxYvXo0UOHDx/WQw89pGuuuUafffaZSktLZbfbFRUV5fWamJgYlZaWSpJKS0u9gk5de13bmVRXV6u6utrzvLy83E97BAAAWpqAhp0bb7zR8/fevXvrqquuUteuXfXGG28oLCys2d539uzZeuihh5ptfAAA0HIE/DDWT0VFRal79+7av3+/YmNjVVNTo7KyMq8+R44c8azxiY2NrXd2Vt3z060DqjNt2jS5XC7Po6SkxL87AgAAWowWFXYqKyv15Zdf6sILL1S/fv3Url07bdiwwdNeXFysgwcPKiUlRZKUkpKi3bt36+jRo54+69atk8PhUFJS0hnfJzQ0VA6Hw+sBAADMFNDDWFOmTNHw4cPVtWtXHTp0SA8++KCCg4N12223yel0avz48crOzlbHjh3lcDg0efJkpaSkaMCAAZKkoUOHKikpSaNGjdLcuXNVWlqq6dOnKysrS6GhoYHcNQAA0EIENOx8++23uu222/TPf/5TF1xwga6++mp99NFHuuCCCyRJTz75pIKCgpSZmanq6mqlpqbqueee87w+ODhYq1at0sSJE5WSkqIOHTpozJgxmjlzZqB2CQAA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g5WSkqKRI0dq9OjRmjlzZgCrBgCcK9z7Dg0R0tCOjTk929dDQe+9957X8/bt2ysvL095eXlnfE3Xrl21evVqn94PANC6xcfHa+3atVq0aNFpz+zl3neQGrFmJygoSDab7Rf7WJYlm82mU6dO+aW4c4U1OwDQOrFmp21r6O93g2d2Nm7c6JfCAADwl7p7361cuVKRkZG65557NH78eOXn5+upp57i3neQ1ELujRVozOwAQOvGve/aJr/P7PxcWVmZ8vPzVVRUJEnq2bOnxo0bJ6fT6euQAAD4ZMWKFXK73crJydG+ffsUHx+vxx9/nBkdSPJxZueTTz5RamqqwsLCdOWVV0r68c7lbrdba9euVd++ff1eaHNiZgcAgNanob/fPoWda665RpdddpleeOEFhYT8ODl08uRJTZgwQV999ZU2bdrke+UBQNgBAKD1adawExYWph07dighIcFr+xdffKErrrhCVVVVja84gAg7AAC0Ps16BWWHw6GDBw/W215SUqLIyEhfhgQAAGgWPoWd3/72txo/frxef/11lZSUqKSkRK+99pomTJig2267zd81AgAA+Myns7GeeOIJ2Ww2jR49WidPnpQktWvXThMnTtScOXP8WiAAAEBTNHrNzqlTp7R582YlJycrNDRUX375pSTp0ksvVXh4eLMU2dxYswMAQOvTbNfZCQ4O1tChQ1VUVKRf/epXSk5OblKhAAAAzcmnNTu9evXSV1995e9aAAAA/M6nsPPII49oypQpWrVqlQ4fPqzy8nKvBwAAQEvh03V2goL+LyP99E7o3PUcAACcK816byzugA4AAFoLn8LOtdde6+86AAAAmoVPa3Yk6YMPPtDIkSM1cOBA/eMf/5AkvfTSS/rwww/9VhwAAEBT+RR2li9f7rnr+fbt21VdXS1JcrlcmjVrll8LBAAAaAqfz8Z6/vnn9cILL6hdu3ae7YMGDdL27dv9VhwAAA3ldrs1adIkpaamatKkSXK73YEuCS2ET2GnuLhYgwcPrrfd6XSqrKysqTUBANAoGRkZCg8PV15entauXau8vDyFh4crIyMj0KWhBfAp7MTGxmr//v31tn/44Ye65JJLmlwUAAANlZGRoZUrV8put2vq1Knav3+/pk6dKrvdrpUrVxJ44Nt1dmbPnq2XX35Zf/nLX3T99ddr9erV+uabb3Tvvffq/vvv1+TJk5uj1mbDdXYAoHVyu90KDw+X3W5XRUWF7Ha7p62mpkaRkZGqqalRVVWVwsLCAlgpmkNDf799mtmZOnWqbr/9dv3mN79RZWWlBg8erAkTJuj3v/99qws6AIDWKycnR5KUnZ3tFXQkyW6365577vHqh7bJp5mdOjU1Ndq/f78qKyuVlJSkiIgIf9Z2zjCzAwCtU2pqqtauXav9+/fr0ksvrde+d+9e9ejRQ0OHDtWaNWsCUCGaU7PO7IwbN84zXZiUlKQrr7xSERER+uGHHzRu3DifiwYAoDHi4+MlSYsWLTpte35+vlc/tE0+zewEBwfr8OHDio6O9tr+3XffKTY2VidPnvRbgecCMzsA0DqxZqdta5aZnfLycrlcLlmWpYqKCq87nR87dkyrV6+uF4AAAGguYWFhSk9P9wSb3Nxc7d27V7m5uZ6gk56eTtBp4xo1sxMUFOR1l/N6g9lseuihh3Tffff5pbhzhZkdM1RVVWnPnj1n7ed2u3XgwAF169btrF+ACQkJCg8P91eJAJpJ3ennP5eenq4VK1ac+4JwTjTLXc83btwoy7J03XXXafny5erYsaOnzW63q2vXrurcubPvVQNNsGfPHvXr18+vYxYWFqpv375+HROA/61YsUJut1s5OTnat2+f4uPj9fjjjzOjA0k+rtn55ptvFBcX94uzPK0JMztmaOjMTlFRkUaOHKmXX35ZiYmJv9iXmR0AaLmaZWanTlFRkUpKSnT11VdLkvLy8vTCCy8oKSlJeXl5Ou+883yrGmiC8PDwRs3CJCYmMmsDAG2AT6ee5+TkqLy8XJK0e/duZWdna9iwYfr666+VnZ3t1wIBAACawqeZna+//lpJSUmSpOXLl2v48OGaNWuWtm/frmHDhvm1QAAAgKbwaWbHbrerqqpKkrR+/XoNHTpUktSxY0fPjA8AAEBL4NPMztVXX63s7GwNGjRIW7du1euvvy7px8tyX3zxxX4tEAAAoCl8mtlZsGCBQkJC9Le//U0LFy7URRddJEl65513dMMNN/i1QAAAgKbwaWYnLi5Oq1atqrf9ySefbHJBAAD8HBcNRVP4FHYk6csvv9SLL76oL7/8Uk8//bSio6P1zjvvKC4uTj179vRnjQCANo6LhqIpfAo777//vm688UYNGjRImzZt0qOPPqro6Gjt2rVL+fn5+tvf/ubvOgEAbVhCQoIKCwvP2q+xFw1F2+BT2Jk6daoeeeQRZWdnKzIy0rP9uuuu04IFC/xWHAAAEhcNRdP4tEB59+7duvnmm+ttj46O1nfffdfkogAAAPzFp7ATFRWlw4cP19u+Y8cOz5lZAAAALYFPYed3v/udcnNzVVpaKpvNptraWm3evFlTpkzR6NGj/V0jAACAz3wKO7NmzVJCQoK6dOmiyspKJSUlafDgwRo4cKCmT5/u7xoBAAB85tMCZbvdrhdeeEH333+/PvvsM1VWVupf/uVfFB8f7+/6AAAAmsTn6+xIP15cMC4uzl+1AAAA+F2Dw052dnaDB50/f75PxQAAAPhbg8POjh07GtTPZrP5XAwAAIC/NTjsbNy4sTnrAAAAaBY+nY31U99++62+/fZbf9QCAADgdz6FndraWs2cOVNOp1Ndu3ZV165dFRUVpYcffli1tbX+rhEAAMBnPp2Ndd999yk/P19z5szRoEGDJEkffvihZsyYoePHj+vRRx/1a5EAAAC+8insLFmyRIsWLdK//du/ebb17t1bF110ke666y7CDgAAaDF8Ooz1/fffKyEhod72hIQEff/9900uCgAAwF98CjuXX365FixYUG/7ggULdPnllze5KAAAAH/x6TDW3LlzlZaWpvXr1yslJUWSVFBQoJKSEq1evdqvBQIAADSFTzM71157rfbu3aubb75ZZWVlKisr0y233KLi4mJdc801/q4RAADAZz7fG6tz584sRAYAAC2ez2GnrKxMW7du1dGjR+tdW2f06NFNLgwAAMAffAo7b731lkaMGKHKyko5HA6v+2HZbDbCDgAAaDF8WrPzxz/+UePGjVNlZaXKysp07Ngxz4NTzwEAQEviU9j5xz/+obvvvlvh4eH+rgcAAMCvfAo7qamp+uSTT/xdCwAAgN81eM3Of//3f3v+npaWppycHH3xxRdKTk5Wu3btvPr+9DYSAAAAgdTgsJORkVFv28yZM+tts9lsOnXqVJOKAgAA8JcGH8aqra1t0KMxQWfhwoXq3bu3HA6HHA6HUlJS9M4773jajx8/rqysLHXq1EkRERHKzMzUkSNHvMY4ePCg0tLSFB4erujoaOXk5OjkyZMNrgEAAJitUWt23n33XSUlJam8vLxem8vlUs+ePfXBBx80eLyLL75Yc+bMUWFhoT755BNdd911Sk9P1+effy5J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Bw9Wamqqpk2b5pfxpkyZojfffFOzZs3SBx98oJ07dyo5ObneZ+6XPru+Ot2Y1k8Op48ZM0Y7d+7U008/rS1btmjnzp3q1KkT3wctTEigCwB+7uTJk/rrX/+qefPmaejQoV5tGRkZevXVV5WQkHDWcXr06KFt27Zp9OjRnm3btm1rUm2FhYWqra3VvHnzFBT04/8V3njjjSaNCZhozpw56tOnj3r06OG1PTExUZs3b/batnnzZnXv3l3BwcGnHWvz5s0aO3asbr75Zkk/zvQcOHCgUfX06NFDL7/8sqqrqz03CW3q90Fdbc8995yGDRsmSSopKdF3333X5HHhX8zsoMVZtWqVjh07pvHjx6tXr15ej8zMzHqHss5k8uTJys/P15IlS7Rv3z498sgj+vTTT5t0Wulll12mEydO6Nlnn9VXX32ll156Sc8//7zP4wGmSk5O1ogRI/TMM894bf/jH/+oDRs26OGHH9bevXu1ZMkSLViwwGvR78/Fx8fr73//u3bu3Kldu3bp9ttvb/SMTd1r/uM//kNFRUVas2aNnnjiCUlq0ndCfHy8XnrpJRUVFenjjz/WiBEjFBYW5vN4aB6EHbQ4+fn5GjJkyGkv7JWZmalPPvlEn3766VnHGTFihKZNm6YpU6aob9+++vrrrzV27FivY/aNdfnll2v+/Pl67LHH1KtXLy1duvSsp9kCbdXMmTPrhZK+ffvqjTfe0GuvvaZevXrpgQce0MyZMzV27NgzjjN//nydd955GjhwoIYPH67U1FT17du3UbU4HA699dZb2rlzp/r06aP77rtPDzzwgCQ16TshPz9fx44dU9++fTVq1Cjdfffdio6O9nk8NA+bZf3sXF7AYNdff71iY2P10ksvBboUAAG2dOlS3XHHHXK5XMzGGI41OzBWVVWVnn/+eaWmpio4OFivvvqq1q9f73XNHABtx1//+lddcskluuiii7Rr1y7l5ubq1ltvJei0AYQdGMtms2n16tV69NFHdfz4cfXo0UPLly/XkCFDAl0agAAoLS3VAw88oNLSUl144YX693//dz366KOBLgvnAIexAACA0VigDAAAjEbYAQAARiPsAAAAoxF2AACA0Qg7AADAaIQdAABgNMIOAAAwGmEHAAAYjbADAACM9v8ADdNBlxpIaVQAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig,ax = plt.subplots()\n", "ax.boxplot( [yes_angina[\"chol\"], no_angina[\"chol\"]])\n", "ax.set_ylabel(\"Cholesterol\")\n", "\n", "ax.set_xticks([1,2])\n", "ax.set_xticklabels([\"Angina\",\"No angina\"])\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "b59b5413-64b9-4a1b-846d-7fd10f59987d", "metadata": {}, "source": [ "Adding in these xtick labels much better describes that the first boxplot corresponds to patients who have experienced angina and that the second box describes patients who have not had prior angina. " ] }, { "cell_type": "markdown", "id": "457fb8a1-d3dc-42ee-b684-7d1688b483d0", "metadata": {}, "source": [ "### Visualizing association \n", "\n", "Given a dataset $\\mathcal{D} = ( (x_{1},y_{1}),(x_{2},y_{2}),(x_{3},y_{3}),\\cdots, (x_{n},y_{n}) )$, \n", "an association between variables $X$ and $Y$ measures the tendency for values of $X$ to provide information about the values of $Y$. This is a vague definition because there are many ways to discuss associations. \n", "\n", "Visualizations can be a useful summary of potential associations. \n", "The **scatter plot** can describe for the reader a potential association between two amount or balance type outcomes. \n", "\n", "As an example, we will use a scatter plot to visualize the potential association between a patient's age and cholesterol level. \n", "In python, we use the ```scatter``` function. \n", "The first input specifies values on the horizontal axis and the second input specifies inputs on the vertical axis. " ] }, { "cell_type": "code", "execution_count": 32, "id": "6d970ba4-3939-4b45-ae64-67766b28ebea", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAGwCAYAAABPSaTdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABddUlEQVR4nO3de3xU1bk//s/kfp2ESy5giHiBQIQoYISooCIhCJaqtMUb8C1IeyiIgvrDC2JEBI5txXLw0iJVpFVQWz1oRQygXBQkgAoIBlTagBACQjIJ5EKS+f3BmTGBzN7PTtbs2bPzeb9evF6QWexZ2bNn9jNrPetZDrfb7QYRERGRTYUEugNERERE/sRgh4iIiGyNwQ4RERHZGoMdIiIisjUGO0RERGRrDHaIiIjI1hjsEBERka2FBboDVtDQ0IDDhw8jPj4eDocj0N0hIiIiAbfbjYqKCnTu3BkhIb7HbxjsADh8+DC6dOkS6G4QERFRCxw8eBBpaWk+H2ewAyA+Ph7A2ZPldDoD3BsiIiKScLlc6NKli/c+7guDHcA7deV0OhnsEBERBRm9FBQmKBMREZGtMdghIiIiW2OwQ0RERLbGYIeIiIhsjcEOERER2RqDHSIiIrI1BjtERERkawx2iIiIyNYY7BAREZGtsYIyERHZXlVtPeZ+sAf//vE0unaIwaPDMxEdERrobpFJGOwQEZGtTXytEAV7Sr3/3rgfWLalGLmZyVg8NjuAPSOzcBqLiIhs69xAp7GCPaWY+FqhyT2iQGCwQ0REtlRVW+8z0PEo2FOKqtp6k3pEgcJgh4iIbGnuB3uUtqPgxWCHiIhs6d8/nlbajoIXgx0iIrKlrh1ilLaj4MVgh4iIbOnR4ZlK21HwYrBDRES2FB0RitzMZM02uZnJrLfTBjDYISIi21o8NttnwMM6O20HiwoSEZGtLR6bzQrKbRyDHSIisr3oiFA8dUvvQHeDAoTTWERERGRrDHaIiIjI1hjsEBERka0x2CEiIiJbY7BDREREtsZgh4iIiGyNwQ4RERHZGoMdIiIisjUGO0RERGRrDHaIiIjI1hjsEBERka0x2CEiIiJbY7BDREREtsZgh4iIiGyNwQ4RERHZGoMdIiIisjUGO0RERGRrDHaIiIjI1hjsEBERka0x2CEiIiJbY7BDREREtsZgh4iIiGyNwQ4RERHZGoMdIiIisjUGO0RERGRrDHaIiIjI1hjsEBERka0x2CEiIiJbY7BDREREtsZgh4iIiGyNwQ4RERHZGoMdIiIisjUGO0RERGRrDHaIiIjI1hjsEBERka0x2CEiIiJbY7BDREREtsZgh4iIiGwtoMFOfn4+HA5Hkz89evTwPl5dXY3JkyejQ4cOiIuLw6hRo3D06NEmxyguLsaIESMQExOD5ORkPPTQQ6irqzP7VyEiIiKLCgt0By677DKsWbPG+++wsJ+6NG3aNPzrX//CW2+9hYSEBEyZMgW33XYbPv30UwBAfX09RowYgdTUVHz22Wc4cuQIxo4di/DwcMydO9f034WIiIisJ+DBTlhYGFJTU8/7eXl5OZYsWYLXX38dgwcPBgC88sor6NmzJ7Zs2YIBAwbgo48+wp49e7BmzRqkpKTgiiuuwFNPPYUZM2YgPz8fERERZv86REREZDEBz9nZv38/OnfujIsvvhh33XUXiouLAQDbt2/HmTNnMGTIEG/bHj16ID09HZs3bwYAbN68Gb1790ZKSoq3TV5eHlwuF77++mufz1lTUwOXy9XkDxEREdlTQIOd/v3749VXX8WHH36IF198EQcOHMDAgQNRUVGBkpISREREIDExscn/SUlJQUlJCQCgpKSkSaDjedzzmC/z5s1DQkKC90+XLl3U/mJERERkGQGdxrrpppu8f8/KykL//v1x4YUX4s0330R0dLTfnveRRx7B9OnTvf92uVwMeIiIiGwq4NNYjSUmJqJ79+749ttvkZqaitraWpSVlTVpc/ToUW+OT2pq6nmrszz/bi4PyCMyMhJOp7PJHyIiIrInSwU7lZWV+O6779CpUyf069cP4eHhWLt2rffxoqIiFBcXIycnBwCQk5ODXbt2obS01NumoKAATqcTmZmZpvefiIiIrCeg01gPPvggfvazn+HCCy/E4cOH8cQTTyA0NBR33HEHEhISMGHCBEyfPh3t27eH0+nEvffei5ycHAwYMAAAMHToUGRmZmLMmDF45plnUFJSgpkzZ2Ly5MmIjIwM5K9GREREFhHQYOfQoUO444478OOPPyIpKQnXXnsttmzZgqSkJADAggULEBISglGjRqGmpgZ5eXl44YUXvP8/NDQU77//PiZNmoScnBzExsZi3LhxmD17dqB+JSIiIrIYh9vtdge6E4HmcrmQkJCA8vJy5u8QEREF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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig,ax = plt.subplots()\n", "ax.scatter(heart_disease[\"age\"], heart_disease[\"chol\"])\n", "\n", "ax.set_xlabel(\"Age\")\n", "ax.set_ylabel(\"Cholesterol\")\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "a808f1e2-95ea-43d3-9c45-8df3cc901973", "metadata": {}, "source": [ "We see that there is a potential association between age and cholesterol level. \n", "Larger values for age tend to indicate that we will collect larger values for cholesterol." ] }, { "cell_type": "markdown", "id": "f36e867a-a3cc-46db-bfc1-3510b674fc69", "metadata": {}, "source": [ "### Barplot \n", "\n", "Like the box and whisker plot, the **baplot** is used to present a summary metric stratified by groups. \n", "Common uses are to present a measure of central tendency for different participant groups.\n", "However, grouping by patients is not the barplot's only use. \n", "In infectious disease epidemiology, the group can be time. \n", "\n", "Below is an example of a barplot for patient's median cholesterol levels with and without angina. " ] }, { "cell_type": "code", "execution_count": 33, "id": "7d858647-872a-4698-97f3-978addcdf6ad", "metadata": {}, "outputs": [ { "data": { "image/png": "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DodDkrRnzx4lJCQoLi5Ohw4dUkJCgscLBAAAuB5uh51Dhw4pOjpakrR8+XJ1795d06dPV1JSktauXevWXJs3b1b37t0VEREhm82mjz/+2KV/4MCBzouiL21du3Z1GZObm6t+/frJbrcrKChIgwcPVkFBgbu7BQAADOV22PHz89OZM2ckSevXr1eXLl0kScHBwc4Vn9I6ffq0mjVrpqSkpKuO6dq1q44ePerclixZ4tLfr18/7d27V+vWrVNKSoo2b96sZ555xs29AgAApnL7dRHt27dXQkKC2rVrpx07dmjZsmWSpP379+v22293a66HHnpIDz300G+O8ff3V1hY2BX79u3bp08++URffvmlWrZsKUl64403FBcXp3/84x/cHQYAANxf2XnzzTfl6+urf/7zn5o7d65uu+02SdLatWtLnGLyhM8++0whISFq2LChhg4dqp9//tnZl5aWpqCgIGfQkaTOnTurUqVK2r59+1XnLCwslMPhcNkAAICZ3F7ZqV27tlJSUkq0z5492yMFXa5r16569NFHVa9ePWVmZurFF1/UQw89pLS0NPn4+CgnJ6fEU5t9fX0VHBysnJycq847Y8YMHoAIAMDvhNsrO5KUmZmpCRMmqG/fvjp+/LikX1Z29u7d69Hi+vTpox49eqhJkybq2bOnUlJS9OWXX+qzzz67rnkTExOVn5/v3LKzsz1TMAAAqHDcDjupqalq0qSJtm/frhUrVjjvfPrmm280adIkjxd4ufr166tWrVo6ePCgJCksLMwZti65ePGicnNzr3qdj/TLdUB2u91lAwAAZnI77IwbN07Tpk3TunXr5Ofn52x/4IEHtG3bNo8W92uHDx/Wzz//rPDwcElSTEyM8vLylJ6e7hyzceNGFRcXq3Xr1l6tBQAA3BzcvmZnz549Wrx4cYn2kJAQ/fTTT27NVVBQ4FylkX55hs+uXbsUHBys4OBgTZkyRb169VJYWJgyMzM1ZswY3XnnnYqNjZUkNWrUSF27dtWQIUOUnJysCxcuaNiwYerTpw93YgEAAEllWNkJCgrS0aNHS7R//fXXzjuzSmvnzp1q0aKFWrRoIUlKSEhQixYtNHHiRPn4+Gj37t3q0aOHGjRooMGDB+vee+/V559/Ln9/f+ccixYtUlRUlDp16qS4uDi1b99eb7/9tru7BQAADOX2yk6fPn00duxY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Zbfby7scAF7Csf77YVmWTp06pYiIiN8cd9OHnVq1asnHx0fHjh1zaT927JjCwsKu+B1/f3/5+/u7tAUFBXmrRFQwdrud/wACvwMc678Pv7Wic8lNf4Gyn5+f7r33Xm3YsMHZVlxcrA0bNigmJqYcKwMAABXBTb+yI0kJCQl68skn1bJlS913332aM2eOTp8+raeeeqq8SwMAAOXMiLDTu3dvnThxQhMnTlROTo6aN2+uTz75pMRFy/h98/f316RJk0qcwgRgFo51/JrNutb9WgAAADexm/6aHQAAgN9C2AEAAEYj7AAAAKMRdgA3LFiwgGcyATeZgQMHqmfPnuVdBsoRYQc3xMCBA2Wz2TRz5kyX9o8//thjT60+e/asgoODVatWLZd3n3lS7969tX//fq/MDfxepaWlycfHR926dfPK/P/93/+tBQsWeGVu3BwIO7hhqlSpoldeeUUnT570yvzLly/X3XffraioKH388cde+Y2qVasqJCTEK3MDv1fz58/X8OHDtXnzZh05csTj8wcGBrIi+ztH2MEN07lzZ4WFhWnGjBm/Oe5SaPH391fdunX12muvlWr++fPnq3///urfv7/mz59fot9ms+mdd97RI488omrVqumuu+7SqlWrXMasWrVKd911l6pUqaI//vGPWrhwoWw2m/Ly8iSVPI01efJkNW/eXB988IHq1q2rwMBA9enTR6dOnXKO+eSTT9S+fXsFBQWpZs2aevjhh5WZmVmqfQJMV1BQoGXLlmno0KHq1q2bywrMZ599JpvNpg0bNqhly5aqVq2a2rZtq4yMDJc5pk2bppCQEAUEBOjpp5/WuHHj1Lx5c2f/r09jdezYUc8//7zGjBmj4OBghYWFafLkyS5zzpo1S02aNFH16tUVGRmp5557TgUFBV74XwA3AmEHN4yPj4+mT5+uN954Q4cPH77imPT0dD322GPq06eP9uzZo8mTJ+ull1665hJ0Zmam0tLS9Nhjj+mxxx7T559/rv/85z8lxk2ZMkWPPfaYdu/erbi4OPXr10+5ubmSpEOHDunPf/6zevbsqW+++UbPPvusxo8ff839yszM1Mcff6yUlBSlpKQoNTXV5XTd6dOnlZCQoJ07d2rDhg2qVKmSHnnkERUXF19zbsB0H374oaKiotSwYUP1799f7777rn79+Lfx48frtdde086dO+Xr66tBgwY5+xYtWqSXX35Zr7zyitLT01W7dm3NnTv3mr+7cOFCVa9eXdu3b9err76qqVOnat26dc7+SpUq6fXXX9fevXu1cOFCbdy4UWPGjPHcjuPGsoAb4Mknn7T+9Kc/WZZlWW3atLEGDRpkWZZlrVy50rr8/4aPP/649eCDD7p8d/To0VZ0dPRvzv/iiy9aPXv2dH7+05/+ZE2aNMlljCRrwoQJzs8FBQWWJGvt2rWWZVnW2LFjrcaNG7t8Z/z48ZYk6+TJk5ZlWdZ7771nBQYGOvsnTZpkVatWzXI4HC71tm7d+qq1njhxwpJk7dmz5zf3Cfg9aNu2rTVnzhzLsizrwoULVq1ataxNmzZZlmVZmzZtsiRZ69evd47/97//bUmyzp49a1mWZbVu3dqKj493mbNdu3ZWs2bNnJ8v/++PZVnW/fffb7Vv397lO61atbLGjh171To/+ugjq2bNmmXZRVQArOzghnvllVe0cOFC7du3r0Tfvn371K5dO5e2du3a6cCBAyoqKrrifEVFRVq4cKH69+/vbOvfv78WLFhQYvWkadOmzr+rV68uu92u48ePS5IyMjLUqlUrl/H33XffNfenbt26CggIcH4ODw93zilJBw4cUN++fVW/fn3Z7XbVrVtXkpSVlXXNuQGTZWRkaMeOHerbt68kydfXV7179y5xGvry4zY8PFySXI7bXx+npTluL5/z0ryXH7fr169Xp06ddNtttykgIEBPPPGEfv75Z505c8aNPURFQdjBDdehQwfFxsYqMTHRI/N9+umn+vHHH9W7d2/5+vrK19dXffr00X/+8x9t2LDBZWzlypVdPttstus+nXStObt3767c3FzNmzdP27dv1/bt2yVJ58+fv67fBW528+fP18WLFxUREeE8dufOnavly5crPz/fOe7yY+zS3ZvePG5/+OEHPfzww2ratKmWL1+u9PR0JSUlSeK4vVkRdlAuZs6cqdWrVystLc2lvVGjRtq6datL29atW9WgQQP5+Phcca758+erT58+2rVrl8vWp0+fK16ofDUNGzbUzp07Xdq+/PLLUn//Sn7++WdlZGRowoQJ6tSpkxo1auS1u9GAm8nFixf1/vvv67XXXnM5br/55htFRERoyZIlpZqnYcOGJY7T6z1u09PTVVxcrNdee01t2rRRgwYNvHKXGG4cI956jptPkyZN1K9fP73++usu7SNHjlSrVq30t7/9Tb1791ZaWprefPNNvfXWW1ec58SJE1q9erVWrVqlxo0bu/QNGDBAjzzyiHJzcxUcHHzNmp599lnNmjVLY8eO1eDBg7Vr1y7nhdFlfRbQLbfcopo1a+rtt99WeHi4srKyNG7cuDLNBZgkJSVFJ0+e1ODBgxUYGOjS16tXL82fP19///vfrznP8OHDNWTIELVs2VJt27bVsmXLtHv3btWvX7/Mtd155526cOGC3njjDXXv3l1bt25VcnJymedD+WNlB+Vm6tSpJZai77nnHn344YdaunSpGjdurIkTJ2rq1KkaOHDgFed4//33Vb16dXXq1KlEX6dOnVS1alX9z//8T6nqqVevnv75z39qxYoVatq0qebOneu8G8vf39+9nfv/KlWqpKVLlyo9PV2NGzfWiBEjSvUfcMB08+fPV+fOnUsEHemXsLNz507t3r37mvP069dPiYmJGjVqlO655x4dOnRIAwcOVJUqVcpcW7NmzTRr1iy98soraty4sRYtWnTNR2agYrNZ1q/u8QPg9PLLLys5OVnZ2dnlXQqAUnrwwQcVFhamDz74oLxLQQXBaSzgMm+99ZZatWqlmjVrauvWrfr73/+uYcOGlXdZAK7izJkzSk5OVmxsrHx8fLRkyRKtX7/e5Zk5AGEHuMyBAwc0bdo05ebmqnbt2ho5cqTH7hoD4Hk2m01r1qzRyy+/rHPnzqlhw4Zavny5OnfuXN6loQLhNBYAADAaFygDAACjEXYAAIDRCDsAAMBohB0AAGA0wg4AADAaYQcAABiNsAMAAIxG2AEAAEYj7AAAAKP9P4eTWG1dUCrkAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np \n", "avg_cholesterol__yes_angina = np.median(yes_angina[\"chol\"])\n", "avg_cholesterol__no_angina = np.median(no_angina[\"chol\"])\n", "\n", "fig,ax = plt.subplots()\n", "\n", "ax.bar([0,1],[avg_cholesterol__no_angina, avg_cholesterol__yes_angina])\n", "\n", "ax.set_xticks([0,1])\n", "ax.set_xticklabels([\"No Angina\",\"Angina\"])\n", "\n", "ax.set_ylabel(\"Median Cholesterol\")\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "84efd953-2bc6-4493-8cf9-4d59e5892ce7", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "## Seaborn \n", "\n", "Matplotlib is not the only statistical visualization framework for Python.\n", "There are many. \n", "Another popular framework is [seaborn](https://seaborn.pydata.org/).\n", "\n", "Seaborn plots operate almost exclusively on pandas dataframes and, so, have been optimized to make plotting visualizations easier for dataframe objects. \n", "Seaborn emphasizes syntax for quickly changing between different types of visualizations. \n", "For seaborn, much of the syntax between different visualizations stays the same. \n", "\n", "Lets take a look with our angina and cholesterol example. \n", "Lets first generate a boxplot with seaborn. " ] }, { "cell_type": "code", "execution_count": 43, "id": "7e3ad34a-7ce3-415d-8866-228152e89c01", "metadata": {}, "outputs": [ { "data": { "image/png": "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6U/q0qWLIiMjNXfuXJdzLlmyRL1791bHjh3VvXt3/f73v1dFRUUr/BtAWyLsoE35+/trwYIF+stf/qKioqLj9snLy9OoUaM0evRo7d69W3PnztV999130uHovXv3Kjc3V6NGjdKoUaP09ttva9++fY36Pfjggxo1apQ+/fRTJSUlaezYsTp8+LAk6dtvv9WIESN0/fXX65NPPtHkyZOVmpp60uvau3evXnrpJWVlZSkrK0s7duxw+bruxx9/1PTp07Vr1y5t27ZNfn5+uuGGG1RfX3/ScwMmeuGFFxQbG6uePXtq3Lhx+u///m/9ctu31NRUPfroo9q1a5cCAgI0YcIEZ9szzzyjtLQ0Pfzww8rLy1N0dLRWrFhx0s9ds2aNOnbsqPfee0+LFy/WvHnztGXLFme7n5+fnnjiCX3++edas2aN3njjDf3pT3/y3IXDOyygjdx6663WddddZ1mWZfXv39+aMGGCZVmW9eKLL1rH/qc4ZswY65prrnH52ZkzZ1pxcXG/ev7/+q//sq6//nrn++uuu8564IEHXPpIsubMmeN8X1FRYUmyNm/ebFmWZc2aNcvq1auXy8+kpqZakqwffvjBsizLWrVqleVwOJztDzzwgNWhQwervLzcpd7LL7/8hLUeOnTIkmTt3r37V68JMNUVV1xhLV261LIsy6qtrbVOP/10a/v27ZZlWdb27dstSdbWrVud/Tdt2mRJsiorKy3LsqzLL7/cSklJcTlnQkKCddFFFznfH/t3jmVZ1tVXX21deeWVLj/Tr18/a9asWSesc/369VbXrl3duUT4EEZ24BUPP/yw1qxZoy+++KJR2xdffKGEhASXYwkJCfr6669VV1d33PPV1dVpzZo1GjdunPPYuHHjtHr16kajJ3369HH+uWPHjrLb7Tp48KAkKT8/X/369XPpf9lll530es4++2yFhYU535955pnOc0rS119/rZtvvlnnnnuu7Ha7zj77bElSQUHBSc8NmCY/P1/vv/++br75ZklSQECAbrrppkZfPR97r5555pmS5HKv/vLebMq9euw5G8577L26detWDRo0SGeddZbCwsJ0yy236Pvvv9dPP/3UjCuEryHswCsGDBigxMREzZ492yPne+211/Tdd9/ppptuUkBAgAICAjR69Gjt27dP27Ztc+kbGBjo8t5ms7X466STnfPaa6/V4cOH9dRTT+m9997Te++9J0mqqalp0ecC7VFmZqaOHj2qbt26Oe/XFStWaOPGjSorK3P2O/a+alix2Zr36v/8z/9o2LBh6tOnjzZu3Ki8vDylp6dL4l5t7wg78JpFixbp1VdfVW5ursvxCy64QDk5OS7HcnJy1KNHD/n7+x/3XJmZmRo9erQ+/vhjl9fo0aOPO1H5RHr27Kldu3a5HPvggw+a/PPH8/333ys/P19z5szRoEGDdMEFF7TaajTA1x09elR/+9vf9Oijj7rcq5988om6deum5557rknn6dmzZ6N7s6X3al5enurr6/Xoo4+qf//+6tGjR6usEkPbC/B2ATh19e7dW2PHjtUTTzzhcvyee+5Rv379NH/+fN10003Kzc3VsmXLtHz58uOe59ChQ3r11Vf1yiuvqFevXi5t48eP1w033KDDhw+rS5cuJ61p8uTJWrJkiWbNmqWJEyfq448/dk6MdncvoNNOO01du3bVk08+qTPPPFMFBQW699573ToX0N5lZWXphx9+0MSJE+VwOFzahg8frszMTD3yyCMnPc+0adN0xx136NJLL9UVV1yh559/Xp9++qnOPfdct2s777zzVFtbq7/85S+69tprlZOTo5UrV7p9PvgORnbgVfPmzWs0LH3xxRfrhRde0Lp169SrVy/df//9mjdvnm677bbjnuNvf/ubOnbsqEGDBjVqGzRokEJDQ7V27dom1XPOOedow4YN+vvf/64+ffpoxYoVztVYwcHBzbu4/+Pn56d169YpLy9PvXr10t13392kv8wBE2VmZmrw4MGNgo70c9jZtWuXPv3005OeZ+zYsZo9e7ZmzJihiy++WN9++61uu+02hYSEuF3bRRddpCVLlujhhx9Wr1699Mwzz5x0mwy0DzbL+sVaPwAu0tLStHLlShUWFnq7FAC/4pprrlFkZKSefvppb5cCH8PXWMAvLF++XP369VPXrl2Vk5OjRx55RFOnTvV2WQCO8dNPP2nlypVKTEyUv7+/nnvuOW3dutVlzxygAWEH+IWvv/5aDz30kA4fPqzo6Gjdc889Hls1BsAzbDabsrOzlZaWpqqqKvXs2VMbN27U4MGDvV0afBBfYwEAAKMxQRkAABiNsAMAAIxG2AEAAEYj7AAAAKMRdgAAgNEIOwAAwGiEHQAAYDTCDgAAMBphBwAAGO1/AZs26pkD/TN7AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import seaborn as sns\n", "\n", "fig,ax = plt.subplots()\n", "sns.boxplot( x = \"exang\" #--Specify what variable is on the horizontal axis\n", " ,y = \"chol\" #--Specify the variable to summarize on the veritical axis\n", " ,data = heart_disease #--Specify which dataframe holds the above variables\n", " ,ax = ax ) #--Specify the axis in which to produce this plot\n", "\n", "ax.set_ylabel(\"Cholesterol\")\n", "ax.set_xlabel(\"\")\n", "\n", "ax.set_xticks([0,1])\n", "ax.set_xticklabels([\"No Angina\",\"Angina\"])\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "804bbc3a-d474-4543-a737-1c6c6b0961bd", "metadata": {}, "source": [ "Lets suppose that we would rather build a barplot instead of a boxplot. \n", "The only syntax that changes is that \"boxplot\" is changed to \"barplot\". " ] }, { "cell_type": "code", "execution_count": 44, "id": "144a8b90-0213-4500-a0b7-5e4a56701751", "metadata": {}, "outputs": [ { "data": { "image/png": "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ncGDB+u7777TtGnTlJ+fr/bt22vdunVVLloGpB/expw+fXqVtzIB3Pp4feNKbNb17tcCAAC4hd3y1+wAAABcC7EDAACMRuwAAACjETvADVqyZAmfywTcIkaMGKEBAwa4ewy4GbGDm2bEiBGy2Wx66aWXHJavXr3aZZ9cff78eYWEhOjOO+90+P4zVxo8eLC++eabWtk3cLvJysqSt7e3+vbtWyv7/5//+R8tWbKkVvaNWwexg5uqbt26evnll3XmzJla2f+qVat0zz33KDo6WqtXr66Vv1GvXj2FhobWyr6B201GRobGjRunrVu36sSJEy7ff1BQEGdiQezg5kpISFB4eLjmzp17ze0uR4ufn5+aNGmi1157rVr7z8jI0LBhwzRs2DBlZGRUWW+z2fTHP/5RAwcOlL+/v1q0aKFPP/3UYZtPP/1ULVq0UN26dfWrX/1KS5culc1mU1FRkaSqb2PNmDFD7du313vvvacmTZooKChIycnJOnv2rH2bdevWqXv37goODlbDhg314IMP6siRI9U6JsBUpaWlWrlypcaMGaO+ffs6nIH57LPPZLPZtHHjRnXs2FH+/v7q2rWrcnNzHfYxe/ZshYaGKiAgQE888YSee+45tW/f3r7+p29j9ezZU7///e/17LPPKiQkROHh4ZoxY4bDPufPn6/Y2FjVr19fUVFR+t3vfqfS0tJa+CeAm4XYwU3l7e2tOXPmaOHChTp+/PgVt8nJydEjjzyi5ORk7du3TzNmzNDUqVOveyr6yJEjysrK0iOPPKJHHnlEn3/+uf79739X2W7mzJl65JFHtHfvXiUlJWno0KEqLCyUJB09elT/9V//pQEDBuirr77SU089pcmTJ1/3uI4cOaLVq1crMzNTmZmZ2rJli8PbdefOnVNqaqp27dqljRs3ysvLSwMHDlRlZeV19w2Y6oMPPlB0dLRatWqlYcOG6U9/+pN++tFvkydP1muvvaZdu3bJx8dHI0eOtK9btmyZXnzxRb388svKyclRo0aNtGjRouv+3aVLl6p+/frKzs7WvHnzNGvWLK1fv96+3svLS2+88YYOHDigpUuXatOmTXr22Wddd+C4+SzgJnn88cet/v37W5ZlWV26dLFGjhxpWZZlffzxx9aP/6f46KOPWr/+9a8dfnfixIlWTEzMNff//PPPWwMGDLA/79+/vzV9+nSHbSRZU6ZMsT8vLS21JFl//etfLcuyrEmTJllt2rRx+J3JkydbkqwzZ85YlmVZ77zzjhUUFGRfP336dMvf398qKSlxmLdz585XnfW7776zJFn79u275jEBJuvatav1+uuvW5ZlWZcuXbLuvPNOa/PmzZZlWdbmzZstSdaGDRvs2//v//6vJck6f/68ZVmW1blzZyslJcVhn926dbPatWtnf/7jf+9YlmXdf//9Vvfu3R1+p1OnTtakSZOuOueHH35oNWzY0JlDhIfgzA7c4uWXX9bSpUt18ODBKusOHjyobt26OSzr1q2bDh06pIqKiivur6KiQkuXLtWwYcPsy4YNG6YlS5ZUOXvStm1b+8/169dXYGCgTp06JUnKzc1Vp06dHLa/7777rns8TZo0UUBAgP15RESEfZ+SdOjQIQ0ZMkTNmjVTYGCgmjRpIkk6duzYdfcNmCg3N1c7d+7UkCFDJEk+Pj4aPHhwlbeff/x6jYiIkCSH1+tPX5/Veb3+eJ+X9/vj1+uGDRsUHx+vu+66SwEBAXrsscd0+vRpff/99zdwhPAkxA7cokePHkpMTFRaWppL9ve3v/1N3377rQYPHiwfHx/5+PgoOTlZ//73v7Vx40aHbevUqePw3Gaz1fjtpOvts1+/fiosLNTbb7+t7OxsZWdnS5IuXrxYo78L3KoyMjJUXl6uyMhI+2t20aJFWrVqlYqLi+3b/fi1dfmuzdp8vf7rX//Sgw8+qLZt22rVqlXKyclRenq6JF6vtzJiB27z0ksvac2aNcrKynJY3rp1a23fvt1h2fbt29WyZUt5e3tfcV8ZGRlKTk7Wnj17HB7JyclXvFD5alq1aqVdu3Y5LPvyyy+r/ftXcvr0aeXm5mrKlCmKj49X69ata+1uNOBWUF5ernfffVevvfaaw+v1q6++UmRkpN5///1q7adVq1ZVXp81fb3m5OSosrJSr732mrp06aKWLVvWyl1iuLmM+NZz3JpiY2M1dOhQvfHGGw7Ln3nmGXXq1EkvvPCCBg8erKysLL355pt66623rrif7777TmvWrNGnn36qNm3aOKwbPny4Bg4cqMLCQoWEhFx3pqeeekrz58/XpEmTNGrUKO3Zs8d+YbSznwV0xx13qGHDhvrDH/6giIgIHTt2TM8995xT+wJMkJmZqTNnzmjUqFEKCgpyWDdo0CBlZGTolVdeue5+xo0bp9GjR6tjx47q2rWrVq5cqb1796pZs2ZOz/bzn/9cly5d0sKFC9WvXz9t375dixcvdnp/8Ayc2YFbzZo1q8op6V/84hf64IMPtGLFCrVp00bTpk3TrFmzNGLEiCvu491331X9+vUVHx9fZV18fLzq1aunP//5z9Wap2nTpvrLX/6ijz76SG3bttWiRYvsd2P5+fnd2MH9f15eXlqxYoVycnLUpk0bjR8/vlr/IgdMlZGRoYSEhCqhI/0QO7t27dLevXuvu5+hQ4cqLS1NEyZM0C9+8QsdPXpUI0aMUN26dZ2erV27dpo/f75efvlltWnTRsuWLbvuR2XA89ks6yf3+QFw8OKLL2rx4sXKy8tz9ygAruPXv/61wsPD9d5777l7FHgQ3sYCfuKtt95Sp06d1LBhQ23fvl2vvPKKxo4d6+6xAPzE999/r8WLFysxMVHe3t56//33tWHDBofPzAEkYgeo4tChQ5o9e7YKCwvVqFEjPfPMMy67awyA69hsNq1du1YvvviiLly4oFatWmnVqlVKSEhw92jwMLyNBQAAjMYFygAAwGjEDgAAMBqxAwAAjEbsAAAAoxE7AADAaMQOAAAwGrEDAACMRuwAAACjETsAAMBo/w+qsczitMoOmwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import seaborn as sns\n", "\n", "fig,ax = plt.subplots()\n", "sns.barplot( x = \"exang\" #--Specify what variable is on the horizontal axis\n", " ,y = \"chol\" #--Specify the variable to summarize on the veritical axis\n", " ,data = heart_disease #--Specify which dataframe holds the above variables\n", " ,ax = ax ) #--Specify the axis in which to produce this plot\n", "\n", "ax.set_ylabel(\"Cholesterol\")\n", "ax.set_xlabel(\"\")\n", "\n", "ax.set_xticks([0,1])\n", "ax.set_xticklabels([\"No Angina\",\"Angina\"])\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "10710ea7-15b6-4f03-984c-812ae5ebe125", "metadata": {}, "source": [ "Suppose instead we want to visualize the mean and the mean plus/minus 2 times the standard deviation (a measure of dispersion).\n", "Thats quick in seaborn. \n", "We change ```barplot``` to ```pointplot```. \n", "Note that we did not need to change any other syntax. \n", "Seaborn takes care of all the programming from dataframe to visual." ] }, { "cell_type": "code", "execution_count": 45, "id": "7ad66830-51a4-497a-9449-0e15a9848d5d", "metadata": {}, "outputs": [ { "data": { "image/png": "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awHc+9YWADg4OGDWrFnVHsGxtLSEpSUvHKXqVWkEfL//HJb8kofiO/qdyft0bYPYsO5wa21jgOqIiKi2DBp2BEHAxIkTsWHDBmRkZMDd3V1nfsaMGRg7dqzOmLe3Nz755BMMGjQIALBu3TqUlZVp5//44w+MHj0aO3fuRKdOnRp+J0hUDl0oQnTyEeRc0r+Oy0nWAjGDvBDS3ZFtHoiImhCDhh2lUomkpCSkpKRAKpWioKAAACCTyWBlZQVHR8dqL0p2dXXVBqP7A82NG/fud+Lp6al3RIiaN0EQdL4mri6rwJ/nb+EJFzuoyirw0S95+OH38xB0uzzAzESCMc+5472gLrCxNIqDoUREVAsG/c0dHx8PAAgMDNQZ//bbbzFq1KjGL4hE68TVYkz96TCuF//9Lbzi8kr868s9cG5lBfWdCqjL9E9ZPeNujwXhCnRlZ3IioibL4Kex6vs1gYGBdVqXxOvE1WK8Er8H6mquvwGAi7fK9MZa21hgVqgnXn6iPU9ZERE1cTwmT6ImCAKm/nT4gUGnOm8+64apwd0gs2ZnciIiMWDYIVE7eKEI2RdVNd5+ySs+ePVp3oaAiEhMeE97ErWt1bR1eJjTN/T7shERUdPGsEOipiqraNDtiYjI+DHskKjJrGp33U1ttyciIuPHsEOi1t+rba22D67l9kREZPwYdkjUnnCxg4+zrEbb9nCWoaeLXcMWREREjY5hh0RNIpHg41d7wLbFw794aNvCDEte7cF76hARiRDDDole17ZSrJ3g98AjPD2cZVg7wY93SSYiEimGHWoWuraVIkXpjzbSv7vdSy3NsOFdPyQr/Rl0iIhEjDcVpGZDIpHAwvTvfG9rZY4nXFsZsCIiImoMPLJDREREosawQ0RERKLGsENERESixrBDREREosawQ0RERKLGsENERESixrBDREREosawQ0RERKLGsENERESixrBDREREosawQ0RERKLGsENERESixrBDREREosawQ0RERKLGsENERESixrBDREREosawQ0RERKLGsENERESixrBDREREombQsBMXFwdfX19IpVLI5XKEh4cjLy+v2m0FQcCAAQMgkUiQnJysHT98+DCGDRsGFxcXWFlZwdPTE59++mkj7QEREREZOzNDvnlmZiaUSiV8fX1RWVmJmTNnIjg4GLm5ubCxsdHZdvny5ZBIJHpr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64G1Xr9+XQAgHDly5KH7RCRmfn5+wvLlywVBEISKigrBwcFB2L59uyAIgrB9+3YBgLBt2zbt9j///LMAQCgrKxMEQRB69eolKJVKnTX9/f2FHj16aJ//8/eOIAhCnz59hOeee07nNb6+vsL06dMfWOdPP/0ktG7dui67SEaCR3bIID788EOsXLkSx44d05s7duwY/P39dcb8/f1x8uRJVFVVVbteVVUVVq5ciREjRmjHRowYgcTERL2jJz4+PtqfbWxsYGtri2vXrgEA8vLy4Ovrq7P9M88888j96dChA6RSqfa5k5OTdk0AOHnyJIYNG4aOHTvC1tYWHTp0AACcP3/+kWsTiVFeXh5+//13DBs2DABgZmaG119/Xe/08z8/r05OTgCg83m9//NZk8/rP9f8a91/fl63bduGoKAgtG/fHlKpFG+++SZu3ryJ0tLSWuwhGROGHTKIgIAAhISEICoqql7W++WXX3Dp0iW8/vrrMDMzg5mZGYYOHYpz587ht99+09nW3Nxc57lEInns00mPWnPQoEEoLCzEN998g/3792P//v0AgLt37z7W+xI1VQkJCaisrES7du20n9n4+HisW7cOKpVKu90/P1t/fWuzIT+vZ8+exUsvvQQfHx+sW7cOWVlZWLFiBQB+Xpsyhh0ymMWLF2PTpk3Yu3evzrinpyd2796tM7Z792507doVpqam1a6VkJCAoUOH4tChQzqPoUOHVnuh8oN069YNBw4c0Bn7448/avz66ty8eRN5eXmIjo5GUFAQPD09G+zbaERNQWVlJVatWoWlS5fqfF4PHz6Mdu3a4YcffqjROt26ddP7fD7u5zUrKwsajQZLly7Fs88+i65duzbIt8SocZkZugBqvry9vfHGG2/gs88+0xmfMmUKfH19MX/+fLz++uvYu3cvvvjiC3z55ZfVrnP9+nVs2rQJGzduhEKh0JkbOXIkXn75ZRQWFsLe3v6RNb399ttYtmwZpk+fjjFjxuDQoUPaC6Prei+gVq1aoXXr1vj666/h5OSE8+fPY8aMGXVai0gMUlNTcevWLYwZMwYymUxnbsiQIUhISMCSJUseuc7EiRMxbtw4PP300/Dz88OaNWuQnZ2Njh071rm2zp07o6KiAp9//jkGDRqE3bt346uvvqrzemQceGSHDCo2NlbvkPSTTz6J//73v/jxxx+hUCgwZ84cxMbGYtSoUdWusWrVKtjY2CAoKEhvLigoCFZWVli9enWN6nF3d8fatWuxfv16+Pj4ID4+XvttLEtLy9rt3P+YmJjgxx9/RFZWFhQKBSZPnlyjX+REYpWQkIAXXnhBL+gA98LOgQMHkJ2d/ch13njjDURFRWHq1Kl48skncebMGYwaNQotWrSoc209evTAsmXL8OGHH0KhUOD7779/5K0yyPhJBOG+7/kRkY6FCxfiq6++woULFwxdChE9Qv/+/eHo6IjvvvvO0KWQEeFpLKL7fPnll/D19UXr1q2xe/duLFmyBBEREYYui4juU1paiq+++gohISEwNTXFDz/8gG3btuncM4cIYNgh0nPy5EksWLAAhYWFcHV1xZQpU+rtW2NEVH8kEgk2b96MhQsX4s6dO+jWrRvWrVuHF154wdClkZHhaSwiIiISNV6gTERERKLGsENERESixrBDREREosawQ0RERKLGsENERESixrBDREREosawQ0RERKLGsENERESixrBDREREovb/AUZWvQb82hSqAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import seaborn as sns\n", "\n", "fig,ax = plt.subplots()\n", "sns.pointplot( x = \"exang\" #--Specify what variable is on the horizontal axis\n", " ,y = \"chol\" #--Specify the variable to summarize on the veritical axis\n", " ,data = heart_disease #--Specify which dataframe holds the above variables\n", " ,ax = ax ) #--Specify the axis in which to produce this plot\n", "\n", "ax.set_ylabel(\"Cholesterol\")\n", "ax.set_xlabel(\"\")\n", "\n", "ax.set_xticks([0,1])\n", "ax.set_xticklabels([\"No Angina\",\"Angina\"])\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "25230461-7e04-4f4e-8a3f-45a8aa570e77", "metadata": {}, "source": [ "Seaborn has plenty of different visuals and different styles, options, etc.\n", "As an example, we can build a ```violinplot``` for our angina/cholesterol patient population. \n", "This example may look complicated, but the code was already available at seaborn's website [here](https://seaborn.pydata.org/examples/grouped_violinplots.html). \n", "This was a copy/paste." ] }, { "cell_type": "code", "execution_count": 53, "id": "ce6f6da6-f9c7-4ac2-b5fe-e89e588ae6fa", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAGKCAYAAADqqIAWAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABjIElEQVR4nO3dd3iV9f3/8efZ2YOQQYBA2ASQPcISFYiAG621VqlV2yL4U1Frba21VsW6tVrt17ortVWLFQeoDFlhg+yRMCULQvY48/79ceBgFCrEJCc5eT2u61ya+77POe9zSHJe+UyTYRgGIiIiIiHKHOwCRERERBqTwo6IiIiENIUdERERCWkKOyIiIhLSFHZEREQkpCnsiIiISEhT2BEREZGQprAjIiIiIc0a7AKaA5/PR15eHtHR0ZhMpmCXIyIiImfAMAwqKipITU3FbD59+43CDpCXl0fHjh2DXYaIiIjUw6FDh+jQocNpzyvsANHR0YD/zYqJiQlyNSIiInImysvL6dixY+Bz/HQUdiDQdRUTE6OwIyIi0sJ83xAUDVAWERGRkKawIyIiIiFN3VgiIiItmNfrxe12B7uMRmGz2bBYLD/4cRR2REREWiDDMCgoKKC0tDTYpTSquLg4UlJSftDSMEEPO4cPH+aee+7h008/pbq6mm7duvHaa68xZMgQwP+P+Yc//IGXX36Z0tJSRo0axYsvvkj37t0Dj3Hs2DFuvfVW5s2bh9lsZurUqTz77LNERUUF62WJiIg0qhNBJykpiYiIiJBbJ84wDKqrqykqKgKgXbt29X6soIadkpISRo0axXnnncenn35KYmIie/bsIT4+PnDNY489xnPPPccbb7xBeno6v//978nKymL79u2EhYUBcO2115Kfn8/nn3+O2+3mhhtu4Be/+AVz5swJ1ksTERFpNF6vNxB0EhISgl1OowkPDwegqKiIpKSkendpmQzDMBqysLPxm9/8hhUrVrBs2bJTnjcMg9TUVO68807uuusuAMrKykhOTub111/nxz/+MTt27CAjI4O1a9cGWoPmz5/P5MmT+frrr0lNTf3eOsrLy4mNjaWsrExTz0VEpNmrra1l3759dO7cORAIQlVNTQ379+8nPT090Mhxwpl+fgd1NtaHH37IkCFDuOqqq0hKSmLgwIG8/PLLgfP79u2joKCA8ePHB47FxsYyfPhwsrOzAcjOziYuLi4QdADGjx+P2Wxm9erVp3xep9NJeXl5nZuIiEhLE2pdV6fSEK8xqGFn7969gfE3CxYsYPr06fy///f/eOONNwB/fyRAcnJynfslJycHzhUUFJCUlFTnvNVqpU2bNoFrvm327NnExsYGbtoqQkREJHQFNez4fD4GDRrEI488wsCBA/nFL37BzTffzEsvvdSoz3vvvfdSVlYWuB06dKhRn09ERESCJ6hhp127dmRkZNQ51rt3bw4ePAhASkoKAIWFhXWuKSwsDJxLSUkJjNQ+wePxcOzYscA13+ZwOAJbQ2iLCBERkdAW1LAzatQodu3aVefY7t276dSpEwDp6emkpKSwcOHCwPny8nJWr15NZmYmAJmZmZSWlrJ+/frANYsWLcLn8zF8+PAmeBUiIiLSnAU17Nxxxx2sWrWKRx55hJycHObMmcP//d//MWPGDMA/KOn222/noYce4sMPP2TLli1cf/31pKamctlllwH+lqALL7yQm2++mTVr1rBixQpmzpzJj3/84zOaiSUioc3n8+Hz+YJdhkjQ+Hw+Zs+eTXp6OuHh4fTv35/33nsPwzAYP348WVlZnJiYfezYMTp06MD9998P+Ke433jjjYH79uzZk2effbbO4//sZz/jsssu44knnqBdu3YkJCQwY8aMOqs65+fnM2XKFMLDw0lPT2fOnDl07tyZZ555pmneBCPI5s2bZ/Tt29dwOBxGr169jP/7v/+rc97n8xm///3vjeTkZMPhcBgXXHCBsWvXrjrXFBcXG9dcc40RFRVlxMTEGDfccINRUVFxxjWUlZUZgFFWVtYgr0lEmofa2lpj6tQrjWnTfmb4fL5glyPSYGpqaozt27cbNTU133vtQw89ZPTq1cuYP3++kZuba7z22muGw+EwlixZYnz99ddGfHy88cwzzxiGYRhXXXWVMWzYMMPtdhuGYRgul8u4//77jbVr1xp79+41/vGPfxgRERHGv/71r8DjT5s2zYiJiTF+9atfGTt27DDmzZtnRERE1Pk8Hz9+vDFgwABj1apVxvr1641zzz3XCA8PN55++ukf9FrP9PM76GGnOVDYEQlN+/fvN84991zj3HPPDfzyFgkFZxp2amtrjYiICGPlypV1jt94443GNddcYxiGYfz73/82wsLCjN/85jdGZGSksXv37v/5mDNmzDCmTp0a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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import seaborn as sns\n", "\n", "fig,ax = plt.subplots()\n", "sns.violinplot( y = \"chol\" #--Specify the variable to summarize on the veritical axis\n", " ,inner = \"quart\" #--Tells seaborn to draw lines for the percentiles instead of a box\n", " ,hue = \"exang\" \n", " ,split = True #--Produces the density on opposite sides \n", " ,data = heart_disease #--Specify which dataframe holds the above variables\n", " ,ax = ax) #--Specify the axis in which to produce this plot\n", "\n", "ax.set_ylabel(\"Cholesterol\")\n", "ax.set_xlabel(\"\")\n", "\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.10.16" } }, "nbformat": 4, "nbformat_minor": 5 }