handson-ml/tools_matplotlib.ipynb

1956 lines
1.0 MiB
Plaintext
Raw Permalink Normal View History

2016-02-16 21:40:20 +01:00
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
2016-03-03 18:29:41 +01:00
"**Tools - matplotlib**\n",
2016-02-16 21:40:20 +01:00
"\n",
"*This notebook demonstrates how to use the matplotlib library to plot beautiful graphs.*"
2016-02-16 21:40:20 +01:00
]
},
2021-03-01 22:13:13 +01:00
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<table align=\"left\">\n",
" <td>\n",
" <a href=\"https://colab.research.google.com/github/ageron/handson-ml3/blob/main/tools_matplotlib.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n",
2021-03-01 22:13:13 +01:00
" </td>\n",
2021-05-25 21:31:19 +02:00
" <td>\n",
" <a target=\"_blank\" href=\"https://kaggle.com/kernels/welcome?src=https://github.com/ageron/handson-ml3/blob/main/tools_matplotlib.ipynb\"><img src=\"https://kaggle.com/static/images/open-in-kaggle.svg\" /></a>\n",
2021-05-25 21:31:19 +02:00
" </td>\n",
2021-03-01 22:13:13 +01:00
"</table>"
]
},
2016-03-03 18:29:41 +01:00
{
"cell_type": "markdown",
"metadata": {
"toc": "true"
},
"source": [
"# Table of Contents\n",
" <p><div class=\"lev1\"><a href=\"#Plotting-your-first-graph\"><span class=\"toc-item-num\">1&nbsp;&nbsp;</span>Plotting your first graph</a></div><div class=\"lev1\"><a href=\"#Line-style-and-color\"><span class=\"toc-item-num\">2&nbsp;&nbsp;</span>Line style and color</a></div><div class=\"lev1\"><a href=\"#Saving-a-figure\"><span class=\"toc-item-num\">3&nbsp;&nbsp;</span>Saving a figure</a></div><div class=\"lev1\"><a href=\"#Subplots\"><span class=\"toc-item-num\">4&nbsp;&nbsp;</span>Subplots</a></div><div class=\"lev1\"><a href=\"#Multiple-figures\"><span class=\"toc-item-num\">5&nbsp;&nbsp;</span>Multiple figures</a></div><div class=\"lev1\"><a href=\"#Pyplot's-state-machine:-implicit-vs-explicit\"><span class=\"toc-item-num\">6&nbsp;&nbsp;</span>Pyplot's state machine: implicit <em>vs</em> explicit</a></div><div class=\"lev1\"><a href=\"#Pylab-vs-Pyplot-vs-Matplotlib\"><span class=\"toc-item-num\">7&nbsp;&nbsp;</span>Pylab <em>vs</em> Pyplot <em>vs</em> Matplotlib</a></div><div class=\"lev1\"><a href=\"#Drawing-text\"><span class=\"toc-item-num\">8&nbsp;&nbsp;</span>Drawing text</a></div><div class=\"lev1\"><a href=\"#Legends\"><span class=\"toc-item-num\">9&nbsp;&nbsp;</span>Legends</a></div><div class=\"lev1\"><a href=\"#Non-linear-scales\"><span class=\"toc-item-num\">10&nbsp;&nbsp;</span>Non-linear scales</a></div><div class=\"lev1\"><a href=\"#Ticks-and-tickers\"><span class=\"toc-item-num\">11&nbsp;&nbsp;</span>Ticks and tickers</a></div><div class=\"lev1\"><a href=\"#Polar-projection\"><span class=\"toc-item-num\">12&nbsp;&nbsp;</span>Polar projection</a></div><div class=\"lev1\"><a href=\"#3D-projection\"><span class=\"toc-item-num\">13&nbsp;&nbsp;</span>3D projection</a></div><div class=\"lev1\"><a href=\"#Scatter-plot\"><span class=\"toc-item-num\">14&nbsp;&nbsp;</span>Scatter plot</a></div><div class=\"lev1\"><a href=\"#Lines\"><span class=\"toc-item-num\">15&nbsp;&nbsp;</span>Lines</a></div><div class=\"lev1\"><a href=\"#Histograms\"><span class=\"toc-item-num\">16&nbsp;&nbsp;</span>Histograms</a></div><div class=\"lev1\"><a href=\"#Images\"><span class=\"toc-item-num\">17&nbsp;&nbsp;</span>Images</a></div><div class=\"lev1\"><a href=\"#Animations\"><span class=\"toc-item-num\">18&nbsp;&nbsp;</span>Animations</a></div><div class=\"lev1\"><a href=\"#Saving-animations-to-video-files\"><span class=\"toc-item-num\">19&nbsp;&nbsp;</span>Saving animations to video files</a></div><div class=\"lev1\"><a href=\"#What's-next?\"><span class=\"toc-item-num\">20&nbsp;&nbsp;</span>What's next?</a></div>"
2016-03-03 18:29:41 +01:00
]
},
2016-02-16 21:40:20 +01:00
{
"cell_type": "markdown",
"metadata": {},
"source": [
2016-03-03 18:29:41 +01:00
"# Plotting your first graph"
2016-02-16 21:40:20 +01:00
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"First we need to import the `matplotlib` library."
2016-02-16 21:40:20 +01:00
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
2016-02-16 21:40:20 +01:00
"source": [
"import matplotlib"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now let's plot our first graph! :)"
2016-02-16 21:40:20 +01:00
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2016-02-16 21:40:20 +01:00
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"plt.plot([1, 2, 4, 9, 5, 3])\n",
"plt.show()"
2016-02-16 21:40:20 +01:00
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Yep, it's as simple as calling the `plot` function with some data, and then calling the `show` function!"
2016-02-16 21:40:20 +01:00
]
},
{
"cell_type": "markdown",
"metadata": {},
2016-02-16 21:40:20 +01:00
"source": [
"**Note**:\n",
"\n",
"> Matplotlib can output graphs using various backend graphics libraries, such as Tk, wxPython, etc. When running Python using the command line, you may want to specify which backend to use right after importing matplotlib and before plotting anything. For example, to use the Tk backend, run `matplotlib.use(\"TKAgg\")`.\n",
"> However, in a Jupyter notebook, things are easier: importing `import matplotlib.pyplot` automatically registers Jupyter itself as a backend, so the graphs show up directly within the notebook. It used to require running `%matplotlib inline`, so you'll still see it in some notebooks, but it's not needed anymore."
2016-02-16 21:40:20 +01:00
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If the `plot` function is given one array of data, it will use it as the coordinates on the vertical axis, and it will just use each data point's index in the array as the horizontal coordinate.\n",
"You can also provide two arrays: one for the horizontal axis `x`, and the second for the vertical axis `y`:"
]
},
{
"cell_type": "code",
"execution_count": 3,
2016-02-16 21:40:20 +01:00
"metadata": {
"scrolled": true
},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2016-02-16 21:40:20 +01:00
"source": [
"plt.plot([-3, -2, 5, 0], [1, 6, 4, 3])\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The axes automatically match the extent of the data. We would like to give the graph a bit more room, so let's call the `axis` function to change the extent of each axis `[xmin, xmax, ymin, ymax]`."
2016-02-16 21:40:20 +01:00
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2016-02-16 21:40:20 +01:00
"source": [
"plt.plot([-3, -2, 5, 0], [1, 6, 4, 3])\n",
"plt.axis([-4, 6, 0, 7])\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now, let's plot a mathematical function. We use NumPy's `linspace` function to create an array `x` containing 500 floats ranging from -2 to 2, then we create a second array `y` computed as the square of `x` (to learn about NumPy, read the [NumPy tutorial](tools_numpy.ipynb))."
2016-02-16 21:40:20 +01:00
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2016-02-16 21:40:20 +01:00
"source": [
"import numpy as np\n",
"\n",
"x = np.linspace(-2, 2, 500)\n",
2016-02-16 21:40:20 +01:00
"y = x**2\n",
"\n",
"plt.plot(x, y)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"That's a bit dry, let's add a title, and x and y labels, and draw a grid."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEWCAYAAABrDZDcAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAA2dUlEQVR4nO3dd3xUZdr/8c+VHkggQCCUAKEjIi2hWNCEtSB2V1fUta3KYtl127O4q6urj6u77q5d14a9BJVVEbEgBgWlRrr0EEhooYaEkH79/pjh+cWYMilnziRzvV+veTEz58w539zAXDnnPue+RVUxxhgTvELcDmCMMcZdVgiMMSbIWSEwxpggZ4XAGGOCnBUCY4wJclYIjDEmyFkhMKaZiEi0iHwkIvki8q6f971ORFL9uU/TelghMAFHRE4TkW+9X6gHReQbERntdi4fXAYkAJ1U9XKndiIir4jIA1XfU9UTVXW+U/s0rVuY2wGMqUpE2gGzgVuAd4AIYDxQ4kKWUFWtaMBHegObVLXcqUzGOMGOCEygGQigqm+raoWqHlPVz1V1NXi+nEXkXyKyX0SyROQ2EVERCfMuzxaRM49vTET+KiJvVHn9rojs8R5tfC0iJ1ZZ9oqI/EdE5ojIUSBNRLqLyEwR2Sci20Tk1zWFFpH7gHuAK0SkUERurGHfSdWyzheR//Ue8RSIyOciEl9l/eNHRodFJEdErheRKcDVwB+9+/mo+s8tIpEi8piI7PI+HhORSO+yVBHJFZHfi0ieiOwWkRua+HdmWjgrBCbQbAIqRORVETlXRDpUW34zcD4wEkjBczqmIT4BBgBdgO+AN6stvwr4GxALfAt8BKwCegA/AX4jIudU36iq3gs8CMxQ1RhVne5jnquAG7x5IoA/AIhIL2/WJ4HOwAhgpao+7838sHc/F9SwzbuAcd7PDAfGAHdXWd4VaO/9mW4Enq6hnU0QsUJgAoqqHgFOAxR4AdgnIrNEJMG7ys+Ax1Q1R1UPAg81cPsvqWqBqpYAfwWGi0j7Kqt8qKrfqGolcBLQWVXvV9VSVc3yZprcpB/yh15W1U2qegzPqbAR3vevBr7wHhmVqeoBVV3p4zavBu5X1TxV3QfcB1xTZXmZd3mZqs4BCoFBzfHDmJbJCoEJOKq6XlWvV9VEYCjQHXjMu7g7kFNl9e2+btd7WunvIrJVRI4A2d5F8VVWq7rt3kB376mZwyJyGPgzng7h5rKnyvMiIMb7vCewtZHb7M4P22W7973jDlTrx6i6XxOErBCYgKaqG4BX8BQEgN14viSP61XtI0eBNlVed63y/CrgIuBMPKdGkrzvS9VdVnmeA2xT1bgqj1hVneRj/Lqy1CcH6FfLsvqGDN6Fp4gd18v7njE1skJgAoqIDPZ2ZCZ6X/cErgQWe1d5B/i1iCR6z2vfWW0TK4HJIhIuItX7EGLxXH10AM8X9IP1xFkKHBGRad57BEJFZGgDLmVdCZwuIr28p5/+5OPnwNMPcKaI/ExEwkSkk4iM8C7bC/St47NvA3eLSGdv5/M9wBt1rG+CnBUCE2gKgLHAEu+VO4uBtcDvvctfAD7D04H7HfDfap//C57fpA/hOTf+VpVlr+E5TbIT+J7/X1xq5L109AI85+23AfuBF/EcTdRLVecCM4DVQCaey2J9oqo7gEl4fu6DeIrKcO/i6cAQ7+mqD2r4+APAcu9+1+BppwdqWM8YAMQmpjEtmYgk4fmSDrfr941pHDsiMMaYIGeFwBhjgpydGjLGmCBnRwTGGBPkWtygc/Hx8ZqUlNSozx49epS2bds2b6BmEKi5IHCzWa6GsVwN0xpzZWZm7lfVzjUuVNUW9UhOTtbGysjIaPRnnRSouVQDN5vlahjL1TCtMRewXGv5XrVTQ8YYE+SsEBhjTJCzQmCMMUHOCoExxgQ5KwTGGBPkHC8E3hEbV4jIjwbcEo8nRGSLiKwWkVFO5zHGGPND/jgiuANYX8uyc/FMGzgAmAL8xw95jDHGVOFoIfCOKX8enqF7a3IR8Jr3MtfFQJyIdHMiy5a8Qt5cX0JpeaUTmzfGGEc9/sVmNh6scGTbjo41JCLv4ZlTNhb4g6qeX235bODvqrrQ+3oeME1Vl1dbbwqeIwYSEhKS09PTG5xl1b5yHs0s4bYRkYzuGlg3VBcWFhITE5gzBQZqNsvVMJarYQItV15RJX/8+hjn91IuG9K4XGlpaZmqmlLTMse+EUXkfCBPVTNFJLW21Wp470eVSVWfB54HSElJ0dTU2jZXu/GVyqvrPmFNUTv+J3VMgz/vpPnz59OYn8kfAjWb5WoYy9UwgZbrn59tIES2MqFvG0dyOXlq6FTgQhHJBtKBCSJSfbq8XH44/2wiDs2tGhoijO8RxoLN+8g5WOTELowxptmVV1Ty7vJcUgd1oWOUM1/ZjhUCVf2TqiaqahIwGfhSVX9ebbVZwLXeq4fGAfmqutupTOMTPQdA72bmOrULY4xpVhkb95FXUMLk0T3rX7mR/H4fgYhMFZGp3pdzgCxgC565aG91ct/x0SGMH9CZd5fnUFFp8zAYYwLfjGU76BwbSdrgLo7twy+FQFXnH+8oVtVnVfVZ73NV1dtUtZ+qnlS9k9gJk0f3ZHd+MV9v2uf0rowxpkn25Bfz5YY8LktOJDzUua/roLuz+MwTEujUNoK3l+5wO4oxxtTpvcwcKhWuSHHutBAEYSGICAvhp8mJzNuQR15BsdtxjDGmRpWVyozlOZzctxNJ8c5OkhN0hQDgitE9qahU3rNOY2NMgFqUdYCcg8eYPMbZowEI0kLQr3MMY/p0ZMayHJy8oc4YYxorfVkO7aPDOefEro7vKygLAXg6jbcfKGJR1gG3oxhjzA8cPFrKZ2v3cMnIHkSFhzq+v6AtBJNO6kZsVBgzluW4HcUYY37g/RU7Ka2o9MtpIQjiQhAVHsolI3vwydo9HC4qdTuOMcYAoKrMWLaDET3jGNy1nV/2GbSFAGDy6F6Ullfy/oqdbkcxxhgAvttxmE17Cx29k7i6oC4EQ7q3Y1hie9KXWqexMSYwvL10B20jQjl/eHe/7TOoCwF4jgo27i3gux2H3Y5ijAlyh4tK+WjVLi4e2YOYSP8Nlx/0heDCEd1pGxHKm0u2ux3FGBPkZn63k5LySq4e29uv+w36QhATGcbFI3swe/Vu6zQ2xrhGVXlzyXZG9YpjSHf/dBIfF/SFAODn43pTWl5pdxobY1yzKOsAWfuO+v1oAKwQAHBCt3Yk9+7Am0t2UGnDUxtjXPDmkh20jw7nvGGOTNteJysEXj8f14tt+4/y7Va709gY4195BcV8tnYPlycn+uVO4uqsEHidO7QbHdqE88Zi6zQ2xvjXu8tzKa9Urhzby5X9O1YIRCRKRJaKyCoRWSci99WwTqqI5IvISu/jHqfy1CcqPJTLU3oyd/1e9h6x4amNMf5RUam8tWQHp/TrRL/OMa5kcPKIoASYoKrDgRHARO+8xNUtUNUR3sf9Duap11VjelFRqaQvtfGHjDH+8dWmPHYePsbPx/m/k/g4JyevV1Ut9L4M9z4Cuic2Kb4t4wfE8/bSHZRXVLodxxgTBN5Y7JmT+KwhCa5lECeHVhCRUCAT6A88rarTqi1PBWYCucAu4A+quq6G7UwBpgAkJCQkp6enNypPYWEhMTF1H3pl7i3nyRUl/GpkJMkJ/rmzz5dcbgnUbJarYSxXw/gr1/5jlfzPV8c4v184Px0Q4WiutLS0TFVNqXGhqjr+AOKADGBotffbATHe55OAzfVtKzk5WRsrIyOj3nXKyit03INf6M9fXNzo/TSUL7ncEqjZLFfDWK6G8Veuhz9dr33unK25h4p8Wr8puYDlWsv3ql+uGlLVw8B8YGK194+o9/SRqs4BwkUk3h+ZahMWGsLk0b1YsHk/2fuPuhnFGNOKlZZXMmNZLmmDutAjLtrVLE5eNdRZROK8z6OBM4EN1dbpKiLifT7Gm8f1C/knj+lJaIjw9tIdbkcxxrRSn3+/h/2FJa52Eh/n5BFBNyBDRFYDy4C5qjpbRKaKyFTvOpcBa0VkFfAEMNl7COOqhHZRnD0
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2016-02-16 21:40:20 +01:00
"source": [
"plt.plot(x, y)\n",
"plt.title(\"Square function\")\n",
"plt.xlabel(\"x\")\n",
"plt.ylabel(\"y = x**2\")\n",
"plt.grid(True)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
2016-03-03 18:29:41 +01:00
"# Line style and color"
2016-02-16 21:40:20 +01:00
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"By default, matplotlib draws a line between consecutive points."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2016-02-16 21:40:20 +01:00
"source": [
"plt.plot([0, 100, 100, 0, 0, 100, 50, 0, 100],\n",
" [0, 0, 100, 100, 0, 100, 130, 100, 0])\n",
2016-02-16 21:40:20 +01:00
"plt.axis([-10, 110, -10, 140])\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can pass the 3rd argument to change the line's style and color.\n",
2016-02-16 21:40:20 +01:00
"For example `\"g--\"` means \"green dashed line\"."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2016-02-16 21:40:20 +01:00
"source": [
"plt.plot([0, 100, 100, 0, 0, 100, 50, 0, 100],\n",
" [0, 0, 100, 100, 0, 100, 130, 100, 0],\n",
" \"g--\")\n",
2016-02-16 21:40:20 +01:00
"plt.axis([-10, 110, -10, 140])\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can plot multiple lines on one graph very simply: just pass `x1, y1, [style1], x2, y2, [style2], ...`\n",
"\n",
"For example:"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2016-02-16 21:40:20 +01:00
"source": [
"plt.plot([0, 100, 100, 0, 0], [0, 0, 100, 100, 0], \"r-\",\n",
" [0, 100, 50, 0, 100], [0, 100, 130, 100, 0], \"g--\")\n",
2016-02-16 21:40:20 +01:00
"plt.axis([-10, 110, -10, 140])\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Or simply call `plot` multiple times before calling `show`."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2016-02-16 21:40:20 +01:00
"source": [
"plt.plot([0, 100, 100, 0, 0], [0, 0, 100, 100, 0], \"r-\")\n",
"plt.plot([0, 100, 50, 0, 100], [0, 100, 130, 100, 0], \"g--\")\n",
"plt.axis([-10, 110, -10, 140])\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can also draw simple points instead of lines. Here's an example with green dashes, red dotted line and blue triangles.\n",
"Check out [the documentation](https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.plot.html#matplotlib.pyplot.plot) for the full list of style & color options."
2016-02-16 21:40:20 +01:00
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2016-02-16 21:40:20 +01:00
"source": [
"x = np.linspace(-1.4, 1.4, 30)\n",
2016-02-16 21:40:20 +01:00
"plt.plot(x, x, 'g--', x, x**2, 'r:', x, x**3, 'b^')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The plot function returns a list of `Line2D` objects (one for each line). You can set extra properties on these lines, such as the line width, the dash style or the alpha level. See the full list of properties in [the documentation](https://matplotlib.org/stable/tutorials/introductory/pyplot.html#controlling-line-properties)."
2016-02-16 21:40:20 +01:00
]
},
{
"cell_type": "code",
"execution_count": 12,
2016-02-16 21:40:20 +01:00
"metadata": {
"scrolled": true
},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2016-02-16 21:40:20 +01:00
"source": [
"x = np.linspace(-1.4, 1.4, 30)\n",
2016-02-16 21:40:20 +01:00
"line1, line2, line3 = plt.plot(x, x, 'g--', x, x**2, 'r:', x, x**3, 'b^')\n",
"line1.set_linewidth(3.0)\n",
"line1.set_dash_capstyle(\"round\")\n",
"line3.set_alpha(0.2)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
2016-03-03 18:29:41 +01:00
"# Saving a figure\n",
"Saving a figure to disk is as simple as calling [`savefig`](https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.savefig.html) with the name of the file (or a file object). The available image formats depend on the graphics backend you use."
2016-02-16 21:40:20 +01:00
]
},
{
"cell_type": "code",
"execution_count": 13,
2016-02-16 21:40:20 +01:00
"metadata": {
"scrolled": true
},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2016-02-16 21:40:20 +01:00
"source": [
"x = np.linspace(-1.4, 1.4, 30)\n",
2016-02-16 21:40:20 +01:00
"plt.plot(x, x**2)\n",
"plt.savefig(\"my_square_function.png\", transparent=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
2016-03-03 18:29:41 +01:00
"# Subplots\n",
2016-02-16 21:40:20 +01:00
"A matplotlib figure may contain multiple subplots. These subplots are organized in a grid. To create a subplot, just call the `subplot` function, and specify the number of rows and columns in the figure, and the index of the subplot you want to draw on (starting from 1, then left to right, and top to bottom). Note that pyplot keeps track of the currently active subplot (which you can get a reference to by calling `plt.gca()`), so when you call the `plot` function, it draws on the *active* subplot.\n"
]
},
{
"cell_type": "code",
"execution_count": 14,
2016-02-16 21:40:20 +01:00
"metadata": {
"scrolled": true
},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2016-02-16 21:40:20 +01:00
"source": [
"x = np.linspace(-1.4, 1.4, 30)\n",
2016-02-16 21:40:20 +01:00
"plt.subplot(2, 2, 1) # 2 rows, 2 columns, 1st subplot = top left\n",
"plt.plot(x, x)\n",
"plt.subplot(2, 2, 2) # 2 rows, 2 columns, 2nd subplot = top right\n",
"plt.plot(x, x**2)\n",
"plt.subplot(2, 2, 3) # 2 rows, 2 columns, 3rd subplot = bottom left\n",
2016-02-16 21:40:20 +01:00
"plt.plot(x, x**3)\n",
"plt.subplot(2, 2, 4) # 2 rows, 2 columns, 4th subplot = bottom right\n",
"plt.plot(x, x**4)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* Note that `subplot(223)` is a shorthand for `subplot(2, 2, 3)`."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It is easy to create subplots that span across multiple grid cells like so:"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 3 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2016-02-16 21:40:20 +01:00
"source": [
"plt.subplot(2, 2, 1) # 2 rows, 2 columns, 1st subplot = top left\n",
"plt.plot(x, x)\n",
"plt.subplot(2, 2, 2) # 2 rows, 2 columns, 2nd subplot = top right\n",
"plt.plot(x, x**2)\n",
"plt.subplot(2, 1, 2) # 2 rows, *1* column, 2nd subplot = bottom\n",
"plt.plot(x, x**3)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If you need more complex subplot positioning, you can use `subplot2grid` instead of `subplot`. You specify the number of rows and columns in the grid, then your subplot's position in that grid (top-left = (0,0)), and optionally how many rows and/or columns it spans. For example:"
2016-02-16 21:40:20 +01:00
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2016-02-16 21:40:20 +01:00
"source": [
"plt.subplot2grid((3,3), (0, 0), rowspan=2, colspan=2)\n",
"plt.plot(x, x**2)\n",
"plt.subplot2grid((3,3), (0, 2))\n",
"plt.plot(x, x**3)\n",
"plt.subplot2grid((3,3), (1, 2), rowspan=2)\n",
"plt.plot(x, x**4)\n",
"plt.subplot2grid((3,3), (2, 0), colspan=2)\n",
"plt.plot(x, x**5)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If you need even more flexibility in subplot positioning, check out the [corresponding matplotlib tutorial](https://matplotlib.org/stable/tutorials/intermediate/arranging_axes.html)."
2016-02-16 21:40:20 +01:00
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
2016-03-03 18:29:41 +01:00
"# Multiple figures\n",
2016-02-16 21:40:20 +01:00
"It is also possible to draw multiple figures. Each figure may contain one or more subplots. By default, matplotlib creates `figure(1)` automatically. When you switch figure, pyplot keeps track of the currently active figure (which you can get a reference to by calling `plt.gcf()`), and the active subplot of that figure becomes the current subplot."
]
},
{
"cell_type": "code",
"execution_count": 17,
2016-02-16 21:40:20 +01:00
"metadata": {
"scrolled": true
},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 720x360 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2016-02-16 21:40:20 +01:00
"source": [
"x = np.linspace(-1.4, 1.4, 30)\n",
2016-02-16 21:40:20 +01:00
"\n",
"plt.figure(1)\n",
"plt.subplot(211)\n",
"plt.plot(x, x**2)\n",
"plt.title(\"Square and Cube\")\n",
"plt.subplot(212)\n",
"plt.plot(x, x**3)\n",
"\n",
"plt.figure(2, figsize=(10, 5))\n",
"plt.subplot(121)\n",
"plt.plot(x, x**4)\n",
"plt.title(\"y = x**4\")\n",
"plt.subplot(122)\n",
"plt.plot(x, x**5)\n",
"plt.title(\"y = x**5\")\n",
"\n",
"plt.figure(1) # back to figure 1, current subplot is 212 (bottom)\n",
"plt.plot(x, -x**3, \"r:\")\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
2016-03-03 18:29:41 +01:00
"# Pyplot's state machine: implicit *vs* explicit\n",
2016-02-16 21:40:20 +01:00
"So far we have used Pyplot's state machine which keeps track of the currently active subplot. Every time you call the `plot` function, pyplot just draws on the currently active subplot. It also does some more magic, such as automatically creating a figure and a subplot when you call `plot`, if they don't exist yet. This magic is convenient in an interactive environment (such as Jupyter).\n",
"\n",
"But when you are writing a program, *explicit is better than implicit*. Explicit code is usually easier to debug and maintain, and if you don't believe me just read the 2nd rule in the Zen of Python:"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The Zen of Python, by Tim Peters\n",
"\n",
"Beautiful is better than ugly.\n",
"Explicit is better than implicit.\n",
"Simple is better than complex.\n",
"Complex is better than complicated.\n",
"Flat is better than nested.\n",
"Sparse is better than dense.\n",
"Readability counts.\n",
"Special cases aren't special enough to break the rules.\n",
"Although practicality beats purity.\n",
"Errors should never pass silently.\n",
"Unless explicitly silenced.\n",
"In the face of ambiguity, refuse the temptation to guess.\n",
"There should be one-- and preferably only one --obvious way to do it.\n",
"Although that way may not be obvious at first unless you're Dutch.\n",
"Now is better than never.\n",
"Although never is often better than *right* now.\n",
"If the implementation is hard to explain, it's a bad idea.\n",
"If the implementation is easy to explain, it may be a good idea.\n",
"Namespaces are one honking great idea -- let's do more of those!\n"
]
}
],
2016-02-16 21:40:20 +01:00
"source": [
"import this"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Fortunately, Pyplot allows you to ignore the state machine entirely, so you can write beautifully explicit code. Simply call the `subplots` function and use the figure object and the list of axes objects that are returned. No more magic! For example:"
]
},
{
"cell_type": "code",
"execution_count": 19,
2016-02-16 21:40:20 +01:00
"metadata": {
"scrolled": true
},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 720x360 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2016-02-16 21:40:20 +01:00
"source": [
"x = np.linspace(-2, 2, 200)\n",
2016-02-16 21:40:20 +01:00
"fig1, (ax_top, ax_bottom) = plt.subplots(2, 1, sharex=True)\n",
"fig1.set_size_inches(10,5)\n",
"line1, line2 = ax_top.plot(x, np.sin(3*x**2), \"r-\", x, np.cos(5*x**2), \"b-\")\n",
"line3, = ax_bottom.plot(x, np.sin(3*x), \"r-\")\n",
2016-02-16 21:40:20 +01:00
"ax_top.grid(True)\n",
"\n",
"fig2, ax = plt.subplots(1, 1)\n",
"ax.plot(x, x**2)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For consistency, we will continue to use pyplot's state machine in the rest of this tutorial, but we recommend using the object-oriented interface in your programs.\n",
"\n",
2016-03-03 18:29:41 +01:00
"# Pylab *vs* Pyplot *vs* Matplotlib\n",
2016-02-16 21:40:20 +01:00
"\n",
"There is some confusion around the relationship between pylab, pyplot and matplotlib. It's simple: matplotlib is the full library, it contains everything including pylab and pyplot.\n",
"\n",
"Pyplot provides a number of tools to plot graphs, including the state-machine interface to the underlying object-oriented plotting library.\n",
"\n",
"Pylab is a convenience module that imports matplotlib.pyplot and NumPy within a single namespace. You will find many examples using pylab, but it is now [strongly discouraged](https://matplotlib.org/stable/api/index.html#module-pylab) (because *explicit* imports are better than *implicit* ones)."
2016-02-16 21:40:20 +01:00
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
2016-03-03 18:29:41 +01:00
"# Drawing text\n",
"You can call `text` to add text at any location in the graph. Just specify the horizontal and vertical coordinates and the text, and optionally some extra arguments. Any text in matplotlib may contain TeX equation expressions, see [the documentation](https://matplotlib.org/stable/tutorials/text/mathtext.html) for more details."
2016-02-16 21:40:20 +01:00
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2016-02-16 21:40:20 +01:00
"source": [
"x = np.linspace(-1.5, 1.5, 30)\n",
2016-02-16 21:40:20 +01:00
"px = 0.8\n",
"py = px**2\n",
"\n",
"plt.plot(x, x**2, \"b-\", px, py, \"ro\")\n",
"\n",
"plt.text(0, 1.5, \"Square function\\n$y = x^2$\", fontsize=20, color='blue',\n",
" horizontalalignment=\"center\")\n",
2016-02-16 21:40:20 +01:00
"plt.text(px - 0.08, py, \"Beautiful point\", ha=\"right\", weight=\"heavy\")\n",
"plt.text(px + 0.05, py - 0.4, \"x = %0.2f\\ny = %0.2f\"%(px, py), rotation=-30,\n",
" color='gray')\n",
2016-02-16 21:40:20 +01:00
"\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* Note: `ha` is an alias for `horizontalalignment`\n",
"\n",
"For more text properties, visit [the documentation](https://matplotlib.org/stable/tutorials/text/text_props.html).\n",
2016-02-16 21:40:20 +01:00
"\n",
"Every so often it is required to annotate elements of a graph, such as the beautiful point above. The `annotate` function makes it easy: just indicate the location of the point of interest, and the position of the text, plus optionally some extra arguments for the text and the arrow."
2016-02-16 21:40:20 +01:00
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2016-02-16 21:40:20 +01:00
"source": [
"plt.plot(x, x**2, px, py, \"ro\")\n",
"plt.annotate(\"Beautiful point\", xy=(px, py), xytext=(px-1.3,py+0.5),\n",
" color=\"green\", weight=\"heavy\", fontsize=14,\n",
" arrowprops={\"facecolor\": \"lightgreen\"})\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can also add a bounding box around your text by using the `bbox` argument:"
2016-02-16 21:40:20 +01:00
]
},
{
"cell_type": "code",
"execution_count": 22,
2020-04-06 09:13:12 +02:00
"metadata": {},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2016-02-16 21:40:20 +01:00
"source": [
"plt.plot(x, x**2, px, py, \"ro\")\n",
"\n",
"bbox_props = dict(boxstyle=\"rarrow,pad=0.3\", ec=\"b\", lw=2, fc=\"lightblue\")\n",
"plt.text(px-0.2, py, \"Beautiful point\", bbox=bbox_props, ha=\"right\")\n",
"\n",
"bbox_props = dict(boxstyle=\"round4,pad=1,rounding_size=0.2\", ec=\"black\",\n",
" fc=\"#EEEEFF\", lw=5)\n",
"plt.text(0, 1.5, \"Square function\\n$y = x^2$\", fontsize=20, color='black',\n",
" ha=\"center\", bbox=bbox_props)\n",
2016-02-16 21:40:20 +01:00
"\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
2022-05-17 09:01:51 +02:00
"Just for fun, if you want an [xkcd](https://xkcd.com)-style plot, just draw within a `with plt.xkcd()` section:"
2016-02-16 21:40:20 +01:00
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
2016-02-16 21:40:20 +01:00
"source": [
"with plt.xkcd():\n",
" plt.plot(x, x**2, px, py, \"ro\")\n",
"\n",
" bbox_props = dict(boxstyle=\"rarrow,pad=0.3\", ec=\"b\", lw=2, fc=\"lightblue\")\n",
" plt.text(px-0.2, py, \"Beautiful point\", bbox=bbox_props, ha=\"right\")\n",
"\n",
" bbox_props = dict(boxstyle=\"round4,pad=1,rounding_size=0.2\", ec=\"black\",\n",
" fc=\"#EEEEFF\", lw=5)\n",
" plt.text(0, 1.5, \"Square function\\n$y = x^2$\", fontsize=20, color='black',\n",
" ha=\"center\", bbox=bbox_props)\n",
2016-02-16 21:40:20 +01:00
"\n",
" plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
2016-03-03 18:29:41 +01:00
"# Legends\n",
2016-02-16 21:40:20 +01:00
"The simplest way to add a legend is to set a label on all lines, then just call the `legend` function."
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2016-02-16 21:40:20 +01:00
"source": [
"x = np.linspace(-1.4, 1.4, 50)\n",
2016-02-16 21:40:20 +01:00
"plt.plot(x, x**2, \"r--\", label=\"Square function\")\n",
"plt.plot(x, x**3, \"g-\", label=\"Cube function\")\n",
"plt.legend(loc=\"best\")\n",
"plt.grid(True)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Non-linear scales\n",
"Matplotlib supports non-linear scales, such as logarithmic or logit scales."
2016-02-16 21:40:20 +01:00
]
},
{
"cell_type": "code",
"execution_count": 25,
2016-02-16 21:40:20 +01:00
"metadata": {
"scrolled": true,
"tags": []
2016-02-16 21:40:20 +01:00
},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAEICAYAAABcVE8dAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAl0UlEQVR4nO3deXhU9d3+8fcnOyEQlkAgbAFBFsMaZAuotLaiIohFhSqCoojg0u3no9bH2qe1tlorCFFUVFwQVARERBAVZd9l3xeBsIVFlhC2kO/vj8ReMQRMSDJnMnO/rmsuOWdy5twZ5M7JOd/5HnPOISIigS/E6wAiIuIbKnwRkSChwhcRCRIqfBGRIKHCFxEJEip8EZEgocIXKYCZfW9m13qdQ6QkqfBFRIKECl9EJEio8EUuwswizWyYme3JfQwzs8g8zz9qZntzn7vXzJyZNfQys8iFqPBFLu7PQAegFdASaAc8CWBm3YA/ANcCDYGrvYkoUjgqfJGLuwP4P+dcunPuAPBXoF/uc7cBbznn1jrnMnOfE/FbKnyRi0sAduRZ3pG77sfnduV5Lu+fRfyOCl/k4vYA9fIs181dB7AXqJ3nuTq+CiVyKVT4Ihc3DnjSzKqZWRzwFPBe7nMfAnebWVMzi859TsRvqfBFLu7vwFJgFbAaWJ67Dufc58BLwCxgC7Agd5vTvo8p8vNMN0ARKRlm1hRYA0Q657K8ziOSn47wRYrBzHqZWYSZVQb+BXyqshd/pcIXKZ77gQPAVuAc8IC3cUQuTKd0RESChI7wRUSCRJjXAS4mLi7OJSYmFmmbEydOUL58+dIJVEKUsWQoY/H5ez5QxkuxbNmyg865auc94Zzz20dycrIrqlmzZhV5G19TxpKhjMXn7/mcU8ZLASx1BXSqTumIiAQJFb6ISJBQ4YuIBAkVvohIkFDhi4gECRW+iEiQUOGLiAQJv/7glb86dfYcW9Iz2HPkJPuPneL46SyyzjmcgwpRYVQsF07l6HDqVImmbpVoosJDvY4sIqLCL4zsbMeynT8wY80+Fm4/xMZ9xzl7rnBzEJlBQmw5rkioSMs6lWhVpxInszR/kYj4ngr/IjLPZDFu8S7eXfA93x/KJCI0hLaJlbm3SwOa14qlduVy1KgYRcVy4YSFGGbG8VNnOXYyi0MnTrPzcCY7DmWy9UAGq9OO8sW6/QCEGLTZPJ8ujarR5fI4WtauRGiIefzdikigU+EXwDnHx8t38/yMDew/dpo2dSvxyLWNuLZpPBWiwi+6baXoCCpFR1C3ajSt61b+yXNHM8+yMu0IH33zHTvPZDPsq028+OUm4mIiuT6pBjc0r0m7+lVU/iJSKlT4+RzMOM2jE1bx9YZ0WtapxIi+bWhXv0qJvHZsdDhXXV6N7D0RXHNNZw6fOMOczQeYsXYfHy3bxbsLdxAXE8mNzWtwa9s6JNWKLZH9ioiACv8n1u05xoC3FnPk5FmevqkZ/TslYlZ6R9tVykfQs1UteraqReaZLL7ekM601XsZt2QXby/YwRUJFbn9yjr0bFmL2OiL/2YhIvJzVPi5Fm07xL1vLyUmKoxPhqbQtGZFn+4/OiKM7i0S6N4igSOZZ/hkxR4+WLKLpz5ZyzOfradX61oMSEmkSQ3f5hKRwKHCB9buOco9Y5ZQIzaKdwe2J6FSOU/zVIqOoH+nRPp3SmTN7qOMXbSDict3M37JLjpdVpW7U+rziybVda5fRIok6D94tffoSe4Zs4SK5cJ5/74Onpd9fkm1Ynn2lhYsfPyX/E+3Jmw/eIL73lnKL174hvcX7eR01jmvI4pIGRHUhZ91LpshY5dz4vQ53hxwJfEVo7yOdEGVy0fwwDWXMefRrqT+tg2x5cJ5YtJqrnpuFqPnbCPzTJbXEUXEzwV14Y+ctYXvdh7h2Vua+/yc/aUKCw3hxhY1+WRoCu8ObEf9uPL8/bP1pPzza0Z8tZljp856HVFE/FTQnsPfkn6ckV9v4eZWCdzUMsHrOEVmZjkf3GpUjWU7DpM6aysvzNzE6Lnbuf/qBgzolEh0RND+9YpIAYLyCN85x9NT1hEdEcr/dm/mdZxiS65XhTcHXMnUhzrTpm4lnpu+kaue+4Yx87brHL+I/FdQFv6czQeZu+Ugv//V5VSNifQ6TolJqhXLW3e3Y8LgjlxWrTxPf7qOX/z7Wz5csousc9lexxMRjwVd4TvnGPblJhJio/ht+7pexykVbROrMH5QB94d2I64mAge/XgV3YbP4esN+8m5ob2IBKOgK/wFWw+xfOcRhnRtSGRY4E5b/OM5/slDUxh1ZzLnsh33jFnKnW8sYt2eY17HExEPBF3hv73ge6qUj6B3cm2vo/iEmdEtqQYzfncVf7mpGWv3HOPGEXN4dMJK9h875XU8EfGhoCr8vUdPMnPdfm6/sk7Q3ZQkIiyEu1Pq8+2funJv5/pM+m431zz/DS/O3MTJM7qwKxIMgqrwP1iyCwf8tl1gnrsvjNjocP58YzO++sM1/KJJdYZ/tZlr//Mt09fs1fl9kQAXNIXvnOPTlXvoUL8qdapEex3Hc3WrRpN6Rxs+GNSBClFhDH5vOXe9uZgt6RleRxORUhI0hb9h33G2HjjBjS1qeh3Fr7RvUJWpD3Xm6ZuasWLXEboNm82z09brNowiAShoPor52aq9hBh0S6rhdRS/ExYawoCU+nRvmcBz0zfw6uxtVIo0zsTtpkfLhFK9J4CI+E7QHOHPXLef9vWrEhdAH7QqaXExkTzXuyWThnSiUqTxyPgV9H19IVsP6DSPSCAIisJPP3aKjfuPc9Xl1byOUia0rluZpzpG8UyvJNbtOcb1w+Yw7MtNmqZBpIwLisKft/UgAF0axXmcpOwIMeOO9vX48o9X0y2pBsO+3Mz1w+ewcNshr6OJyCUKisKfs/kglaPDaVZGpkD2J9UrRPFS39aMuftKzp7Lps9rC3l0wkqOZJ7xOpqIFJFPC9/Mbjaz183sEzP7tS/26Zxj3paDdGoYR4huCXjJrmlcnS9+dzWDr76Mj5fv5pcvfMuk79I0dl+kDCl04ZvZm2aWbmZr8q3vZmYbzWyLmT12sddwzk12zt0HDABuv6TERbT36Cn2HztNu8QqvthdQCsXEcpj1zdh6kOdqVs1mt9/sJK73lxM2g+ZXkcTkUIoyhH+GKBb3hVmFgqkAtcDzYC+ZtbMzJqb2dR8j+p5Nn0yd7tStyrtCAAtasf6YndBoWnNinw8uBP/1/MKlu34getenM27C3eQna2jfRF/ZkX5ldzMEoGpzrmk3OWOwNPOuetylx8HcM49e4HtDfgnMNM59+UFvmYQMAggPj4+efz48YXOB5CRkUFMTMx/lz/aeIbp35/llWujiQj1j1M6+TP6o8JmPJCZzZi1p1l7KJvGlUO4JymS+PK+OVMYSO+jV/w9Hyjjpejatesy51zb855wzhX6ASQCa/Is9wZG51nuB4y8yPYPA8uAUcDgn9tfcnKyK6pZs2b9ZPm3ry9wNwyfXeTXKU35M/qjomTMzs52Hyze6ZL+Mt01fnKae332Vpd1Lrv0wuUKtPfRC/6ezzllvBTAUldApxb3UKygQ+YL/srgnHvJOZfsnBvsnBtVzH3/LOccq9KO0qJ2pdLeVVAzM267sg4zf381KZfF8ffP1tN71Hy2pB/3OpqI5FHcwk8D6uRZrg3sKeZrlpgdhzI5fipL5+99pEZsFKP7t2V4n1ZsP3iCG4bPJXXWFs7q9ooifqG4hb8EaGRm9c0sAugDTCl+rJLx48yPjWtU8DhJ8DAzeraqxczfX82vmsXz/IyN3PLyfDbv19G+iNeKMixzHLAAaGxmaWY20DmXBTwIzADWAx8659aWTtSi237wBAAN4sp7nCT4VKsQSeodbXjljjbsPnKSG0fM5fXZ2zinkTwinin0bJnOub4XWD8NmFZiiUrQtoMnqBwdTqXoCK+jBK3rm9ekbWIVnpi0mmemrWfm+v28cGtL3ZNAxAMBPbXC9oMZ1NfRveeqVYjktX7JPN+7Bev3HKPbsNmMW7xTn9IV8bEAL/wT1I/zn7GxwczMuLVtHab//ip
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAEICAYAAABcVE8dAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAuX0lEQVR4nO3deXxU1f3/8dcnOyQQ9ogkECDsIAhhByUuBayIUlRQUSsICKitbRXq2l9rsV+1biBLEXEl4oJgBKlaUFZlxyCg7AZQQNawZfv8/sjQxhBgwiz3JvN5Ph7zMOdO7r3vGcwnJ+feOUdUFWOMMeVfmNMBjDHGBIcVfGOMCRFW8I0xJkRYwTfGmBBhBd8YY0KEFXxjjAkRVvCNAURku4hc5eMxJorIo/7KZIy/RTgdwJjyQlWHn/5aRHoAb6pqomOBjCnGevjGGBMirOAbU4SIRIvI8yKy2/N4XkSiizz/oIjs8Tw3RERURFI8z00Tkb+JSCwwF7hYRLI9j4udek3GnGYF35hfehjoBLQBWgMdgEcARKQX8ABwFZACXF7SAVT1GNAb2K2qcZ7H7sBHN+bcrOAb80u3Av9PVfeq6j7gL8Agz3M3Aa+q6npVPe55zpgywwq+Mb90MbCjSHuHZ9vp534o8lzRr41xPSv4xvzSbqBekXZdzzaAPUDRu26SznEcm4bWuI4VfGN+aTrwiIjUFJEawGPAm57nZgC/FZFmIlLR89zZ/ARUF5H4wMY1xntW8I35pb8BK4B1wDfAKs82VHUu8CIwH9gMLPXsc6r4QVR1I4W/PLaKyCG7S8e4gdgCKMZcGBFpBmQC0aqa53QeY87HevjGlIKI3CAiUSJSFfgH8JEVe1NWWME3pnSGAfuALUA+cI+zcYzxng3pGGNMiLAevjHGhAhXz5ZZo0YNTU5OLtU+x44dIzY2NjCB/MQy+odl9J3b84FlvBArV67cr6o1z3hCVV37aNeunZbW/PnzS71PsFlG/7CMvnN7PlXLeCGAFVpCTbUhHWOMCRGuLPgi0kdEJh8+fNjpKMYYU264suCr6keqOjQ+3j6Vbowx/uLKgm+MMcb/rOAbY0yIsIJvjDEhwpUF3y7aGmOM/7nyg1eq+hHwUWpq6t1OZylJQYGy88Bxdh44TtbBExw5mUtefgEFCpViIoivEEnt+Ao0rBlLzUrRiIjTkY0xxp0F340On8jl029/4pPMH1mx4wCHjud6tV9sVDjNalemXb2qtK1XlQ7J1QKc1BhjSmYF/zx2/nycyQu38N7KLE7mFlCnSgV6Nr+IS+tWoX6NWBKrVaRKhUgiw8MQgaMn8zh8Ipesg8fZtv8YW/cdY13WIV5dvJ1JX24lTKBhfBjrdTNXNqtFk4RK9heAMSYorOCfxbFTeYyfv5kpC7cBcP2lF3NLx3q0Tow/Z4GuFhtFtdgo6teIpXuj/01lcTI3n8xdh/ny+/3MXr6Fp+dt4ul5m2hYM5YbLq1D3zZ1SKpWMeCvyxgTuoJW8EWkAfAwEK+q/YN13guxfvdh7n17NVv3H6Nf2zo81KspCZVjfDpmTGQ4qcnVSE2uRtvI3TRr24nPNvzErDW7eebf3/HMv7+jfXJVbmyXRJ/WF1MhKtxPr8YYYwp5dZeOiEwVkb0ikllsey8R2SQim0Vk9LmOoapbVXWwL2GDYfba3dzw8hKO5eQx/e5O/POmNj4X+5IkVI7h1o71mDGsM4seSuNPPZtw8HguD76/jo5//4y/ZnzL1n3Zfj+vMSZ0edvDnwaMA14/vUFEwoHxwNVAFrBcRGYD4cDYYvvfpap7fU4bYG8s3c5js9fTPrkaE25tS/W46KCcN7FqRUampTCiR0O+3naAN7/ayWtLtvPKom10b1SDYZc1pGtKdRvrN8b4xOsVr0QkGchQ1ZaedmfgCVXt6WmPAVDV4sW++HHeO9eQjogMBYYCJCQktEtPT/cq32nZ2dnExcWVah+AL7NymZqZQ5ua4YxoE01UeOCKqzcZD50q4MusPD7fmcfhU0q9ymFcUz+S1IRwwsMCX/gv9H0MJsvoO7fnA8t4IdLS0laqauoZT5Q0Z3JJDyAZyCzS7g9MKdIeBIw7x/7VgYkUrgU65jzn6gNMTklJKfU80BcyL/XC7/ZpwzEf621TlmlOXn6p9y+t0mQ8kZOn07/aoWlPz9d6D2Vo93/8R19fsk1P5OQFLqC6b37vklhG37k9n6plvBCcZT58Xy7altTNPOufC6r6MzDch/MFRNbB49zz1koa1oxj/K1tiQx314ePYyLDGdChLjelJvHphp+Y+MUWHp21npf+s5mRaSnc3D6JmEi7wGuMOT9fqlsWkFSknQjs9i1OIQ3S9MgFBcqf3l1HQYHyr9tTqRwTGdDz+SIsTOjZ4iI+uKcL0+/uRHKNWB6fvZ60ZxbwxrIdnMrLdzqiMcblfCn4y4FGIlJfRKKAAcBsf4QK1lw6ry7ZztKtP/N4nxbUrV427oEXETo3rM47Qzvx9pCO1KlSgUc/zCTt6QW8/dVOcvMLnI5ojHEpb2/LnA4sBZqISJaIDFbVPGAUMA/YAMxQ1fWBi+pfew6f4Jl5m7iqWS1uTE10Ok6piQhdUmrw7vDOvH5XB2pVjuHPM7/h6n9+wcfr9py+FmKMMf/l1Ri+qg48y/Y5wBy/JiI4k6c9/ckm8lV5vE+LMn27o4hwWeOadG9Ug/mb9vLU3I2MfHsVbZKqMKZ3Uzo2qO50RGOMS7jrCqVHoId0Nv54hA9W72Jwt/rlZjoDEeGKpgnMvf8y/q//Jfx4+CQ3T17GkNeW8/1PR52OZ4xxAVcW/EBftB0/fwtx0REMu6xBQI7vpPAw4abUJOb/sQd/6tmEr7YeoOfzXzL6/XXsPXrS6XjGGAe5suAH0rb9x8hYt5vbOtWjSsUop+METIWocEampfDFg2nc0SWZ91dlccUzXzDpiy12R48xIcqVBT+QQzpvLN1BRJhwV7dkvx/bjarFRvF4nxbM+91ldKxfjbFzN9LzuS/57Nuf7MKuMSHGlQU/UEM6J3PzeX9VFj1bXEStSv6fEM3NGtSM45U72zPtt+0JDxOGvL6CO15dzua9Nr5vTKhwZcEPlDnf7OHwiVxu6VjX6SiO6dGkFp/87jIeu7Y5q3cepOfzC/nLR+s5fMK7FbyMMWWXKwt+oIZ0Plyzm6RqFegc4rcqRoaHcVe3+iz4Yw9ubp/Ea0u2c+WzC/hgVZYN8xhTjrmy4AdiSOfQ8RyWbN7Pr1tdXKbvu/en6nHR/P2GVswe1Y3EqhV5YMZaBkxeZrdxGlNOubLgB8K/1/9EXoHy61a1nY7iOi3rxPPBPV0Y268VG388Su8XFjJjUw7Hc/KcjmaM8aOQKfhzM/eQVK0CLetUdjqKK4WFCQM71OU/f7icGy6tw5xtuVz9zy+Zt/5HG+YxppxwZcH39xj+qbx8lm09wJVNE2w45zyqx0Xz9I2t+XPHmMIPp72xksGvreCHA8edjmaM8ZErC76/x/BX7zzEidx8uqbU8MvxQkHjquFk3NeNh69pxrKtP3PVPws/tJVns3EaU2a5suD72+LN+wkPEzo2qOZ0lDIlMjyMuy9rwOd/uJzLGtdk7NyN9B2/mMxdgZ222hgTGEEt+CJyvYj8S0RmicivgnXehd/vp3VivKsXOHGz2vEVmDyoHRNubcveo6foO34xY+ds4ESOTdFgTFnidcEXkakisldEMott7yUim0Rks4iMPtcxVPVDVb0buBO4+YISl9KJnHy+2XWYzg1D+957X4kIvVvV5rPfX86N7RKZ9OVWej7/JYs373c6mjHGS6Xp4U8DehXdICLhwHigN9AcGCgizUWklYhkFHvUKrLrI579Am797sPkFyhtkqoG43TlXnzFSJ76zSW8fXdHwgRunfIVf3p3LYeO5zgdzRhzHlKaW+5EJBnIUNWWnnZn4AlV7elpjwFQ1bFn2V+Ap4BPVfWzs3zPUGAoQEJCQrv09HSv8wFkZ2cTFxf33/a87blM35jDcz0qUDXGHZcsimd0I28y5uQrszbnMnd7LnGRcFuzaNpfFB60O6HKy/voJLf
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAEICAYAAABcVE8dAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAitklEQVR4nO3deXhc9X3v8fd3ZrSO9sWyLS+yjG2wAYNNMGvYQuKkgYSnpAkluRAguW1KE5qbXEJ729Lc25KkfZKWJE1aCCELwaVkA0JICNghJKw2Ae94l3fZlm1JI2tG0vzuHzNDxrIkj6yRzsycz+t55rFmRjPnI9n+6Oh3zvn9zDmHiIgUvoDXAUREZGKo8EVEfEKFLyLiEyp8ERGfUOGLiPiECl9ExCdU+CJZYGYPmtn/8zqHyEhU+CIiPqHCFxHxCRW++IKZ3Wlmu82sy8w2mtmNZtZjZvVpn7PYzA6YWZGZ3WxmvzWzr5jZETPbamYXJR/faWbtZnbTCNv7mJltNrMOM3vMzKamPffOZIajZvbvZvZrM7ttvL8HIip8KXhmNg+4HXibc64SeBfwIrAC+JO0T/0wsMw515e8vwR4A6gHfgAsA94GnJb83K+ZWcUQ27sSuCf53lOAHcnXYmYNwKPAXcn33QhclL2vVmR4KnzxgwGgBJhvZkXOue3OuS3Ad0gUN2YWBG4Avpf2um3OuW875waA/wKmA593zkWdc78EYiTKf7AbgQecc6ucc1ES5X6hmbUA7wHWOud+5JzrB+4F9o3D1yxyAhW+FDzn3GbgDuBuoN3MliWHWH5K4odAK3A1cNQ593LaS/enfXws+V6DHzthDx+YSmKvPrX9buAQ0Jx8bmfacw7Ydapfm8hoqPDFF5xzP3DOXQLMBBzwRedcL/AIiT3yj3D83v1Y7EluBwAzC5MYvtkN7AWmpT1n6fdFxpMKXwqemc0zsyvNrAToJbFnPpB8+rvAzcC1wPeztMkfAB81s3OS2/wn4CXn3HbgZ8BZZvZ+MwsBfwFMztJ2RUakwhc/KAG+ABwkMV4+CfhrAOfcb4E4sCpZyGPmnHsG+FvghyT26GcDH0o+dxD4APAlEsM884FXgWg2ti0yEtMCKOJ3ZvYs8APn3P0ebDtAYgz/Rufc8onevviL9vDF18zsbcAiEmfhTNQ232VmNcnhnr8GjMRpoiLjSoUvvmVm3wF+BdzhnOuawE1fCGwhMcR0DfB+59yxCdy++JSGdEREfEJ7+CIiPhHyOsBIGhoaXEtLy6heE4lECIfD4xMoS5Rx7HI9Hyhjtijj6KxcufKgc65xyCedczl7W7x4sRut5cuXj/o1E00Zxy7X8zmnjNmijKMDvOqG6VQN6YiI+IQKX0TEJ1T4IiI+ocIXEfEJFb6IiE+o8EVEfEKFLyLiEzl94VWuc86xdk8nq9oOc6Snj5ryIhZMrWbhtGpCQf0sFZHcosI/Rc9u2M+XntrIhn0nzrnVVFXC/7iwhVsvmUVpUdCDdCIiJ1Lhj9JA3PF/n1jHg7/bTmtDmC/+8Vm8fW4jDRUldERivLytg0de3ck//2IjP3ipjS//yUKWtNZ7HVtERIU/GgNxx2f++3V+/Npubrl4Fp979+kUh/4wdNNUVco1C6dyzcKpvLj1EHf9aDU33Pcin3nXPP78stkkli8VEfGGBppH4d9+9SY/fm03n3nnXP7umvnHlf1gF7TW8/hfXsJ7zprCl57ayN8/tpZ4XFNRi4h3tIefod9sOsC9z27mT86bxu1XzsnoNRUlIb56w7lMqS7lvt9s41hsgC9df/Y4JxURGZoKPwPHYgPc9aPVzG4M8/n3nTmq15oZf/2eMygrCnLvs5tpqCxhSek4BRURGYEKPwPfWLGZXYeP8fDHLjils27MjL+6ei4HIzG+sWILkfnFXJ79mCIiI9IY/kl0RGLc//w2/ujsKVw4+9TPtjEzPn/tAq48fRIPrY+xcsfhLKYUETk5Ff5JfOv5rRzrG+COqzIbtx9JKBjgKx88h7pS4y8eWsWh7mgWEoqIZEaFP4JItJ/v/m4H7zlzCnOaKrPyntVlRdx+bgkdPTE+++gbOC0iLyITRIU/gsde30NXtJ9bLmnJ6vvOrApy59LTeXZDO4+8ujOr7y0iMpwJK3wzazWzb5nZoxO1zbF66KUdnD65kkUzarP+3h+9qIULWuv4/OPr2NnRk/X3FxEZLKPCN7MHzKzdzNYMenypmW00s81m9rmR3sM5t9U5d+tYwk6ktXuOsmZ3J3+6ZMa4XCEbCBj/8oGFOODux9Zm/f1FRAbLdA//QWBp+gNmFgS+DrwbmA/cYGbzzewsM3ti0G1SVlNPgJ+9sZdgwHjv2VPHbRvTasu54x1zeGZDO0+v2z9u2xERgQwL3zn3HNAx6OHzgc3JPfcYsAx4n3NutXPuvYNu7VnOPa6cc/xs9V4uml1PXbh4XLf10YtnMbepgrsfW8ux2MC4bktE/M0yPUvEzFqAJ5xzZybvXw8sdc7dlrz/EWCJc+72YV5fD/wjcDVwv3PunmE+7+PAxwGampoWL1u2bFRfUHd3NxUVFaN6zWDbjw5w9wu9fHRBMZdNLxrTew1lcMaNHQPc83Iv720t4vq54/sDJlPZ+D6Op1zPB8qYLco4OldcccVK59x5Qz7pnMvoBrQAa9Luf4BEcafufwT4aqbvl8lt8eLFbrSWL18+6tcM9uVfbnQtn3vCHeqOjvm9hjJUxjuWvebm/M2TbvfhnnHZ5mhl4/s4nnI9n3PKmC3KODrAq26YTh3LWTq7gOlp96cBe8bwfjnjuU0HOHtazbgP56T7zLvmAfCVp9+csG2KiL+MpfBfAeaY2SwzKwY+BDyWnVjeOdIT4/WdR7hsbuOEbre5poybLpzJD1ftYuMQq2iJiIxVpqdlPgy8AMwzs11mdqtzrh+4HfgFsB54xDmX9+cXPr/5IHEHl81tmPBtf+Ly0wiXhPjSUxsmfNsiUvgymi3TOXfDMI8/CTyZ1UQee37TQSpLQyycVjPh264NF/OJy0/ji09t4NXtHZzXUjfhGUSkcGlqhUFe2d7BeTNrCQW9+dbcfFEL9eFi7n12syfbF5HCpcJPczgSY8uBiKd71mXFQW67tJXn3jzA6zuPeJZDRAqPCj9Nao76xTOzP3fOaHzkwplUlxXxteXayxeR7FHhp1nZdphQwDwZv09XURLilotn8fS6/azf2+lpFhEpHCr8NCt3HGZBczVlxaNfxjDbbr6ohYqSEF/XXr6IZIkKPyked6zdfZRzplV7HQWA6vIi/nTJDH6+Zh+7jxzzOo6IFAAVftKOjh4isQEWTM2Nwge46aIWAL77wnZPc4hIYVDhJ63bkxgrnz+1yuMkf9BcU8bSBZN5+KU2ItF+r+OISJ5T4Set3XOUUMCY05QbM96l3HJJC529/fxw1S6vo4hInlPhJ63b28lpkyooCXl/wDbdohm1LJxew7d/u514XAuei8ipU+EnrdvTmVPj9ylmxi0Xt7DtYITnNx/0Oo6I5DEVPtARidHeFeWMKZVeRxnS0jMnU1texMMvt3kdRUTymAof2HqgG4DZjbk1fp9SEgpy/eJpPL1uP+1dvV7HEZE8pcIHth6IANDaGPY4yfA+dP4M+uOOR1fq4K2InBoVPrDlQDfFwQDTasu9jjKs2Y0VXNBax7KXd+rgrYicEhU+sOVAhJaGcoIB8zrKiG44fwZtHT38bsshr6OISB5S4QNbD3bT2pCb4/fplp45mZryIpa9ooO3IjJ6vi/8voE4bYd6cnr8PqUkFOTahVN5et1+Onv7vI4jInnG94Xf1tFDf9zRmqNn6Ax23bnNRPvjPLV6n9dRRCTP+L7wdx9OzEQ5oy53D9imO2d6Da0NYU21ICKj5vvCP9wTA6AuXOxxksyYGded28xL2zrY2dHjdRwRySO+L/yOSH4VPsA1C6cCsOLNAx4nEZF84vvCP9zThxlUlxV5HSVjM+rKKSsKsi15wZiISCZ8X/hHemJUlxXl/Dn46QIBY2Z9OdsOdnsdRUTyiO8LvyMSo7Y8f4ZzUlobw2w/pDF8Ecmc7wv
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2016-02-16 21:40:20 +01:00
"source": [
"x = np.linspace(0.1, 15, 500)\n",
"y = x**3/np.exp(2*x)\n",
2016-02-16 21:40:20 +01:00
"\n",
"plt.figure(1)\n",
"plt.plot(x, y)\n",
"plt.yscale('linear')\n",
"plt.title('linear')\n",
"plt.grid(True)\n",
"\n",
"plt.figure(2)\n",
"plt.plot(x, y)\n",
"plt.yscale('log')\n",
"plt.title('log')\n",
"plt.grid(True)\n",
"\n",
"plt.figure(3)\n",
"plt.plot(x, y)\n",
"plt.yscale('logit')\n",
"plt.title('logit')\n",
"plt.grid(True)\n",
"\n",
"plt.figure(4)\n",
"plt.plot(x, y - y.mean())\n",
"plt.yscale('symlog', linthresh=0.05)\n",
2016-02-16 21:40:20 +01:00
"plt.title('symlog')\n",
"plt.grid(True)\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
2016-03-03 18:29:41 +01:00
"# Ticks and tickers\n",
"The axes have little marks called \"ticks\". To be precise, \"ticks\" are the *locations* of the marks (e.g. (-1, 0, 1)), \"tick lines\" are the small lines drawn at those locations, \"tick labels\" are the labels drawn next to the tick lines, and \"tickers\" are objects that are capable of deciding where to place ticks. The default tickers typically do a pretty good job at placing ~5 to 8 ticks at a reasonable distance from one another.\n",
2016-02-16 21:40:20 +01:00
"\n",
"But sometimes you need more control (e.g. there are too many tick labels on the logit graph above). Fortunately, matplotlib gives you full control over ticks. You can even activate minor ticks.\n"
2016-02-16 21:40:20 +01:00
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1080x720 with 3 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2016-02-16 21:40:20 +01:00
"source": [
"x = np.linspace(-2, 2, 100)\n",
2016-02-16 21:40:20 +01:00
"\n",
"plt.figure(1, figsize=(15,10))\n",
"plt.subplot(131)\n",
"plt.plot(x, x**3)\n",
"plt.grid(True)\n",
"plt.title(\"Default ticks\")\n",
"\n",
"ax = plt.subplot(132)\n",
"plt.plot(x, x**3)\n",
"ax.xaxis.set_ticks(np.arange(-2, 2, 1))\n",
2016-02-16 21:40:20 +01:00
"plt.grid(True)\n",
"plt.title(\"Manual ticks on the x-axis\")\n",
"\n",
"ax = plt.subplot(133)\n",
"plt.plot(x, x**3)\n",
"plt.minorticks_on()\n",
"ax.tick_params(axis='x', which='minor', bottom=False)\n",
2016-02-16 21:40:20 +01:00
"ax.xaxis.set_ticks([-2, 0, 1, 2])\n",
"ax.yaxis.set_ticks(np.arange(-5, 5, 1))\n",
2016-02-16 21:40:20 +01:00
"ax.yaxis.set_ticklabels([\"min\", -4, -3, -2, -1, 0, 1, 2, 3, \"max\"])\n",
"plt.grid(True)\n",
"plt.title(\"Manual ticks and tick labels\\n(plus minor ticks) on the y-axis\")\n",
2016-02-16 21:40:20 +01:00
"\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
2016-03-03 18:29:41 +01:00
"# Polar projection\n",
"Drawing a polar graph is as easy as setting the `projection` argument to `\"polar\"` when creating the subplot."
2016-02-16 21:40:20 +01:00
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2016-02-16 21:40:20 +01:00
"source": [
"radius = 1\n",
"theta = np.linspace(0, 2*np.pi*radius, 1000)\n",
2016-02-16 21:40:20 +01:00
"\n",
"plt.subplot(111, projection='polar')\n",
"plt.plot(theta, np.sin(5*theta), \"g-\")\n",
"plt.plot(theta, 0.5*np.cos(20*theta), \"b-\")\n",
2016-02-16 21:40:20 +01:00
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
2016-03-03 18:29:41 +01:00
"# 3D projection\n",
2016-02-16 21:40:20 +01:00
"\n",
"Plotting 3D graphs is quite straightforward: when creating a subplot, set the `projection` to `\"3d\"`. It returns a 3D axes object, which you can use to call `plot_surface`, providing x, y, and z coordinates, plus other optional arguments. For more information on generating 3D plots, check out the [matplotlib tutorial](https://matplotlib.org/stable/tutorials/toolkits/mplot3d.html)."
2016-02-16 21:40:20 +01:00
]
},
{
"cell_type": "code",
"execution_count": 28,
2016-02-16 21:40:20 +01:00
"metadata": {
"scrolled": true
},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPkAAADuCAYAAAD7nKGzAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAACjtUlEQVR4nOz9eYxdWZ7fiX3OOXd/e+xck2QmMyvXyspKZre6Z9AyrBmNBgNLHhnGQBKsPwQYHk/bAmzLLcGAgBEgqwcWBEiagcbSjFptyZqWNK7uKqlao+4eqaXec6tKJpmZzCSTewQZy4t4613POf7j3vciyOQSQQYrmVnxBYgIxnt3v9/z238/Ya3lAAc4wNcX8ss+gQMc4ABPFgckP8ABvuY4IPkBDvA1xwHJD3CArzkOSH6AA3zNcUDyAxzgaw7nIZ8fxNcOcIAnD/Ekd34gyQ9wgK85Dkh+gAN8zXFA8gMc4GuOA5If4ABfcxyQ/AAH+JrjgOQHOMDXHAckP8ABvuY4IPkBDvA1xwHJD3CArzkOSH6AA3zNcUDyAxzga44Dkh/gAF9zHJD8AAf4muOA5Ac4wNccByQ/wAG+5nhYPfkBngCMMcRxjFIKpRSO4yDEEy0pPsCPMcRD+q4fNI3YR1hrKYqCoijIsoyd914pheu6OI6DUuqA9D9eeKIP+4DkPyJYa8myDGMMQgjyPL/js8m/CQ5I/2OFA5J/1VEUxZTUE7LuJPndOCD9jx0OSP5VxU71XAgxJeZEqu+WqBPCT7QAOCD91wwHJP8qwhhDnudTYu4k4V5JfjcmpL906RJzc3M0m00cx5n+OyD9Vw5P9GEdeNf3GdZatNZTdVzK/Y9SThYNYwxSSqSU02NOyO04Dq7rTj34B6T/8cUByfcR1lryPEdr/QXpfb/vPw75hBDTfQghpgvKZKEpimL63QnpHcdBSnlA+h8jHJB8n2CM4fr16/i+T7vdfiCJJqR8UmOj72Ue7CS9EOIO9f6A9F9vHJD8MbHTuTYcDgGeOsLci/R3e/wPSP/1xQHJHwN3x76llE9MOj/oHPaKe5E+z3OGwyErKyucPHnygPRfIxyQ/BExcXTttImfpAp+L+wX8YQQKKUAiON4mqyzU9LvDNcdkP6rhQOS7xF3x753es9/1CR/UthJetjWWNI0nS5mE9JP8u4PSP/04oDke8CDYt/Al6Ku7yfu5+1/EOmhvG7XdachuwPSP104IPkucHfs+34v8SR2/XXHTtJPFrUsy8iyDChJvzNO/yRyBQ6wexyQ/CHYS+z7yyD5fmoOjxK335lmu/N8JqQfj8dorZmdnT0g/ZeEA5I/AMaYaUnoblTQr6rjbT9xN+lHoxFJktBoNA4k/ZeEA5LfAxPn2uXLlzl+/PiuX8Kvi+NtvyGlvEPST2z6naS/23t/gP3DAcnvwuQF1Fpz48YNnnnmmV1vuxfH29O4IDxumu1u9nmvGL21ljRNp468SYXdQdec/cEByXdgp3r+KLHgHxfH217wsIXjXqQ3xpAkyfRvB2W1j4cDkvPg2Pde8KjS2a7eQCwcfaRjftmOt/3e525IP3lGYRgekH4X+LE3fibS++7GDo+CRyW5+Z1fxabxIx3vacd+VNpNbPqJvT4ajTh37hzD4ZBer8dgMCBJEoqieOpMoKcBP7aSfLex773gUUhutcYuX8F+8j7imz/9WMd/XDwJSW6MuSOR5nGx03uvlJpK+kk67uSzA/V+Gz+WJL9fW6bHxW5tcmstq6urSClpZSPQBebcHyC/ZJI/CUz8G/uJSbMM2F6cd9bSH5D+TvzYkfxhqamPg91414ui4Ny5c9Ossf6F9zkGsHGL4WfnqT330tfqJXxS2sH9Fo7dkP7HrVXWjw3Jd6rnj+NcexAepq4PBgM+/PBDTpw4wfz8PMYYzPWz00Z68fm3Od8dEoYhMzMzdDodoih64Ev4dXO87QY7G1o+DAddc35MSG6tZTgcPvGKqQeR/MaNG1y/fp3XXnuNer2+wxdgpySf8yVz33qduNB0u10+//xzxuMxjUaDTqfDzMwMvu/fcbynHU9q4XicCMj9uuasrKzQ6XSo1+tfK9J/7Uk+8Z6/8847/NRP/dSeH9heXtJ7kVxrzUcffYS1ljNnzuA4O265zlG9WxipwGhEniBufkp08lWiKOLo0aNYaxkMBmxubvLRRx9RFAWtVotOp4PWek/X8jB8lST5fmliO0nf6/Vot9tfu1ZZX1uS38u5tteHI6Xck3f4bpIPh0M+/PBDjh07xpEjR754/K11ZJEiFo9iV28i0iHiynnsyVfv2Gez2aTZbPLMM8+gtabX67G5ucnq6iobGxv0ej06nQ6tVmtfPdn7gaed5Hfv9+602q9Dq6yvJcnvbsv0qA9hr/Xhk0UBYGVlhcuXL/PKK6/QbDa/8F0hBGLrNgAqDChaM0gsdv0GDLeg3r7nMZRSzMzMMDMzgxCCKIpQSrG+vs6lS5dwHGeq2jcajT1d+5OIMX/ZNvle93v34nEv9f7urjl3F9s8baT/2pH87lX3cRMx9pKmOvn++fPnyfOct9566071/K7vis2S5CLpIZsdSDcRgLhyDvvKv7er4ymlmJ+fZ35+HoA0Tel2u9y4cYPBYEAURVPSh2G4q0q6/cTTZpM/CFrrh2pC92qgca9WWZ9//jknT56kVqvt+3nuFV8bku8m9r3XF26nZN4NkiSh2+1y+vRpjh8//lCvuOitl8exBtuoQ7oJgBhslFL1Ecjh+z6HDh3i0KFDWGsZj8dsbm5y6dKlqRNv4rnf6cR7UnhSkvx+i+fj7nevi8e9SJ9lGX/5L/9l/tpf+2u88MIL+32ae8bXguS7iX3v1b6ebLNbFfb27dt89tln1Ov13VWuGQN+sH2sMJr+LrCI/hq2tbDrc70XhBDUajVqtdodTrxut/sFJ16n0/lKOd6ehEq8HxrChPSj0eipkOLwFSf5XkYSKaX2TPLdqOvGGD799FPG4zHf+ta3+Pjjj3e383EP4WyfiyhirB8h0jFgEKtXHpvkd2OnE+/EiRN3OPGuXr1KURQ4jsPm5iatVmtfVOKvkuNtPzEajWg0Gl/2aQBfYZLvdSTRZF6Y67q7PsbD1PU4jjl79iwLCwu88MILeyqQEMMuZGOsF4KUKKvRnUW4dRmKFLl2FfPsm/CQl/lxnGU7nXgAt27dYm1tjdXVVT777DNc152q9nt14u08v6+KTb6fjsfxeEwURQ//4o8AX0mS77UtE+zdvoYHJ7esra3x6aef8tJLL9HpdKbf3/UxhptIQUnsouyQIlyFDesoa6DIEJvL2Nn7l6DuvO68N6D/3ocIazEWSFOytS56MMQ7coj2H/oW/qEHawaO41Cr1Th16hRQ+hg2NzfvcOJNSL8bJx48GdX6qyDJrbVPxG/wKHg6zmKXsNYyGo0YDAZ0Op09PehHIfm9tjHGcPHiRfr9PmfOnMHzvOlne6lCE8Nu+dNVWBWASSEbQ3seTFk7LVevoO8iudGa3r97m+6/+X1uf+/XIDNcrYdkK6voJMdpNSi6faSvkKFH0U/AWJxOHZvleIfnEVKgWk38o0u0//0zLPynfwyn8UX7MQiCezrxLl68OO3bNrHn7+fEe1IFKk/CJt+vfU663Twt+MqQfOK1HA6HLC8vT1XM3eJRSb7zYSVJwocffkin0+Hb3/72F16KPZWaDktPOtkYETYhTZFCYOot6FcNEoqsrFCzcPH//vP0f/d90tU1hOdTrG4hXInb8YkvbgDgzgSoUFMASIvNUlQgUJFDMU4x45zs1ip6kIGE8ccX6f7Lf8vlv/w3cWbbRD/5OsGf/eNQSfK7r22nE88Yc89MvJmZGdrt9lSKfVXU9SdByqclXv6VIPnOkUQTB9pe8ajq+mSbjY0NPvnkE77xjW8wOzt73+/v5mWxWQKOD0VWquxhHdJyWKINQuiXL93yr73L6n/5SwzPfY4tNEV3gH+4iRkOUM0Ak5aLQHCkRrI8QjkGE2vCE21MklD0sul5OaFFLc2Qb5bNKdyWSzHMQIEdG9LRLXT8e2x999cZfftlTvyl/5z2H3r
"text/plain": [
"<Figure size 864x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2016-02-16 21:40:20 +01:00
"source": [
"x = np.linspace(-5, 5, 50)\n",
"y = np.linspace(-5, 5, 50)\n",
"X, Y = np.meshgrid(x, y)\n",
"R = np.sqrt(X**2 + Y**2)\n",
"Z = np.sin(R)\n",
2016-02-16 21:40:20 +01:00
"\n",
"figure = plt.figure(1, figsize = (12, 4))\n",
"subplot3d = plt.subplot(111, projection='3d')\n",
"surface = subplot3d.plot_surface(X, Y, Z, rstride=1, cstride=1,\n",
" cmap=matplotlib.cm.coolwarm, linewidth=0.1)\n",
2016-02-16 21:40:20 +01:00
"plt.show()\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Another way to display this same data is *via* a contour plot."
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2016-02-16 21:40:20 +01:00
"source": [
"plt.contourf(X, Y, Z, cmap=matplotlib.cm.coolwarm)\n",
"plt.colorbar()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
2016-03-03 18:29:41 +01:00
"# Scatter plot"
2016-02-16 21:40:20 +01:00
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To draw a scatter plot, simply provide the x and y coordinates of the points."
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2016-02-16 21:40:20 +01:00
"source": [
"np.random.seed(42) # to make this notebook's output reproducible\n",
"\n",
"x, y = np.random.rand(2, 100)\n",
2016-02-16 21:40:20 +01:00
"plt.scatter(x, y)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You may also optionally provide the scale of each point."
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2016-02-16 21:40:20 +01:00
"source": [
"x, y, scale = np.random.rand(3, 100)\n",
2016-02-16 21:40:20 +01:00
"scale = 500 * scale ** 5\n",
"plt.scatter(x, y, s=scale)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And as usual there are a number of other arguments you can provide, such as the fill and edge colors and the alpha level."
2016-02-16 21:40:20 +01:00
]
},
{
"cell_type": "code",
"execution_count": 32,
2016-02-16 21:40:20 +01:00
"metadata": {
"scrolled": true
},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2016-02-16 21:40:20 +01:00
"source": [
"for color in ['red', 'green', 'blue']:\n",
" n = 100\n",
" x, y = np.random.rand(2, n)\n",
" scale = 500.0 * np.random.rand(n) ** 5\n",
2016-02-16 21:40:20 +01:00
" plt.scatter(x, y, s=scale, c=color, alpha=0.3, edgecolors='blue')\n",
"\n",
"plt.grid(True)\n",
"\n",
"plt.show()\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
2016-03-03 18:29:41 +01:00
"# Lines\n",
"You can draw lines simply using the `plot` function, as we have done so far. However, it is often convenient to create a utility function that plots a (seemingly) infinite line across the graph, given a slope and an intercept. You can also use the `hlines` and `vlines` functions that plot horizontal and vertical line segments.\n",
"For example:"
2016-02-16 21:40:20 +01:00
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2016-02-16 21:40:20 +01:00
"source": [
"def plot_line(axis, slope, intercept, **kwargs):\n",
" xmin, xmax = axis.get_xlim()\n",
" plt.plot([xmin, xmax],\n",
" [xmin*slope+intercept, xmax*slope+intercept],\n",
" **kwargs)\n",
"\n",
"x = np.random.randn(1000)\n",
"y = 0.5*x + 5 + np.random.randn(1000) * 2\n",
2016-02-16 21:40:20 +01:00
"plt.axis([-2.5, 2.5, -5, 15])\n",
"plt.scatter(x, y, alpha=0.2)\n",
"plt.plot(1, 0, \"ro\")\n",
"plt.vlines(1, -5, 0, color=\"red\")\n",
"plt.hlines(0, -2.5, 1, color=\"red\")\n",
"plot_line(axis=plt.gca(), slope=0.5, intercept=5, color=\"magenta\")\n",
"plt.grid(True)\n",
2016-02-16 21:40:20 +01:00
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
2016-03-03 18:29:41 +01:00
"# Histograms"
2016-02-16 21:40:20 +01:00
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2016-02-16 21:40:20 +01:00
"source": [
"data = [1, 1.1, 1.8, 2, 2.1, 3.2, 3, 3, 3, 3]\n",
"plt.subplot(211)\n",
"plt.hist(data, bins = 10, rwidth=0.8)\n",
"\n",
"plt.subplot(212)\n",
"plt.hist(data, bins = [1, 1.5, 2, 2.5, 3], rwidth=0.95)\n",
"plt.xlabel(\"Value\")\n",
"plt.ylabel(\"Frequency\")\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 35,
2016-02-16 21:40:20 +01:00
"metadata": {
"scrolled": true
2016-02-16 21:40:20 +01:00
},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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WbRr147c3FwqKioa1Lb7qquuYujQoVxyySXVphcXFzN16lQKCwurTV+8eDEzZ87k/vvvj7u99evX85e//IURsR98I2hPQUQOSffeey+7d+9u8PqvvfYaJ598MkuWLOGss85i/vz5tGvXLnUBE1RYWFhrQYBIUZjV0MoZh4qCiDRpu3btYsiQIZx66qn07t2buXPncv/997Np0yZKSkooKYmMP/LKK69wxhln0K9fPy699NLgRrS8vDxuueUWBgwYwIABA1i3bh1Lly7l5ptvZv78+RQUFLBnzx7y8vL49NNPa81RWVnJTTfdRP/+/cnPz+eRRx4BwN25/vrr6dWrF0OGDOHjjz+udRvPPPMMAwYMoGfPnsHYDWVlZQwdOhSAN954g4KCAgoKCujbty87d+5k/PjxvPnmmxQUFPDLX/6y0Z+nDh+JSJP2pz/9ieOOO44//vGPAHz++ee0bduWe+65h9LSUjp06MCnn37KnXfeyYIFCzjqqKO46667mDZtWtBWu02bNixatIiZM2dyww038OKLLzJp0iQWL17MtGnTEsrx6KOP0rZtW95++2327dtHUVER5513HkuWLGH16tUsX76cLVu20KtXL0aNGhV3GwcOHGDRokXMnz+fKVOmMHhw9ZGJp06dyq9+9SuKioqoqKigZcuWTJkyhalTp/Liiy824lP8ivYURKRJ69OnDwsWLOCWW27hzTffpG3btjWWeeutt1i5ciVFRUUUFBQwY8YMPvroo2D+8OHDg99VjfWS9corrzBz5kwKCgoYOHAgW7duZe3atSxcuJDhw4eTk5PDcccdxznnnFPrNv7t3/4NgNNOO40NGzbUmF9UVMRPfvIT7r//frZv357wiHHJ0J6CiDRpPXv25J133mH+/PlMmDCB8847j9tvv73aMu7OoEGDmD37q8GmYnsfxbbePrgNd6LcnQceeKDG/93Pnz8/4W1WtezOycmhsrJmo+jx48czZMgQ5s+fz+mnn86CBQsalLUu2lMQkSZt06ZNtGrVissvv5xx48YFbaxbt24dfPGffvrp/M///A/r1q0DYPfu3axduzbYxty5c4PfZ5xxRoNyDB48mIceeihonb1mzRp27drF2WefzZw5c6isrGTz5s2UljZ8dMMPPviAPn36cMstt1BYWMj7779f7X2mgvYURCSlYi+E2blzL61bN/Ka1HosX76cm266iSOOOILmzZvz0EMPAZE21t/+9rfp3LkzpaWlPPHEEwwfPpx9+/YBcNttt9GvXz8gMi7zwIED+fLLL6vtTSTj2muvZf369fTr1w9359hjj+W5557ju9/9Lq+//jp9+vShZ8+efPOb32zwe7333nspLS0lJyeHXr168e1vf5sjjjiCZs2aceqpp3LVVVdx4403Nnj7AOYedyjkJqGwsNAXL14cdoyMj5NbMqMkqeWTGqN5pMZojqV89Vu1ahWnnHJK3HmZGk+hIaqy5eXlsXjxYjp06BB2pGpS9dnF+/uY2TvuXhhveR0+EhGRQDqH43zMzD6ODr158LxxZuZm1iFm2gQzW2dmq81s8MHriIikw/r167NuLyFM6dxTeAI4/+CJZnY8MAjYGDOtFzAM+JfoOg+aWU4as4mISBxpKwruvhDYFmfWL4GbgdiTGRcBc9x9n7t/CKwDBqQrm4i
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2016-02-16 21:40:20 +01:00
"source": [
"data1 = np.random.randn(400)\n",
"data2 = np.random.randn(500) + 3\n",
"data3 = np.random.randn(450) + 6\n",
"data4a = np.random.randn(200) + 9\n",
"data4b = np.random.randn(100) + 10\n",
2016-02-16 21:40:20 +01:00
"\n",
"plt.hist(data1, bins=5, color='g', alpha=0.75, histtype='bar', # default type\n",
" label='bar hist')\n",
"plt.hist(data2, color='b', alpha=0.65, histtype='stepfilled',\n",
" label='stepfilled hist')\n",
2016-02-16 21:40:20 +01:00
"plt.hist(data3, color='r', histtype='step', label='step hist')\n",
"plt.hist((data4a, data4b), color=('r','m'), alpha=0.55, histtype='barstacked',\n",
" label=('barstacked a', 'barstacked b'))\n",
2016-02-16 21:40:20 +01:00
"\n",
"plt.xlabel(\"Value\")\n",
"plt.ylabel(\"Frequency\")\n",
"plt.legend()\n",
"plt.grid(True)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
2016-03-03 18:29:41 +01:00
"# Images\n",
"Reading, generating and plotting images in matplotlib is quite straightforward.\n",
"\n",
"To read an image, just import the `matplotlib.image` module, and call its `imread` function, passing it the file name (or file object). It returns the image data, as a NumPy array. Let's try it with the `my_square_function.png` image we saved earlier."
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(288, 432, 4) float32\n"
]
}
],
"source": [
"import matplotlib.image as mpimg\n",
"\n",
"img = mpimg.imread(\"my_square_function.png\")\n",
"print(img.shape, img.dtype)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We have loaded a 288x432 image. Each pixel is represented by a 4-element array: red, green, blue, and alpha levels, stored as 32-bit floats between 0 and 1. Now all we need to do is to call `imshow`:"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.imshow(img)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Tadaaa! You may want to hide the axes when you are displaying an image:"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.imshow(img)\n",
"plt.axis('off')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Under the hood, `imread()` uses the Python Image Library (PIL), and Matplotlib's documentation now recommends using PIL directly:"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(288, 432, 4) uint8\n"
]
}
],
"source": [
"import PIL\n",
"\n",
"img = np.asarray(PIL.Image.open(\"my_square_function.png\"))\n",
"print(img.shape, img.dtype)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note that the array now contains unsigned 8-bit integers (from 0 to 255), but that's fine as `plt.imshow()` supports this format as well:"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAVQAAADnCAYAAABBu67aAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAA7YUlEQVR4nO3dd1hT59sH8Ds7EAIhLAHZW2QKIuAEEUXFijioinXirlpH3VVrtdatdRe3to66cVtRlgNEUUBE9t4jgRCSnPcP9Ff0tdZqyAlwf64rl3pCwjeAX07Oec7zUAiCAIQQQl+OSnYAhBBqK7BQEUJITrBQEUJITrBQEUJITrBQEUJITrBQEUJITrBQEUJITrBQEUJITrBQEUJITrBQEUJITrBQEUJITrBQEUJITrBQEUJITrBQEUJITrBQEUJITrBQEUJITrBQEUJITrBQEUJITrBQEUJITrBQEUJITrBQEUJITrBQEUJITrBQEUJITrBQEUJITrBQEUJITrBQEUJITrBQEUJITrBQEUJITrBQEUJITrBQEUJITrBQEUJITuhkB/gSVVVV3E2bNk0GgDqysyCEFEZl+vTpx/X19UvIDvI+hRRqdXU1JSAgwJtGo42VSqVUNze349u2bbv79n4vLy9vABgLAGXffPPN9ilTppT4+PgMFolEIygUypNLly7t5PP54veft6amhvPo0SOrFStW7FbE60AIkW/Hjh2ji4qKNNttob6RMW3atGUXLlyg7dy5c52xsfGL7777rvTu3bu6sbGxvp07d94BAFYxMTHBBw8ePJ6UlBTi6Og4Jzk5eY6Pj49rYmJi3Aeek9DR0Snx8vJ6psDXgRAi0ZkzZ3wBgCA7x4copFA1NDSI6OjoAgCA0tJSvVOnTjVKpVLZm7u1AKBhz549BVQqlerl5WUPAM4uLi6ZMTExJQMHDozJysrqCgAfKlSEEFIaCj2Gun37duaSJUtmdO3a9dbIkSMrmmUgAEACANI3f+fC38dF6wBApfnzXL161WjLli1jRSKRuYmJSaWC4iOE0EcprFC3bdvGmT9//iQnJ6f8O3funFVVVX27yy4EAHpaWhqHSqVy9fT0ZEKhMLOurq5/QkICvaamxhgA8po/V9++ffN69OixKS8vr8PatWsnKuo1IITQxyikUMvLy6lz5szpDwADe/fufXHXrl0BAPCKTqczHBwcMgCgasKECWMAgLN06dIYQ0PD1G+//VbUpUuXGQBgvWbNmnXNn4/BYBAMBqNBVVVVBJ94LOVBZjnzeX5Nh4ndzXLk/foQQp9v373XHblsRllIV2MR2Vm+lEIKlcvlEleuXHkCAOsBQAxNe6U1NBqN6uvrK7xy5coZALAEAJGFhcULGxsbqbm5+VapVGoBALf8/PwKvjTDX6mlbvvuvV5QVC36ZulAu+ovfT6E0Jc7Gput9VNE6kojTZWzIV2Nr5Gd50sppFCZTCYREBCQAQAZH7o/ICCgBADeGQLh7++fB++91f8S2mrM1wwaVS8uozwIAA7K63kRQp+vpFbUFQDcjPiqq8nOIg/t5kqpST3Mi206cK8m5VcP23orjUt2HoTau/QSgcqOO+l9ACBue4hLKdl55KHdFCoAAAXgJACYAoAbyVEQavc2XEvVBgCvKT3Nr3HZ9Aay88hDuyrU/aFu2XQqJWFvZIZfQk4li+w8CLVncRnlfQBA4GzES2DRaUo5UP+/aleFqslhSnxsdU/XN0o9b7woNiI7D0Lt1d2XJUyxVDbaUlct0oivKrdzJWRrV4XKoFGJiT3MkgBA8ltUhquoUUohOxNC7dGR2GxXUaPMqJs5/6qDoUab2DsFaGeFCgDApFHz1Fj0+wQBo8oFYgbZeRBqb048yKZFpZeNNtFSTVjob9um5uFod4XqYqwpmdjd7IZERlhPP5FgS3YehNqbOrHURiyRdaNTKYfUVRiyf39E69HuChUAoJ+93lMzbU5qTnndaLKzINSe5FfWUy8+LfAGAOFMH6tHZOeRt3ZZqPYGGvXaasyTlXVinw3XUk3IzoNQe5FVLuQ/y6v201BhXPC11RWQnUfe2mWhAgB4mGtdo1JAml4i6Fda24AnpxBSgMlHHlsBgNHmEU531VUYUrLzyFu7LdTZPlb1DBr10o3k4t4vi2o0yc6DUFsnlREUABgCACkA8JrkOC1CYYUqFotpFRUV3MrKyncu+2xsbKRWVFRwKioq1CsqKjQqKipUAAAqKyvV32xrkctEmXSqbMtI5wgAsFx0Nsm6JT4HQuhvi84+49WLpQOCu3S84WunV0N2npagsEKNiIiw0tbW3mxmZnZZKv17/Gdqaip//Pjxk8eNG7daV1f3d09PzwUJCQlMY2Pj6x4eHj9NnDhxpVAoZLdEJgMNdiYAJBdW1w8QNkhoLfE5EEJNXhRUD+ew6LXupvybZGdpKQorVAcHh6wePXqsIwii+L3tZRcuXNh65syZ7+h0euzw4cMfOjo6SgmCKAwMDFx47ty5+RwOp0XmSTTUVK32sdW9SxDgfzA6CydMQaiF/PpXukZKYe1gY77q1ZHuRuVk52kpCitUCwsLkZOTUxX8w4TQkyZN4kilUicWixUHAEClUrX++OOPXU5OTrOKioreue5eLBZTa2pq2AKBQBUAPvuEkg6XRXQx0YwkAIjLzwp8P/d5EEIfJ5bI3AHATIVJO0F2lpakNCelMjIy+nfp0uXh8uXLq+h0unTSpElDtmzZMq2goMDAz8+vV/OPvXPnjsGoUaPmzJgx43sA+KLDATP6WGbxVBm3U4tqx629ktwihxYQas8Sc6vY22+/8qNS4OGh8e5t5rr9D1GKQr1x4wY9Ozu7P4VCuQQAsH//frqpqalQT0+vQV1dvVImk3Gaf3z//v3zIiIi1h8+fHgFANR/6ee3N9D4HQAsZAS4fulzIYTedeJBtgEB4AEAF6gUioTsPC1JYYv03b9/3+bSpUsLZTKZW58+fbYCwC02my2LiIiIiIuLM6+tra3bs2dPOgDAuXPn+A8fPvxRS0uLWVRUVH779u3fWjLbqsBOqYO2R6VeSMwf0N++w0N3M36b/qYjpChiiYxyIbHADQDEPwTaP+Ww6G1mIpQPUVihent7p6WlpU2BpmOeBADIAADodDqxYsWKtMWLF89mMJqu642IiChpbGyc9uZjZW+3txRLXa6ESqUcKROI5zzKrjB3N+OnteTnQ6i9SC2qYcoIYqyBBjvS2YiXS3aelqawt/xUKpVgMBhSBoMhefMnwWAw/vfb6v3SbPaxCpk8YYSbUTwASH659tKjur5RKQ6FINTarbmc7NIoJcy+cjG87tiR1+aujHofFscbI9yMiqkUuAMAwyRSGZ6cQugL/fEol5pSWDveUlctIaSr8VOy8ygCFuobnQzUGxf4214nAEzH/PbAmew8CLV2BVX1LoIGiQeHRd9rxFdtJDuPImChNuNmqvncREv1QXFNw+TItFK8cgqhz1RQVc94lFXhT6VA3lfOBo/JzqMoWKjNuJvyxRY6ascrhGL3Gy+K7MnOg1BrlV1epx/zurwPg0Y9GdLVWEx2HkXBQn2PMV81mkqBzD8e5Q6/8aJIYaMgEGorRI1SyuQjj7sBAO1AqFsMm9E2VjT9FFio7/kh0F6qxqIflMiI7hIZYUZ2HoRam8vPCpl1YsnXrsa8OybanDZ9ZdT7sFA/YMlAuwcAQOy++7prDQ6hQug/ORKb5SgjwKyntc5N43ZyMuotLIsP8DLXLtZRY11Jyq8emVEmVCM7D0KtRZmggdbQKAtjM6gJfA6z3ZyMegsL9QOMtVQls32t/gIAw1knEhzIzoNQa3HgfqbDy+JaD0dDXniop2mbH8j/PizUf5YMAAllAvEEsoMg1BokF9TQbrwoGsCgUfK/7dv2VjT9FAorVKFQyMzIyDDIysoyaL69vr6empGRoZ2RkdExIyNDv6Kigg0AkJmZqfZmm5aiMjY31tNE5GOre7S+Ueqx8MxTRzIyINSapBTWmGSUCfvqa6gc9LbUbpFJ4ZWdwoYF3bhxwzQoKGiGurq6Y0VFhQ+N1jSU4sGDB+p9+vR
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.imshow(img)\n",
"plt.axis('off')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can also generate an image from scratch:"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 0 1 2 ... 97 98 99]\n",
" [ 100 101 102 ... 197 198 199]\n",
" [ 200 201 202 ... 297 298 299]\n",
" ...\n",
" [9700 9701 9702 ... 9797 9798 9799]\n",
" [9800 9801 9802 ... 9897 9898 9899]\n",
" [9900 9901 9902 ... 9997 9998 9999]]\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"img = np.arange(100*100).reshape(100, 100)\n",
"print(img)\n",
"plt.imshow(img)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As we did not provide RGB levels, the `imshow` function automatically maps values to a color gradient. By default, the color gradient goes from blue (for low values) to yellow (for high values), but you can select another color map. For example:"
]
},
{
"cell_type": "code",
"execution_count": 42,
2020-04-06 09:13:12 +02:00
"metadata": {},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.imshow(img, cmap=\"hot\")\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can also generate an RGB image directly:"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"scrolled": true
},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"img = np.empty((20,30,3))\n",
"img[:, :10] = [0, 0, 0.6]\n",
"img[:, 10:20] = [1, 1, 1]\n",
"img[:, 20:] = [0.6, 0, 0]\n",
"plt.imshow(img)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Since the `img` array is just quite small (20x30), when the `imshow` function displays it, it grows the image to the figure's size. Imagine stretching the original image, leaving blanks between the original pixels. How does imshow fill the blanks? Well, by default, it just colors each blank pixel using the color of the nearest non-blank pixel. This technique can lead to pixelated images. If you prefer, you can use a different interpolation method, such as [bilinear interpolation](https://en.wikipedia.org/wiki/Bilinear_interpolation) to fill the blank pixels. This leads to blurry edges, which may be nicer in some cases:"
]
},
{
"cell_type": "code",
"execution_count": 44,
2020-04-06 09:13:12 +02:00
"metadata": {},
2022-02-19 10:24:54 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.imshow(img, interpolation=\"bilinear\")\n",
"plt.show()"
]
},
2016-02-16 21:40:20 +01:00
{
"cell_type": "markdown",
"metadata": {},
"source": [
2016-03-03 18:29:41 +01:00
"# Animations\n",
"Although matplotlib is mostly used to generate images, it is also capable of displaying animations. First, you need to import `matplotlib.animation`."
2016-02-16 21:40:20 +01:00
]
},
{
"cell_type": "code",
"execution_count": 45,
2016-02-16 21:40:20 +01:00
"metadata": {
"tags": []
2016-02-16 21:40:20 +01:00
},
"outputs": [],
"source": [
"import matplotlib.animation as animation"
2016-02-16 21:40:20 +01:00
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In the following example, we start by creating data points, then we create an empty plot, we define the update function that will be called at every iteration of the animation, and finally we add an animation to the plot by creating a `FuncAnimation` instance.\n",
2016-02-16 21:40:20 +01:00
"\n",
"The `FuncAnimation` constructor takes a figure, an update function and optional arguments. We specify that we want a 50-frame long animation, with 100ms between each frame. At each iteration, `FuncAnimation` calls our update function and passes it the frame number `num` (from 0 to 49 in our case) followed by the extra arguments that we specified with `fargs`.\n",
2016-02-16 21:40:20 +01:00
"\n",
"Our update function simply sets the line data to be the first `num` data points (so the data gets drawn gradually), and just for fun we also add a small random number to each data point so that the line appears to wiggle."
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
2016-03-04 08:49:56 +01:00
"outputs": [],
2016-02-16 21:40:20 +01:00
"source": [
"x = np.linspace(-1, 1, 100)\n",
"y = np.sin(x**2*25)\n",
"data = np.array([x, y])\n",
2016-02-16 21:40:20 +01:00
"\n",
"fig = plt.figure()\n",
"line, = plt.plot([], [], \"r-\") # start with an empty plot\n",
2016-02-16 21:40:20 +01:00
"plt.axis([-1.1, 1.1, -1.1, 1.1])\n",
"plt.plot([-0.5, 0.5], [0, 0], \"b-\", [0, 0], [-0.5, 0.5], \"b-\", 0, 0, \"ro\")\n",
"plt.grid(True)\n",
"plt.title(\"Marvelous animation\")\n",
"\n",
"# this function will be called at every iteration\n",
"def update_line(num, data, line):\n",
" # we only plot the first `num` data points.\n",
" line.set_data(data[..., :num] + np.random.rand(2, num) / 25)\n",
2016-02-16 21:40:20 +01:00
" return line,\n",
"\n",
"line_ani = animation.FuncAnimation(fig, update_line, frames=50,\n",
" fargs=(data, line), interval=100)\n",
"plt.close() # call close() to avoid displaying the static plot"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Next, let's display the animation. One option is to convert it to HTML5 code (using a `<video>` tag), and render this code using `IPython.display.HTML`:"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [],
"source": [
"from IPython.display import HTML\n",
"\n",
"HTML(line_ani.to_html5_video())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Alternatively, we can display the animation using a nice little HTML/Javascript interactive widget:"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [],
"source": [
"HTML(line_ani.to_jshtml())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can configure Matplotlib to use this widget by default when rendering animations:"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [],
"source": [
"matplotlib.rc('animation', html='jshtml')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"After that, you don't even need to use `IPython.display.HTML` anymore:"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [],
"source": [
"animation.FuncAnimation(fig, update_line, frames=50, fargs=(data, line),\n",
" interval=100)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Warning:** if you save the notebook along with its outputs, then the animations will take up a lot of space."
2016-02-16 21:40:20 +01:00
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
2016-03-03 18:29:41 +01:00
"# Saving animations to video files\n",
"Matplotlib relies on 3rd-party libraries to write videos such as [FFMPEG](https://www.ffmpeg.org/) or [ImageMagick](https://imagemagick.org/). In the following example we will be using FFMPEG so be sure to install it first. To save the animation to the GIF format, you would need ImageMagick."
2016-02-16 21:40:20 +01:00
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
2016-02-16 21:40:20 +01:00
"outputs": [],
"source": [
"Writer = animation.writers['ffmpeg']\n",
"writer = Writer(fps=15, metadata=dict(artist='Me'), bitrate=1800)\n",
"line_ani.save('my_wiggly_animation.mp4', writer=writer)"
2016-02-16 21:40:20 +01:00
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# What's next?\n",
"Now you know all the basics of matplotlib, but there are many more options available. The best way to learn more, is to visit the [gallery](https://matplotlib.org/stable/gallery/index.html), look at the images, choose a plot that you are interested in, then just copy the code in a Jupyter notebook and play around with it."
2016-02-16 21:40:20 +01:00
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
2016-02-16 21:40:20 +01:00
"language": "python",
"name": "python3"
2016-02-16 21:40:20 +01:00
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
2016-02-16 21:40:20 +01:00
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
2021-10-17 03:27:34 +02:00
"version": "3.8.12"
2016-03-03 18:29:41 +01:00
},
"toc": {
"toc_cell": true,
"toc_number_sections": true,
"toc_section_display": "block",
"toc_threshold": 6,
"toc_window_display": false
2016-02-16 21:40:20 +01:00
}
},
"nbformat": 4,
2020-04-06 09:13:12 +02:00
"nbformat_minor": 4
2016-02-16 21:40:20 +01:00
}