{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Background\n", "this notebook is focused on documenting the use of [Matplotlib](https://matplotlib.org/) and [Seaborn](https://seaborn.pydata.org/) to plot various data in Python.\n", "\n", "You can find the docs at:\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Setup" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "for plotting in Jupyter, see https://ipython.readthedocs.io/en/stable/interactive/reference.html#plotting-with-matplotlib\n", "\n", "That documentation states:\n", "\n", " If IPython is already running, you can run the `%matplotlib` magic. If no arguments are given, IPython will automatically detect your choice of matplotlib backend. You can also request a specific backend with `%matplotlib backend`, where `backend` must be one of: ‘tk’, ‘qt’, ‘wx’, ‘gtk’, ‘osx’. In the web notebook and Qt console, ‘inline’ is also a valid backend value, which produces static figures inlined inside the application window instead of matplotlib’s interactive figures that live in separate windows.\n", "\n", "https://github.com/matplotlib/jupyter-matplotlib is the extension for interactive\n", "To install ipympl with pip:\n", "```\n", "pip install ipympl\n", "# If using JupyterLab\n", "# Install nodejs: https://nodejs.org/en/download/\n", "jupyter labextension install @jupyter-widgets/jupyterlab-manager\n", "jupyter labextension install jupyter-matplotlib\n", "```\n", "\n", "To enable the jupyter-matplotlib backend, simply use the matplotlib Jupyter magic:\n", "\n", "`%matplotlib widget`\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# magic for plotting in notebook\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "import seaborn as sns" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Get data" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/usr/lib/python3/dist-packages/seaborn/utils.py:376: UserWarning: No parser was explicitly specified, so I'm using the best available HTML parser for this system (\"lxml\"). This usually isn't a problem, but if you run this code on another system, or in a different virtual environment, it may use a different parser and behave differently.\n", "\n", "The code that caused this warning is on line 376 of the file /usr/lib/python3/dist-packages/seaborn/utils.py. To get rid of this warning, pass the additional argument 'features=\"lxml\"' to the BeautifulSoup constructor.\n", "\n", " gh_list = BeautifulSoup(http)\n" ] }, { "data": { "text/plain": [ "['anscombe',\n", " 'attention',\n", " 'brain_networks',\n", " 'car_crashes',\n", " 'diamonds',\n", " 'dots',\n", " 'exercise',\n", " 'flights',\n", " 'fmri',\n", " 'gammas',\n", " 'geyser',\n", " 'iris',\n", " 'mpg',\n", " 'penguins',\n", " 'planets',\n", " 'tips',\n", " 'titanic']" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Seaborn has some datasets available\n", "sns.get_dataset_names()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "iris = sns.load_dataset('iris')" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "pandas.core.frame.DataFrame" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(iris)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
| \n", " | sepal_length | \n", "sepal_width | \n", "petal_length | \n", "petal_width | \n", "species | \n", "
|---|---|---|---|---|---|
| 0 | \n", "5.1 | \n", "3.5 | \n", "1.4 | \n", "0.2 | \n", "setosa | \n", "
| 1 | \n", "4.9 | \n", "3.0 | \n", "1.4 | \n", "0.2 | \n", "setosa | \n", "
| 2 | \n", "4.7 | \n", "3.2 | \n", "1.3 | \n", "0.2 | \n", "setosa | \n", "
| 3 | \n", "4.6 | \n", "3.1 | \n", "1.5 | \n", "0.2 | \n", "setosa | \n", "
| 4 | \n", "5.0 | \n", "3.6 | \n", "1.4 | \n", "0.2 | \n", "setosa | \n", "
| 5 | \n", "5.4 | \n", "3.9 | \n", "1.7 | \n", "0.4 | \n", "setosa | \n", "
| 6 | \n", "4.6 | \n", "3.4 | \n", "1.4 | \n", "0.3 | \n", "setosa | \n", "
| 7 | \n", "5.0 | \n", "3.4 | \n", "1.5 | \n", "0.2 | \n", "setosa | \n", "
| 8 | \n", "4.4 | \n", "2.9 | \n", "1.4 | \n", "0.2 | \n", "setosa | \n", "
| 9 | \n", "4.9 | \n", "3.1 | \n", "1.5 | \n", "0.1 | \n", "setosa | \n", "
| 10 | \n", "5.4 | \n", "3.7 | \n", "1.5 | \n", "0.2 | \n", "setosa | \n", "
| 11 | \n", "4.8 | \n", "3.4 | \n", "1.6 | \n", "0.2 | \n", "setosa | \n", "
| 12 | \n", "4.8 | \n", "3.0 | \n", "1.4 | \n", "0.1 | \n", "setosa | \n", "
| 13 | \n", "4.3 | \n", "3.0 | \n", "1.1 | \n", "0.1 | \n", "setosa | \n", "
| 14 | \n", "5.8 | \n", "4.0 | \n", "1.2 | \n", "0.2 | \n", "setosa | \n", "
| 15 | \n", "5.7 | \n", "4.4 | \n", "1.5 | \n", "0.4 | \n", "setosa | \n", "
| 16 | \n", "5.4 | \n", "3.9 | \n", "1.3 | \n", "0.4 | \n", "setosa | \n", "
| 17 | \n", "5.1 | \n", "3.5 | \n", "1.4 | \n", "0.3 | \n", "setosa | \n", "
| 18 | \n", "5.7 | \n", "3.8 | \n", "1.7 | \n", "0.3 | \n", "setosa | \n", "
| 19 | \n", "5.1 | \n", "3.8 | \n", "1.5 | \n", "0.3 | \n", "setosa | \n", "
| 20 | \n", "5.4 | \n", "3.4 | \n", "1.7 | \n", "0.2 | \n", "setosa | \n", "
| 21 | \n", "5.1 | \n", "3.7 | \n", "1.5 | \n", "0.4 | \n", "setosa | \n", "
| 22 | \n", "4.6 | \n", "3.6 | \n", "1.0 | \n", "0.2 | \n", "setosa | \n", "
| 23 | \n", "5.1 | \n", "3.3 | \n", "1.7 | \n", "0.5 | \n", "setosa | \n", "
| 24 | \n", "4.8 | \n", "3.4 | \n", "1.9 | \n", "0.2 | \n", "setosa | \n", "
| 25 | \n", "5.0 | \n", "3.0 | \n", "1.6 | \n", "0.2 | \n", "setosa | \n", "
| 26 | \n", "5.0 | \n", "3.4 | \n", "1.6 | \n", "0.4 | \n", "setosa | \n", "
| 27 | \n", "5.2 | \n", "3.5 | \n", "1.5 | \n", "0.2 | \n", "setosa | \n", "
| 28 | \n", "5.2 | \n", "3.4 | \n", "1.4 | \n", "0.2 | \n", "setosa | \n", "
| 29 | \n", "4.7 | \n", "3.2 | \n", "1.6 | \n", "0.2 | \n", "setosa | \n", "
| ... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
| 120 | \n", "6.9 | \n", "3.2 | \n", "5.7 | \n", "2.3 | \n", "virginica | \n", "
| 121 | \n", "5.6 | \n", "2.8 | \n", "4.9 | \n", "2.0 | \n", "virginica | \n", "
| 122 | \n", "7.7 | \n", "2.8 | \n", "6.7 | \n", "2.0 | \n", "virginica | \n", "
| 123 | \n", "6.3 | \n", "2.7 | \n", "4.9 | \n", "1.8 | \n", "virginica | \n", "
| 124 | \n", "6.7 | \n", "3.3 | \n", "5.7 | \n", "2.1 | \n", "virginica | \n", "
| 125 | \n", "7.2 | \n", "3.2 | \n", "6.0 | \n", "1.8 | \n", "virginica | \n", "
| 126 | \n", "6.2 | \n", "2.8 | \n", "4.8 | \n", "1.8 | \n", "virginica | \n", "
| 127 | \n", "6.1 | \n", "3.0 | \n", "4.9 | \n", "1.8 | \n", "virginica | \n", "
| 128 | \n", "6.4 | \n", "2.8 | \n", "5.6 | \n", "2.1 | \n", "virginica | \n", "
| 129 | \n", "7.2 | \n", "3.0 | \n", "5.8 | \n", "1.6 | \n", "virginica | \n", "
| 130 | \n", "7.4 | \n", "2.8 | \n", "6.1 | \n", "1.9 | \n", "virginica | \n", "
| 131 | \n", "7.9 | \n", "3.8 | \n", "6.4 | \n", "2.0 | \n", "virginica | \n", "
| 132 | \n", "6.4 | \n", "2.8 | \n", "5.6 | \n", "2.2 | \n", "virginica | \n", "
| 133 | \n", "6.3 | \n", "2.8 | \n", "5.1 | \n", "1.5 | \n", "virginica | \n", "
| 134 | \n", "6.1 | \n", "2.6 | \n", "5.6 | \n", "1.4 | \n", "virginica | \n", "
| 135 | \n", "7.7 | \n", "3.0 | \n", "6.1 | \n", "2.3 | \n", "virginica | \n", "
| 136 | \n", "6.3 | \n", "3.4 | \n", "5.6 | \n", "2.4 | \n", "virginica | \n", "
| 137 | \n", "6.4 | \n", "3.1 | \n", "5.5 | \n", "1.8 | \n", "virginica | \n", "
| 138 | \n", "6.0 | \n", "3.0 | \n", "4.8 | \n", "1.8 | \n", "virginica | \n", "
| 139 | \n", "6.9 | \n", "3.1 | \n", "5.4 | \n", "2.1 | \n", "virginica | \n", "
| 140 | \n", "6.7 | \n", "3.1 | \n", "5.6 | \n", "2.4 | \n", "virginica | \n", "
| 141 | \n", "6.9 | \n", "3.1 | \n", "5.1 | \n", "2.3 | \n", "virginica | \n", "
| 142 | \n", "5.8 | \n", "2.7 | \n", "5.1 | \n", "1.9 | \n", "virginica | \n", "
| 143 | \n", "6.8 | \n", "3.2 | \n", "5.9 | \n", "2.3 | \n", "virginica | \n", "
| 144 | \n", "6.7 | \n", "3.3 | \n", "5.7 | \n", "2.5 | \n", "virginica | \n", "
| 145 | \n", "6.7 | \n", "3.0 | \n", "5.2 | \n", "2.3 | \n", "virginica | \n", "
| 146 | \n", "6.3 | \n", "2.5 | \n", "5.0 | \n", "1.9 | \n", "virginica | \n", "
| 147 | \n", "6.5 | \n", "3.0 | \n", "5.2 | \n", "2.0 | \n", "virginica | \n", "
| 148 | \n", "6.2 | \n", "3.4 | \n", "5.4 | \n", "2.3 | \n", "virginica | \n", "
| 149 | \n", "5.9 | \n", "3.0 | \n", "5.1 | \n", "1.8 | \n", "virginica | \n", "
150 rows × 5 columns
\n", "