{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Multiple Subplots" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "Sometimes it is helpful to compare different views of data side by side.\n", "To this end, Matplotlib has the concept of *subplots*: groups of smaller axes that can exist together within a single figure.\n", "These subplots might be insets, grids of plots, or other more complicated layouts.\n", "In this chapter we'll explore four routines for creating subplots in Matplotlib. We'll start by importing the packages we will use:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "tags": [] }, "outputs": [], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "plt.style.use('seaborn-white')\n", "import numpy as np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## plt.axes: Subplots by Hand\n", "\n", "The most basic method of creating an axes is to use the `plt.axes` function.\n", "As we've seen previously, by default this creates a standard axes object that fills the entire figure.\n", "`plt.axes` also takes an optional argument that is a list of four numbers in the figure coordinate system (`[left, bottom, width, height]`), which ranges from 0 at the bottom left of the figure to 1 at the top right of the figure.\n", "\n", "For example, we might create an inset axes at the top-right corner of another axes by setting the *x* and *y* position to 0.65 (that is, starting at 65% of the width and 65% of the height of the figure) and the *x* and *y* extents to 0.2 (that is, the size of the axes is 20% of the width and 20% of the height of the figure). The following figure shows the result:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax1 = plt.axes() # standard axes\n", "ax2 = plt.axes([0.65, 0.65, 0.2, 0.2])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The equivalent of this command within the object-oriented interface is `fig.add_axes`. Let's use this to create two vertically stacked axes, as seen in the following figure:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plt.figure()\n", "ax1 = fig.add_axes([0.1, 0.5, 0.8, 0.4],\n", " xticklabels=[], ylim=(-1.2, 1.2))\n", "ax2 = fig.add_axes([0.1, 0.1, 0.8, 0.4],\n", " ylim=(-1.2, 1.2))\n", "\n", "x = np.linspace(0, 10)\n", "ax1.plot(np.sin(x))\n", "ax2.plot(np.cos(x));" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We now have two axes (the top with no tick labels) that are just touching: the bottom of the upper panel (at position 0.5) matches the top of the lower panel (at position 0.1 + 0.4)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## plt.subplot: Simple Grids of Subplots\n", "\n", "Aligned columns or rows of subplots are a common enough need that Matplotlib has several convenience routines that make them easy to create.\n", "The lowest level of these is `plt.subplot`, which creates a single subplot within a grid.\n", "As you can see, this command takes three integer arguments—the number of rows, the number of columns, and the index of the plot to be created in this scheme, which runs from the upper left to the bottom right (see the following figure):" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXsAAAD3CAYAAAD8O/QcAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAs2ElEQVR4nO3df1TUdb7H8ScMIsigJ1t/VAa5nsZSrqsgabWYKVy7xlkMfwCC5I/UsuxmZv42T4uiu/24NxFd06xrlJjb3fJ2W7usJR5zMyF0cYWKLRwxFUVWZlAQ5nP/4PDNCWGYYciZ+b4f53SO8/l+v5/v59trePPl+9NPKaUQQgjh0/xv9ACEEEJ0Pin2QgihA1LshRBCB6TYCyGEDkixF0IIHZBiL4QQOtCuYn/06FGmTZvWon3fvn1MnDiRpKQkdu3aBcCVK1eYP38+U6dOZfbs2VRVVbl3xMJtJFffJdmKFpQDW7ZsUfHx8Wry5Ml27fX19So2NlZVV1eruro6lZiYqCorK9Ubb7yhXnvtNaWUUv/zP/+jfvvb3zpahbgBJFffJdmK6wlw9MsgLCyMDRs28Pzzz9u1l5WVERYWRo8ePQCIioriyy+/pKCggMceewyAUaNGkZ2d3aLPK1euUFxcTK9evTAYDO74nSWcFBISwvLly8nMzOTIkSNEREQQFBQkufqAkJAQli5dSkZGBleuXCEoKAhw/WdWcvUcjY2NVFZWaj+vznBY7MeNG8epU6datFssFkJDQ7XPISEhWCwWu/aQkBBqampaLFtcXExqaqpTAxWdJzU1lZycHIYPHy65+pji4mKGDx8OuP4zK7l6nuafV2c4LPatMRqNWK1W7bPVaiU0NNSu3Wq10r179xbL9urVSxtw3759XR2C6KAzZ86watUqysrKtEwkV9/wt7/9jWeeeUbLBFzPVnL1HGfOnCE1NdUu1/ZyudgPGDCA8vJyqqur6datG0eOHGHWrFmcPn2a/fv3M2TIEPLz84mKimqxbPOfgn379qVfv36uDkG4QWBgIPBjJpKrbzhz5gyA3WEXV7OVXD2PK4fTnC72e/bsoba2lqSkJJYsWcKsWbNQSjFx4kT69OlDSkoKixcvJiUlhS5duvDyyy87PSjx8/vLX/5CUFCQ5OqD5GdWAI6vxukMZrNZmUwmZTabb8TqxTXcmYXk6jkkV9/UkSzkpiohhNABKfZCCKEDUuyFEEIHpNgLIYQOSLEXQggdkGIvhBA6IMVeCCF0QIq9EELogBR7IYTQASn2QgihA1LshRBCB6TYCyGEDkixF0IIHZBiL4QQOiDFXgghdECKvRBC6IAUeyGE0AGHryW02WysXr2a0tJSAgMDycjIIDw8HIATJ06wdu1abd6ioiI2btzIkCFDGDduHCaTCYDY2FgeffTRTtoE4YrmXI8dOwZARUWF9n5RydV7Sa6iNQ6LfV5eHvX19eTm5lJUVMS6devYtGkTAHfffTc7duwA4OOPP6Z3796MGjWKzz//nPj4eFauXNm5oxcua841KyuLsWPHsnnzZkaMGAFIrt5MchWtcXgYp6CggJiYGACGDh1KcXFxi3lqa2vZsGEDy5cvB6C4uJjjx4+TlpbG008/zblz59w8bNFR1+YKUFpa2mIeydX7SK6iNQ6LvcViwWg0ap8NBgMNDQ128+zevZuHHnqInj17AvDLX/6Sp59+mrfffpvY2FgyMjLcPGzRUZKrb5JcRWscFnuj0YjVatU+22w2AgLsj/7s2bOHyZMna59Hjhyp/ekYFxfH3//+d3eNV7iJ5OqbJFfRGofFPjIykvz8fKDphE7zSZxmNTU11NfXc8stt2htK1asYO/evQAcOnSIwYMHu3PMwg2uzRWgf//+dtMlV+8kuYrWODxBGxcXx8GDB0lOTkYpxdq1a9m+fTthYWGMHTuW7777jttuu81umYULF7Js2TLeffddgoOD5c9CD9Sc6/z58wGYN2+e5OoDJFfRKnUDmM1mZTKZlNlsvhGrF9dwZxaSq+eQXH1TR7KQm6qEEEIHpNgLIYQOSLEXQggdkGIvhBA6IMVeCCF0QIq9EELogE8V+7NnzzJixAjMZrPWduDAAaZOncqvfvUrhg0bxvTp0ykqKnJ5HYcOHSIlJYVhw4YRExPDmjVr7O5Y7IiVK1cybdq0Fu3Lly8nMzPTLevwRt6Ya3vGp/dcwTuzbU9/npitTxX7NWvW8PDDD3P77bcDcPjwYWbPnk1NTQ0LFizgySef5OTJk6SlpWmPgHXGoUOHmDlzJlevXuW5554jISGB3NxcHnvsMWw2W4fG/t5777Fr167rTnvyySfJzc2lpKSkQ+vwVt6Wa3vHp/dcwfuybW9/HpltJ1z371Bn3KRx+PBhNWjQIHX69GmtLSEhQY0ePVrV1tZqbZWVlSo6OlpNnz7d6XU88sgj6sEHH1SXL1/W2t5++21lMpnUZ5995tK4Gxoa1IYNG9TAgQOVyWRSaWlp151v2bJlKj093aV1tMXTb77xxlydGZ9ec1XKO7N1pr/OyFZuqgLefPNNoqKitGd+/POf/6SkpISHHnqI4OBgbb5f/OIXREdH89VXXznVf11dHTfddBNTpkwhKChIa7/nnnuA6z9Ktj19PvLII2zYsIGEhAT69OnT6ryTJ0/mr3/9q2ftKfwMvC1XZ8en11zB+7J1tj9Py9bhs3G8wQ8//MCnn37KkiVLtDaj0cif//xnuy9Ns4sXL2IwGJxaR9euXdm2bVuL9hMnTgBw6623Ojnqpi+PxWLh1VdfZfz48YwZM6bVeYcOHUrfvn3Jycnht7/9rdPr8kbemKuz49NjruCd2Trbn6dl6xPF/sCBAzQ2NjJ69GitzWAwcMcdd7SYt6SkhMLCQn796193aJ0VFRV88cUXrF+/HpPJRFxcnNN9GI1GPvnkkxaPoG1NdHS03RMNfZ035urK+PSWK3hntq7050nZ+kSxLygooFu3btpJntZYrVYWL14MwJw5c1xeX3V1tbYXHhwczIoVK+jatavT/fj7++Pv3/4jaSaTiT179mA2mx1uqy/w1lydHZ/ecgXvz7a9/XlStj5xzN5sNnPbbbfh5+fX6jyXL1/miSeeoKSkhDlz5mjH2Vzh5+fHq6++yvr16xkwYAAzZszQngfemZq/LKdOner0dXkCX8i1PePTW67g/dm2tz9PytYnin11dbXdq9h+6tKlS8ycOZMvvviCiRMnsmDBgg6tr0ePHowfP54JEyaQk5PDrbfe+rNcU9u8jRcvXuz0dXkCb8+1vePTW67g/dm2tz9PytYnir2/v3+r18xeuHCB9PR0CgsLSUpKYs2aNW3uTTgrKCiI0aNH88MPP1BVVeW2fq+neRudPVHlrbw5V2fGp7dcwbuzdaY/T8rWJ4r9zTffTHV1dYt2i8XCrFmzOHHiBNOnT+fFF190+UtTVlbGmDFjyMnJaTHNarXi5+dHYGCgS323V/M23nzzzZ26Hk/hrbk6Oz695Qrema0r/XlStg5P0NpsNlavXk1paSmBgYFkZGQQHh6uTc/IyKCwsJCQkBAAsrOztbvLrly5Qu/evcnMzLzu5VTucuutt3L06FEaGxvtfoO++OKLnDhxgvT0dJYuXdqhdYSHh1NTU8POnTuZPHmyFmpFRQV79+4lOjq6zT9L3eHs2bOAa5d5/lRzrs13JVZUVNCvXz9tuuTqeq7Ojk9vuYJ3ZutKf+7MtqMcFvu8vDzq6+vJzc2lqKiIdevWsWnTJm368ePH2bp1Kz179tTaMjIyiI+PJzExkS1btpCbm8v06dM7ZQMARo4cyfvvv88333zDXXfdBTT9Fv7ggw/o3r07d999Nx988EGL5RISEoCmk0WFhYVERka2esY8ICCAFStW8PzzzzNt2jR+85vfcPHiRXJycvD392flypXavO3pzxVFRUWEh4e75YvTnGtWVhZjx45l8+bNjBgxQpsuubqWqzPja6a3XME7s3Wmv2buzLajHBb7goICYmJigKabBIqLi7VpNpuN8vJyVq1axfnz55k0aRKTJk2ioKCAuXPnAjBq1CheeeWVTv3yxMTE4O/vz5EjR7QvzuHDh4GmEz2t7SE0f3G+/PJLli5dSmZmZpvFOSEhgS5durB161YyMzPp1q0bI0eOZMGCBfTv31+br739OcNms1FUVMT48ePd0t+1uYL93X+Sq+u5OjM+0Geu4J3ZOtMfuD/bjnJY7C0Wi92fJgaDgYaGBgICAqitrSUtLY0ZM2bQ2NhIeno6ERERWCwWQkNDAQgJCaGmpqbztgDo2bMnY8aM4aOPPiItLQ2AlJQUUlJS2rV8YmIiJSUl7Tp+N378eIfhOdPftfbt29fqtEOHDnHhwgUmTZrkVJ+tkVztuStXZ8YH+swVvDNbZ/oD92fbUQ5P0BqNRrvHd9psNu2Oz+DgYNLT0wkODsZoNDJy5EhKSkrslrFarXTv3r2Thv+jmTNnUlhYyMmTJ51e9vz58+zbt4+IiAi3jMXd/QH86U9/4v7779f2gjpKcnWe5Opeku3Py2Gxj4yM1G73LSoqwmQyadO+//57UlJSaGxs5OrVqxQWFjJ48GAiIyPZv38/APn5+URFRXXS8H8UFRXFgw8+yJYtW5xetqqqisWLF1/3Vm1XuLs/s9nM3r17eeaZZ9zSH9jnCtj9CSq5/jz96TlXkGx/do4ei9nY2KhWrlypkpKS1JQpU9S3336r3njjDZWXl6eUUur1119XiYmJKikpSb3zzjtKqaZHks6cOVMlJSWpxx9/XFmtVrc9prMtp0+fVtHR0aq8vNyt/d5oS5YsURkZGW7tsznXCRMmKJPJpA4ePCi5/sz0nqtSkq2zOpKFzzzPXrjGG557LpwnufomeZ69EEKINkmxF0IIHZBiL4QQOiDFXgghdECKvRBC6IAUeyGE0AEp9kIIoQNS7IUQQgek2AshhA5IsRdCCB2QYi+EEDogxV4IIXRAir0QQuiAFHshhNABKfZCCKEDUuyFEEIHHL5w3GazsXr1akpLSwkMDCQjI4Pw8HBt+ptvvslHH30EwAMPPMBTTz2FUopRo0Zpr/gaOnQoCxcu7JwtEC5pzvXYsWMAVFRU0K9fP2265OqdJFfRGofFPi8vj/r6enJzcykqKmLdunVs2rQJaHrP4ocffsh7772Hv78/KSkpxMbGEhwczODBg9m8eXOnb4BwTXOuWVlZjB07ls2bNzNixAhAcvVmkqtojcPDOAUFBcTExABNv/GLi4u1aX379mXr1q0YDAb8/PxoaGiga9euHD9+nLNnzzJt2jRmz57NP/7xj87bAuGSa3MFKC0t1f4tuXovyVW0xmGxt1gsGI1G7bPBYKChoQGALl260LNnT5RSrF+/nkGDBtG/f3969erFnDlz2LFjB3PnzmXRokWdtwXCJZKrb5JcRWscHsYxGo1YrVbts81mIyDgx8Xq6upYtmwZISEhvPDCCwBERERgMBgAGD58OOfOnUMphZ+fn7vHL1wkufomyVW0xuGefWRkJPn5+QAUFRVhMpm0aUop5s2bx8CBA3nxxRe1L0xWVhZvvfUWACUlJdxyyy3yxfEw1+YK0L9/f+3fkqv3klxFaxzu2cfFxXHw4EGSk5NRSrF27Vq2b99OWFgYNpuNw4cPU19fz4EDBwB49tlnmTNnDosWLWL//v0YDAYyMzM7fUOEc5pznT9/PgDz5s2TXH2A5CpapW4As9msTCaTMpvNN2L14hruzEJy9RySq2/qSBZyU5UQQuiAFHshhNABKfZCCKEDUuyFEEIHpNgLIYQOSLEXQggdkGIvhBA6IMVeCCF0QIq9EELogBR7IYTQASn2QgihA1LshRBCB6TYCyGEDkixF0IIHZBiL4QQOiDFXgghdECKvRBC6IDD1xLabDZWr15NaWkpgYGBZGRkEB4erk3ftWsXO3fuJCAggCeeeIIHH3yQqqoqnnvuOa5cuULv3r3JzMwkODi4UzdEOKc512PHjgFQUVFBv379tOmSq3eSXEVrHO7Z5+XlUV9fT25uLgsXLmTdunXatMrKSnbs2MHOnTvZtm0br7zyCvX19WRnZxMfH88777zDoEGDyM3N7dSNEM5rzjUrKwuAzZs3a9MkV+8luYrWONyzLygoICYmBoChQ4dSXFysTTt27BjDhg0jMDCQwMBAwsLCKCkpoaCggLlz5wIwatQoXnnlFaZPn64t19jYCMCZM2fcuS3CCZ999hmDBg3SMigtLdWmSa7eS3L1bc0ZNGfiDIfF3mKxYDQatc8Gg4GGhgYCAgKwWCyEhoZq00JCQrBYLHbtISEh1NTU2PVZWVkJQGpqqtMDFp1HcvVNkqvvqaystDuc3h4Oi73RaMRqtWqfbTYbAQEB151mtVoJDQ3V2oOCgrBarXTv3t2uz4iICHJycujVqxcGg8GpAQv3yM7OZtCgQcTExFBZWcmCBQskVx8gufq2xsZGKisriYiIcHpZh8U+MjKSTz/9lPHjx1NUVITJZNKmDRkyhP/4j/+grq6O+vp6ysrKMJlMREZGsn//fhITE8nPzycqKsquz6CgIIYPH+70YIX7PPDAA3z66aekpaVx8eJFBg4cqE2TXL2X5Or7nN2jb+anlFJtzdB8dv/rr79GKcXatWvJz88nLCyMsWPHsmvXLnJzc1FKMXfuXMaNG8f58+dZvHgxVquVm266iZdffplu3bq5NEDROSRX3yS5itY4LPYd5cqlm57G0TZkZGRQWFhISEgI0PSn9LXHRj3J0aNHeemll9ixY4dd+759+9i4cSMBAQFMnDiRKVOmtNmP5OpZJNcfSa6tUJ1s7969avHixUoppb766iv1+OOPa9POnTun4uPjVV1dnbp06ZL2b0/T1jYopVRycrK6cOHCjRiaU7Zs2aLi4+PV5MmT7drr6+tVbGysqq6uVnV1dSoxMVFVVla22Zfk6jkkV3uS6/V1+h207b10MzQ0VLsUzNO0tQ02m43y8nJWrVpFcnIyu3fvvlHDdCgsLIwNGza0aC8rKyMsLIwePXoQGBhIVFQUX375ZZt9Sa6eQ3K1J7len8MTtB3lyqWbnqatbaitrSUtLY0ZM2bQ2NhIeno6ERER3HXXXTdwxNc3btw4Tp061aLdlRwkV88hudqTXK+v0/fsXbl009O0tQ3BwcGkp6cTHByM0Whk5MiRHrm30xZXcpBcPZ/k2kRybdLpxT4yMpL8/HyA6166WVBQQF1dHTU1NdqlYJ6mrW34/vvvSUlJobGxkatXr1JYWMjgwYNv1FBdMmDAAMrLy6murqa+vp4jR44wbNiwNpeRXD2f5Cq5XqvTD+PExcVx8OBBkpOTtUvBtm/frl0KNm3aNKZOnYpSigULFtC1a9fOHpLTHG1DQkICU6ZMoUuXLiQkJHDnnXfe6CG3y549e6itrSUpKYklS5Ywa9YslFJMnDiRPn36tLms5Oq5JFfJ9Xo6/dJLIYQQN548z14IIXRAir0QQuiAFHshhNABKfZCCKEDUuyFEEIH2lXsjx49yrRp01q079u3j4kTJ5KUlMSuXbsAuHLlCvPnz2fq1KnMnj2bqqoq945YuI3k6rskW/FTDi+9fP311/nwww8JDg7WvhwAV69eZfz48ezevZvg4GBSUlL4wx/+wJ49e7BYLMyfP5+PPvqIr776ihUrVtj1eeXKFYqLi+VlCDfQzp07ycvLo2vXrqxcuZKIiAiCgoIkVx+wc+dO/u///g+DwcD7779PUFAQ4PrPrOTqOa59eUlzru3l8Kaq5ofxPP/883bt1z6MB9AexlNQUMBjjz0GNL3PMjs7u0WfxcXF8oozD5KamkpOTg7Dhw+XXH1McXGx9uIRV7OVXD1P88+rMxwWe2cfxuPofZYAvXr10gbct29fpwYs3OfMmTOsWrWKsrIyLRPJ1Tf87W9/45lnntEyAdezlVw9x5kzZ0hNTbXLtb1cflyCo/dZNrf99H2WgPanYN++fenXr5+rQxBuEBgYCPyYieTqG86cOQNgd9jF1WwlV8/jyuE0l6/Gae1hPM3vswSu+z5L4dkkV98l2eqb03v2jh7Gk5KSwuLFi0lJSaFLly68/PLLnTFu4WZ/+ctfCAoKklx9kPzMCqDzX0t4PWazWZlMJmU2m2/E6sU13JmF5Oo5JFff1JEs5KYqIYTQASn2QgihA1LshRBCB6TYCyGEDkixF0IIHZBiL4QQOiDFXgghdECKvRBC6IAUeyGE0AEp9kIIoQNS7IUQQgek2AshhA5IsRdCCB2QYi+EEDogxV4IIXRAir0QQuiAFHshhNABh68ltNlsrF69mtLSUgIDA8nIyCA8PByAEydOsHbtWm3eoqIiNm7cyJAhQxg3bhwmkwmA2NhYHn300U7aBOGK5lyPHTsGQEVFhfYyacnVe0muojUOi31eXh719fXk5uZSVFTEunXr2LRpEwB33303O3bsAODjjz+md+/ejBo1is8//5z4+HhWrlzZuaMXLmvONSsri7Fjx7J582ZGjBgBSK7eTHIVrXF4GKegoICYmBgAhg4dSnFxcYt5amtr2bBhA8uXLweguLiY48ePk5aWxtNPP825c+fcPGzRUdfmClBaWtpiHsnV+0iuojUOi73FYsFoNGqfDQYDDQ0NdvPs3r2bhx56iJ49ewLwy1/+kqeffpq3336b2NhYMjIy3Dxs0VGSq2+SXEVrHBZ7o9GI1WrVPttsNgIC7I/+7Nmzh8mTJ2ufR44cqf3pGBcXx9///nd3jVe4ieTqmyRX0RqHxT4yMpL8/Hyg6YRO80mcZjU1NdTX13PLLbdobStWrGDv3r0AHDp0iMGDB7tzzMINrs0VoH///nbTJVfvJLmK1jg8QRsXF8fBgwdJTk5GKcXatWvZvn07YWFhjB07lu+++47bbrvNbpmFCxeybNky3n33XYKDg+XPQg/UnOv8+fMBmDdvnuTqAyRX0Sp1A5jNZmUymZTZbL4RqxfXcGcWkqvnkFx9U0eykJuqhBBCB6TYCyGEDkixF0IIHZBiL4QQOiDFXgghdECKvRBC6IBPFfuzZ88yYsQIzGaz1nbgwAGmTp3Kr371K4YNG8b06dMpKipyeR2HDh0iJSWFYcOGERMTw5o1a+zuWOyIkpISIiIi2LBhg1378uXLyczMdMs6vJE35jpp0iQGDhzY4r+nn35am0fvuYJ3ZltVVcWKFSu47777iIyMZNq0aS3G54nZ+lSxX7NmDQ8//DC33347AIcPH2b27NnU1NSwYMECnnzySU6ePElaWpr2CFhnHDp0iJkzZ3L16lWee+45EhISyM3N5bHHHsNms3Vo7A0NDSxdupSrV6+2mPbkk0+Sm5tLSUlJh9bhrbwtV6UUZWVlxMbG8rvf/c7uv/T0dG0+vecK3petxWIhNTWVjz/+mJSUFP793/+ds2fP8uijj/L1119r83lktu6/7N+xzrhJ4/Dhw2rQoEHq9OnTWltCQoIaPXq0qq2t1doqKytVdHS0mj59utPreOSRR9SDDz6oLl++rLW9/fbbymQyqc8++6xD48/KylKDBw9WJpNJvfbaay2mL1u2TKWnp3doHdfj6TffeGOuJ0+eVCaTSf3xj390OK9ec1XKO7N95ZVX1MCBA9Xhw4e1tnPnzqkhQ4aoRYsW2c3bGdnKTVXAm2++SVRUlPbMj3/+85+UlJTw0EMPERwcrM33i1/8gujoaL766iun+q+rq+Omm25iypQpBAUFae333HMPcP1HybZXaWkpmzZtYt68ea3OM3nyZP7617961p7Cz8Abc/32228BGDBggMN59ZoreF+2Sin++7//m9GjRxMdHa219+rVi+eff57hw4fbze9p2fpEsf/hhx/49NNPiY2N1dqMRiN//vOfmT59eov5L168iMFgcGodXbt2Zdu2bTz++ON27SdOnADg1ltvdX7g/Hj45v777+c3v/lNq/MNHTqUvn37kpOT49J6vJG35vrNN98APxb72traVufVY67gndmeOnWKs2fPct999wFNxb/52H9qaipTpkyxm9/TsnX4IDRvcODAARobGxk9erTWZjAYuOOOO1rMW1JSQmFhIb/+9a87tM6Kigq++OIL1q9fj8lkIi4uzqV+Xn/9dcrLy8nOzm7x3PGfio6Otnuioa/z1ly/+eYbQkJCyMzM5H//93+pra3l9ttvZ8GCBTz88MMt5tdbruCd2ZaXlwNw8803s379enbt2oXFYiEsLIylS5cyZsyYFst4UrY+UewLCgro1q2bdpKnNVarlcWLFwMwZ84cl9dXXV2tBRscHMyKFSvo2rWr0/188803bNy4kVWrVtG3b19OnTrV5vwmk4k9e/ZgNpsdbqsv8NZcv/32W6xWKzU1Nfzud7/j0qVL/Nd//RfPPvssV69eZcKECXbz6y1X8M5sL126BMB//ud/EhAQwPLly/H392fbtm08+eSTbNu2Tdvrb+ZJ2frEYRyz2cxtt92Gn59fq/NcvnyZJ554gpKSEubMmaMdt3OFn58fr776KuvXr2fAgAHMmDFDex54ezU2NrJkyRKioqJa/PnXmuYvi6NfCr7CG3MFmDJlCqtWreK1114jLi6OiRMnkpuby+23387vf/97Ghsb7ebXW67gndnW19cDTUX/3XffJTExkQkTJpCTk0P37t15+eWXWyzjSdn6RLGvrq62exXbT126dImZM2fyxRdfMHHiRBYsWNCh9fXo0YPx48drQd96661OX1O7bds2SktLWbhwIVVVVVRVVWl7DpcvX6aqqqrFpWHN23jx4sUOjd9beGOuACkpKaSmptq1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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for i in range(1, 7):\n", " plt.subplot(2, 3, i)\n", " plt.text(0.5, 0.5, str((2, 3, i)),\n", " fontsize=18, ha='center')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The command `plt.subplots_adjust` can be used to adjust the spacing between these plots.\n", "The following code uses the equivalent object-oriented command, `fig.add_subplot`; the following figure shows the result:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plt.figure()\n", "fig.subplots_adjust(hspace=0.4, wspace=0.4)\n", "for i in range(1, 7):\n", " ax = fig.add_subplot(2, 3, i)\n", " ax.text(0.5, 0.5, str((2, 3, i)),\n", " fontsize=18, ha='center')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here we've used the `hspace` and `wspace` arguments of `plt.subplots_adjust`, which specify the spacing along the height and width of the figure, in units of the subplot size (in this case, the space is 40% of the subplot width and height)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## plt.subplots: The Whole Grid in One Go\n", "\n", "The approach just described quickly becomes tedious when creating a large grid of subplots, especially if you'd like to hide the x- and y-axis labels on the inner plots.\n", "For this purpose, `plt.subplots` is the easier tool to use (note the `s` at the end of `subplots`). Rather than creating a single subplot, this function creates a full grid of subplots in a single line, returning them in a NumPy array.\n", "The arguments are the number of rows and number of columns, along with optional keywords `sharex` and `sharey`, which allow you to specify the relationships between different axes.\n", "\n", "Let's create a $2 \\times 3$ grid of subplots, where all axes in the same row share their y-axis scale, and all axes in the same column share their x-axis scale (see the following figure):" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(2, 3, sharex='col', sharey='row')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "By specifying `sharex` and `sharey`, we've automatically removed inner labels on the grid to make the plot cleaner.\n", "The resulting grid of axes instances is returned within a NumPy array, allowing for convenient specification of the desired axes using standard array indexing notation (see the following figure):" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# axes are in a two-dimensional array, indexed by [row, col]\n", "for i in range(2):\n", " for j in range(3):\n", " ax[i, j].text(0.5, 0.5, str((i, j)),\n", " fontsize=18, ha='center')\n", "fig" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In comparison to `plt.subplot`, `plt.subplots` is more consistent with Python's conventional zero-based indexing, whereas `plt.subplot` uses MATLAB-style one-based indexing." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## plt.GridSpec: More Complicated Arrangements\n", "\n", "To go beyond a regular grid to subplots that span multiple rows and columns, `plt.GridSpec` is the best tool.\n", "`plt.GridSpec` does not create a plot by itself; it is rather a convenient interface that is recognized by the `plt.subplot` command.\n", "For example, a `GridSpec` for a grid of two rows and three columns with some specified width and height space looks like this:" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "grid = plt.GridSpec(2, 3, wspace=0.4, hspace=0.3)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "From this we can specify subplot locations and extents using the familiar Python slicing syntax (see the following figure):" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.subplot(grid[0, 0])\n", "plt.subplot(grid[0, 1:])\n", "plt.subplot(grid[1, :2])\n", "plt.subplot(grid[1, 2]);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This type of flexible grid alignment has a wide range of uses.\n", "I most often use it when creating multiaxes histogram plots like the ones shown in the following figure:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Create some normally distributed data\n", "mean = [0, 0]\n", "cov = [[1, 1], [1, 2]]\n", "rng = np.random.default_rng(1701)\n", "x, y = rng.multivariate_normal(mean, cov, 3000).T\n", "\n", "# Set up the axes with GridSpec\n", "fig = plt.figure(figsize=(6, 6))\n", "grid = plt.GridSpec(4, 4, hspace=0.2, wspace=0.2)\n", "main_ax = fig.add_subplot(grid[:-1, 1:])\n", "y_hist = fig.add_subplot(grid[:-1, 0], xticklabels=[], sharey=main_ax)\n", "x_hist = fig.add_subplot(grid[-1, 1:], yticklabels=[], sharex=main_ax)\n", "\n", "# Scatter points on the main axes\n", "main_ax.plot(x, y, 'ok', markersize=3, alpha=0.2)\n", "\n", "# Histogram on the attached axes\n", "x_hist.hist(x, 40, histtype='stepfilled',\n", " orientation='vertical', color='gray')\n", "x_hist.invert_yaxis()\n", "\n", "y_hist.hist(y, 40, histtype='stepfilled',\n", " orientation='horizontal', color='gray')\n", "y_hist.invert_xaxis()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This type of distribution plotted alongside its margins is common enough that it has its own plotting API in the Seaborn package; see [Visualization With Seaborn](04.14-Visualization-With-Seaborn.ipynb) for more details." ] } ], "metadata": { "anaconda-cloud": {}, "jupytext": { "encoding": "# -*- coding: utf-8 -*-", "formats": "ipynb,md" }, "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.9.2" } }, "nbformat": 4, "nbformat_minor": 4 }