{ "cells": [ { "cell_type": "markdown", "id": "febcb23a", "metadata": {}, "source": [ "# Tweaking plots\n", "\n", "In this section we cover some points about adjusting the appearance of plots:\n", "\n", "* setting axis labels\n", "* setting plot titles\n", "* adding and editing a legend\n", "* arranging suplots to make a multi-panel figure\n", "* adjusting the size and shape of figures within your Jupyter notebook\n", "\n", "Whilst `Seaborn` does often get things right by default, all of the above 'tweaks' can be essential to produce a meaningful figure that is easy for the reader to interpret.\n", "\n", "## `Matplotlib`\n", "\n", "`Seaborn` is designed to produce nice looking plots without us having to manually set many options. `Seaborn` is built from components of an older plotting library called `Matplotlib` (which is based on the plotting functions of MATLAB, another scientific programming environment). `Matplotlib ` contains a lot of lower level plotting functions (things that produce or edit bits of plots, rather than producing a whole nice figure in one step). \n", "\n", "If we want to manually set something like the axis labels or axis range, we may need to go back and call functions from `Matplotlib` directly. \n", "\n", "In the olden days, people made plots just with `Matplotlib` and had to write a lot more code to achieve a nice looking plot.\n", "\n", "* `Matplotlib` functions are preceded by `plt.` for example `plt.xlim()` or `plt.subplot()`\n", "* In contrast, `Seaborn` functions aare preceded by `sns.` (Samuel Norman Seaborn!), e.g. `sns.histplot()`.\n", "\n", "### Set up Python libraries\n", "\n", "As usual, run the code cell below to import the relevant Python libraries" ] }, { "cell_type": "code", "execution_count": 1, "id": "2d8ecdb6", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Set-up Python libraries - you need to run this but you don't need to change it\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import scipy.stats as stats\n", "import pandas as pd\n", "import seaborn as sns\n", "sns.set_theme(style='white')\n", "import statsmodels.api as sm\n", "import statsmodels.formula.api as smf" ] }, { "cell_type": "markdown", "id": "5a768c21", "metadata": {}, "source": [ "### Import the data\n", "\n", "We'll use the Titanic data (data on 890 people who were onbboard the Titanic when it sank). This includes some odd sounding variables such as SibSp but don't worry about them for now." ] }, { "cell_type": "code", "execution_count": 3, "id": "a3741143", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/html": [ "
\n", " | Survived | \n", "Pclass | \n", "Name | \n", "Sex | \n", "Age | \n", "SibSp | \n", "Parch | \n", "Ticket | \n", "Fare | \n", "Cabin | \n", "Embarked | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "0 | \n", "3 | \n", "Braund, Mr. Owen Harris | \n", "male | \n", "22.0 | \n", "1 | \n", "0 | \n", "A/5 21171 | \n", "7.2500 | \n", "NaN | \n", "S | \n", "
1 | \n", "1 | \n", "1 | \n", "Cumings, Mrs. John Bradley (Florence Briggs Th... | \n", "female | \n", "38.0 | \n", "1 | \n", "0 | \n", "PC 17599 | \n", "71.2833 | \n", "C85 | \n", "C | \n", "
2 | \n", "1 | \n", "3 | \n", "Heikkinen, Miss. Laina | \n", "female | \n", "26.0 | \n", "0 | \n", "0 | \n", "STON/O2. 3101282 | \n", "7.9250 | \n", "NaN | \n", "S | \n", "
3 | \n", "1 | \n", "1 | \n", "Futrelle, Mrs. Jacques Heath (Lily May Peel) | \n", "female | \n", "35.0 | \n", "1 | \n", "0 | \n", "113803 | \n", "53.1000 | \n", "C123 | \n", "S | \n", "
4 | \n", "0 | \n", "3 | \n", "Allen, Mr. William Henry | \n", "male | \n", "35.0 | \n", "0 | \n", "0 | \n", "373450 | \n", "8.0500 | \n", "NaN | \n", "S | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
886 | \n", "0 | \n", "2 | \n", "Montvila, Rev. Juozas | \n", "male | \n", "27.0 | \n", "0 | \n", "0 | \n", "211536 | \n", "13.0000 | \n", "NaN | \n", "S | \n", "
887 | \n", "1 | \n", "1 | \n", "Graham, Miss. Margaret Edith | \n", "female | \n", "19.0 | \n", "0 | \n", "0 | \n", "112053 | \n", "30.0000 | \n", "B42 | \n", "S | \n", "
888 | \n", "0 | \n", "3 | \n", "Johnston, Miss. Catherine Helen \"Carrie\" | \n", "female | \n", "NaN | \n", "1 | \n", "2 | \n", "W./C. 6607 | \n", "23.4500 | \n", "NaN | \n", "S | \n", "
889 | \n", "1 | \n", "1 | \n", "Behr, Mr. Karl Howell | \n", "male | \n", "26.0 | \n", "0 | \n", "0 | \n", "111369 | \n", "30.0000 | \n", "C148 | \n", "C | \n", "
890 | \n", "0 | \n", "3 | \n", "Dooley, Mr. Patrick | \n", "male | \n", "32.0 | \n", "0 | \n", "0 | \n", "370376 | \n", "7.7500 | \n", "NaN | \n", "Q | \n", "
891 rows × 11 columns
\n", "