{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "26eceede",
   "metadata": {
    "toc": true
   },
   "source": [
    "<h1>Table of Contents<span class=\"tocSkip\"></span></h1>\n",
    "<div class=\"toc\"><ul class=\"toc-item\"><li><span><a href=\"#Vicsek-Model\" data-toc-modified-id=\"Vicsek-Model-1\"><span class=\"toc-item-num\">1&nbsp;&nbsp;</span>Vicsek Model</a></span><ul class=\"toc-item\"><li><span><a href=\"#Parameters\" data-toc-modified-id=\"Parameters-1.1\"><span class=\"toc-item-num\">1.1&nbsp;&nbsp;</span>Parameters</a></span></li></ul></li><li><span><a href=\"#running-a-simulation\" data-toc-modified-id=\"running-a-simulation-2\"><span class=\"toc-item-num\">2&nbsp;&nbsp;</span>running a simulation</a></span><ul class=\"toc-item\"><li><span><a href=\"#generating-data\" data-toc-modified-id=\"generating-data-2.1\"><span class=\"toc-item-num\">2.1&nbsp;&nbsp;</span>generating data</a></span></li><li><span><a href=\"#animating-the-data\" data-toc-modified-id=\"animating-the-data-2.2\"><span class=\"toc-item-num\">2.2&nbsp;&nbsp;</span>animating the data</a></span></li><li><span><a href=\"#saving-data\" data-toc-modified-id=\"saving-data-2.3\"><span class=\"toc-item-num\">2.3&nbsp;&nbsp;</span>saving data</a></span></li><li><span><a href=\"#loading-the-data\" data-toc-modified-id=\"loading-the-data-2.4\"><span class=\"toc-item-num\">2.4&nbsp;&nbsp;</span>loading the data</a></span></li><li><span><a href=\"#Calculations-on-the-data\" data-toc-modified-id=\"Calculations-on-the-data-2.5\"><span class=\"toc-item-num\">2.5&nbsp;&nbsp;</span>Calculations on the data</a></span></li></ul></li><li><span><a href=\"#Question-1\" data-toc-modified-id=\"Question-1-3\"><span class=\"toc-item-num\">3&nbsp;&nbsp;</span>Question 1</a></span></li><li><span><a href=\"#Question-2\" data-toc-modified-id=\"Question-2-4\"><span class=\"toc-item-num\">4&nbsp;&nbsp;</span>Question 2</a></span></li><li><span><a href=\"#Question-3\" data-toc-modified-id=\"Question-3-5\"><span class=\"toc-item-num\">5&nbsp;&nbsp;</span>Question 3</a></span></li><li><span><a href=\"#Question-4\" data-toc-modified-id=\"Question-4-6\"><span class=\"toc-item-num\">6&nbsp;&nbsp;</span>Question 4</a></span></li></ul></div>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "e36bb8e9",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-09-20T17:45:32.116004Z",
     "start_time": "2023-09-20T17:45:32.104007Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<h1>This is a heading</h1>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import vicsek_model as vicsek\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import os\n",
    "import pickle\n",
    "#plt.style.use('seaborn-pastel')\n",
    "%matplotlib notebook\n",
    "from IPython.display import display, HTML\n",
    "\n",
    "# Example: Display HTML in a Jupyter Notebook\n",
    "display(HTML(\"<h1>This is a heading</h1>\"))\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b9991ad9",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-09-10T14:03:33.708213Z",
     "start_time": "2022-09-10T14:03:33.381928Z"
    }
   },
   "source": [
    "# Vicsek Model\n",
    "\n",
    "## Parameters\n",
    "1. iterations: Number of timesteps\n",
    "2. **N: Number of active particles**\n",
    "3. v: Magnitude of velocity of active particles. All particles have the same velocity\n",
    "4. **r: Interaction radius**\n",
    "5. **eta: Noise in orientation** = $\\eta$\n",
    "6. L: side length of square periodic domain\n",
    "\n",
    "Let, $\\boldsymbol{p}_i(t) = (x_i(t), y_i(t))$, $\\boldsymbol{v}_i(t)$ and $\\theta(t)$ be the position, velocity and the orientation of the $i^{th}$ particle at time $t$\n",
    "\n",
    "The timestep length is assumed to be $\\delta t = 1$\n",
    "\n",
    "Each timestep, the orientation of the particles are updated according to the rule\n",
    "$$\\theta_i(t+1) = \\langle \\theta_i(t) \\rangle_r + \\eta U(-\\pi, \\pi)$$\n",
    "\n",
    "where, \n",
    "$$\\langle \\theta_i(t) \\rangle_r = \\frac{1}{\\sum_{k=1}^{N} m(i, k)} \\sum_{\\substack{k=1 \\\\ d(i,k) < r \\\\ k \\neq i}} ^ {N}\\theta_k(t)$$\n",
    "\n",
    "Here,$$m(i, k) = \\begin{cases}\n",
    "      1, & \\text{if}\\ d(i,k) < r \\\\\n",
    "      0, & \\text{otherwise}\n",
    "    \\end{cases}$$\n",
    "    \n",
    "$d(i,k)$ is the distance between the particles $i$ and $k$\n",
    "    \n",
    "and \n",
    "$U(-\\pi, \\pi)$ is a uniform random number sampled in the range $[-\\pi, \\pi]$\n",
    "    \n",
    "The velocity is  \n",
    "$$\\boldsymbol{v}_i(t+1) = v(cos(\\theta_i(t+1), sin(\\theta_i(t+1))$$\n",
    "\n",
    "Finally, the positions are updated as\n",
    "$$\\boldsymbol{p}(t+1) = \\boldsymbol{p}(t) + \\boldsymbol{v}(t+1)$$\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "40faa082",
   "metadata": {},
   "source": [
    "# running a simulation"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ca95dbea",
   "metadata": {},
   "source": [
    "## generating data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "1356d7e7",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-09-20T17:45:52.195783Z",
     "start_time": "2023-09-20T17:45:32.135024Z"
    }
   },
   "outputs": [],
   "source": [
    "iterations = 2500\n",
    "N = 2000\n",
    "eta = 0.15\n",
    "v = 0.10\n",
    "r = 0.5\n",
    "L = 32\n",
    "\n",
    "x, y, orient = vicsek.generate_vicsek_data(iterations=iterations, N=N, eta=eta, v=v, r=r, L=L)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "728f225e",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-09-10T15:04:32.952896Z",
     "start_time": "2022-09-10T15:04:21.733468Z"
    }
   },
   "source": [
    "## animating the data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "f4c3c9de",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-09-20T17:52:00.677711Z",
     "start_time": "2023-09-20T17:52:00.537258Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(2500, 2000)\n",
      "(2500, 2000)\n",
      "(2500, 2000)\n"
     ]
    },
    {
     "data": {
      "application/javascript": [
       "/* Put everything inside the global mpl namespace */\n",
       "/* global mpl */\n",
       "window.mpl = {};\n",
       "\n",
       "mpl.get_websocket_type = function () {\n",
       "    if (typeof WebSocket !== 'undefined') {\n",
       "        return WebSocket;\n",
       "    } else if (typeof MozWebSocket !== 'undefined') {\n",
       "        return MozWebSocket;\n",
       "    } else {\n",
       "        alert(\n",
       "            'Your browser does not have WebSocket support. ' +\n",
       "                'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
       "                'Firefox 4 and 5 are also supported but you ' +\n",
       "                'have to enable WebSockets in about:config.'\n",
       "        );\n",
       "    }\n",
       "};\n",
       "\n",
       "mpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n",
       "    this.id = figure_id;\n",
       "\n",
       "    this.ws = websocket;\n",
       "\n",
       "    this.supports_binary = this.ws.binaryType !== undefined;\n",
       "\n",
       "    if (!this.supports_binary) {\n",
       "        var warnings = document.getElementById('mpl-warnings');\n",
       "        if (warnings) {\n",
       "            warnings.style.display = 'block';\n",
       "            warnings.textContent =\n",
       "                'This browser does not support binary websocket messages. ' +\n",
       "                'Performance may be slow.';\n",
       "        }\n",
       "    }\n",
       "\n",
       "    this.imageObj = new Image();\n",
       "\n",
       "    this.context = undefined;\n",
       "    this.message = undefined;\n",
       "    this.canvas = undefined;\n",
       "    this.rubberband_canvas = undefined;\n",
       "    this.rubberband_context = undefined;\n",
       "    this.format_dropdown = undefined;\n",
       "\n",
       "    this.image_mode = 'full';\n",
       "\n",
       "    this.root = document.createElement('div');\n",
       "    this.root.setAttribute('style', 'display: inline-block');\n",
       "    this._root_extra_style(this.root);\n",
       "\n",
       "    parent_element.appendChild(this.root);\n",
       "\n",
       "    this._init_header(this);\n",
       "    this._init_canvas(this);\n",
       "    this._init_toolbar(this);\n",
       "\n",
       "    var fig = this;\n",
       "\n",
       "    this.waiting = false;\n",
       "\n",
       "    this.ws.onopen = function () {\n",
       "        fig.send_message('supports_binary', { value: fig.supports_binary });\n",
       "        fig.send_message('send_image_mode', {});\n",
       "        if (fig.ratio !== 1) {\n",
       "            fig.send_message('set_device_pixel_ratio', {\n",
       "                device_pixel_ratio: fig.ratio,\n",
       "            });\n",
       "        }\n",
       "        fig.send_message('refresh', {});\n",
       "    };\n",
       "\n",
       "    this.imageObj.onload = function () {\n",
       "        if (fig.image_mode === 'full') {\n",
       "            // Full images could contain transparency (where diff images\n",
       "            // almost always do), so we need to clear the canvas so that\n",
       "            // there is no ghosting.\n",
       "            fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
       "        }\n",
       "        fig.context.drawImage(fig.imageObj, 0, 0);\n",
       "    };\n",
       "\n",
       "    this.imageObj.onunload = function () {\n",
       "        fig.ws.close();\n",
       "    };\n",
       "\n",
       "    this.ws.onmessage = this._make_on_message_function(this);\n",
       "\n",
       "    this.ondownload = ondownload;\n",
       "};\n",
       "\n",
       "mpl.figure.prototype._init_header = function () {\n",
       "    var titlebar = document.createElement('div');\n",
       "    titlebar.classList =\n",
       "        'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n",
       "    var titletext = document.createElement('div');\n",
       "    titletext.classList = 'ui-dialog-title';\n",
       "    titletext.setAttribute(\n",
       "        'style',\n",
       "        'width: 100%; text-align: center; padding: 3px;'\n",
       "    );\n",
       "    titlebar.appendChild(titletext);\n",
       "    this.root.appendChild(titlebar);\n",
       "    this.header = titletext;\n",
       "};\n",
       "\n",
       "mpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n",
       "\n",
       "mpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n",
       "\n",
       "mpl.figure.prototype._init_canvas = function () {\n",
       "    var fig = this;\n",
       "\n",
       "    var canvas_div = (this.canvas_div = document.createElement('div'));\n",
       "    canvas_div.setAttribute('tabindex', '0');\n",
       "    canvas_div.setAttribute(\n",
       "        'style',\n",
       "        'border: 1px solid #ddd;' +\n",
       "            'box-sizing: content-box;' +\n",
       "            'clear: both;' +\n",
       "            'min-height: 1px;' +\n",
       "            'min-width: 1px;' +\n",
       "            'outline: 0;' +\n",
       "            'overflow: hidden;' +\n",
       "            'position: relative;' +\n",
       "            'resize: both;' +\n",
       "            'z-index: 2;'\n",
       "    );\n",
       "\n",
       "    function on_keyboard_event_closure(name) {\n",
       "        return function (event) {\n",
       "            return fig.key_event(event, name);\n",
       "        };\n",
       "    }\n",
       "\n",
       "    canvas_div.addEventListener(\n",
       "        'keydown',\n",
       "        on_keyboard_event_closure('key_press')\n",
       "    );\n",
       "    canvas_div.addEventListener(\n",
       "        'keyup',\n",
       "        on_keyboard_event_closure('key_release')\n",
       "    );\n",
       "\n",
       "    this._canvas_extra_style(canvas_div);\n",
       "    this.root.appendChild(canvas_div);\n",
       "\n",
       "    var canvas = (this.canvas = document.createElement('canvas'));\n",
       "    canvas.classList.add('mpl-canvas');\n",
       "    canvas.setAttribute(\n",
       "        'style',\n",
       "        'box-sizing: content-box;' +\n",
       "            'pointer-events: none;' +\n",
       "            'position: relative;' +\n",
       "            'z-index: 0;'\n",
       "    );\n",
       "\n",
       "    this.context = canvas.getContext('2d');\n",
       "\n",
       "    var backingStore =\n",
       "        this.context.backingStorePixelRatio ||\n",
       "        this.context.webkitBackingStorePixelRatio ||\n",
       "        this.context.mozBackingStorePixelRatio ||\n",
       "        this.context.msBackingStorePixelRatio ||\n",
       "        this.context.oBackingStorePixelRatio ||\n",
       "        this.context.backingStorePixelRatio ||\n",
       "        1;\n",
       "\n",
       "    this.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
       "\n",
       "    var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n",
       "        'canvas'\n",
       "    ));\n",
       "    rubberband_canvas.setAttribute(\n",
       "        'style',\n",
       "        'box-sizing: content-box;' +\n",
       "            'left: 0;' +\n",
       "            'pointer-events: none;' +\n",
       "            'position: absolute;' +\n",
       "            'top: 0;' +\n",
       "            'z-index: 1;'\n",
       "    );\n",
       "\n",
       "    // Apply a ponyfill if ResizeObserver is not implemented by browser.\n",
       "    if (this.ResizeObserver === undefined) {\n",
       "        if (window.ResizeObserver !== undefined) {\n",
       "            this.ResizeObserver = window.ResizeObserver;\n",
       "        } else {\n",
       "            var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n",
       "            this.ResizeObserver = obs.ResizeObserver;\n",
       "        }\n",
       "    }\n",
       "\n",
       "    this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n",
       "        var nentries = entries.length;\n",
       "        for (var i = 0; i < nentries; i++) {\n",
       "            var entry = entries[i];\n",
       "            var width, height;\n",
       "            if (entry.contentBoxSize) {\n",
       "                if (entry.contentBoxSize instanceof Array) {\n",
       "                    // Chrome 84 implements new version of spec.\n",
       "                    width = entry.contentBoxSize[0].inlineSize;\n",
       "                    height = entry.contentBoxSize[0].blockSize;\n",
       "                } else {\n",
       "                    // Firefox implements old version of spec.\n",
       "                    width = entry.contentBoxSize.inlineSize;\n",
       "                    height = entry.contentBoxSize.blockSize;\n",
       "                }\n",
       "            } else {\n",
       "                // Chrome <84 implements even older version of spec.\n",
       "                width = entry.contentRect.width;\n",
       "                height = entry.contentRect.height;\n",
       "            }\n",
       "\n",
       "            // Keep the size of the canvas and rubber band canvas in sync with\n",
       "            // the canvas container.\n",
       "            if (entry.devicePixelContentBoxSize) {\n",
       "                // Chrome 84 implements new version of spec.\n",
       "                canvas.setAttribute(\n",
       "                    'width',\n",
       "                    entry.devicePixelContentBoxSize[0].inlineSize\n",
       "                );\n",
       "                canvas.setAttribute(\n",
       "                    'height',\n",
       "                    entry.devicePixelContentBoxSize[0].blockSize\n",
       "                );\n",
       "            } else {\n",
       "                canvas.setAttribute('width', width * fig.ratio);\n",
       "                canvas.setAttribute('height', height * fig.ratio);\n",
       "            }\n",
       "            /* This rescales the canvas back to display pixels, so that it\n",
       "             * appears correct on HiDPI screens. */\n",
       "            canvas.style.width = width + 'px';\n",
       "            canvas.style.height = height + 'px';\n",
       "\n",
       "            rubberband_canvas.setAttribute('width', width);\n",
       "            rubberband_canvas.setAttribute('height', height);\n",
       "\n",
       "            // And update the size in Python. We ignore the initial 0/0 size\n",
       "            // that occurs as the element is placed into the DOM, which should\n",
       "            // otherwise not happen due to the minimum size styling.\n",
       "            if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n",
       "                fig.request_resize(width, height);\n",
       "            }\n",
       "        }\n",
       "    });\n",
       "    this.resizeObserverInstance.observe(canvas_div);\n",
       "\n",
       "    function on_mouse_event_closure(name) {\n",
       "        /* User Agent sniffing is bad, but WebKit is busted:\n",
       "         * https://bugs.webkit.org/show_bug.cgi?id=144526\n",
       "         * https://bugs.webkit.org/show_bug.cgi?id=181818\n",
       "         * The worst that happens here is that they get an extra browser\n",
       "         * selection when dragging, if this check fails to catch them.\n",
       "         */\n",
       "        var UA = navigator.userAgent;\n",
       "        var isWebKit = /AppleWebKit/.test(UA) && !/Chrome/.test(UA);\n",
       "        if(isWebKit) {\n",
       "            return function (event) {\n",
       "                /* This prevents the web browser from automatically changing to\n",
       "                 * the text insertion cursor when the button is pressed. We\n",
       "                 * want to control all of the cursor setting manually through\n",
       "                 * the 'cursor' event from matplotlib */\n",
       "                event.preventDefault()\n",
       "                return fig.mouse_event(event, name);\n",
       "            };\n",
       "        } else {\n",
       "            return function (event) {\n",
       "                return fig.mouse_event(event, name);\n",
       "            };\n",
       "        }\n",
       "    }\n",
       "\n",
       "    canvas_div.addEventListener(\n",
       "        'mousedown',\n",
       "        on_mouse_event_closure('button_press')\n",
       "    );\n",
       "    canvas_div.addEventListener(\n",
       "        'mouseup',\n",
       "        on_mouse_event_closure('button_release')\n",
       "    );\n",
       "    canvas_div.addEventListener(\n",
       "        'dblclick',\n",
       "        on_mouse_event_closure('dblclick')\n",
       "    );\n",
       "    // Throttle sequential mouse events to 1 every 20ms.\n",
       "    canvas_div.addEventListener(\n",
       "        'mousemove',\n",
       "        on_mouse_event_closure('motion_notify')\n",
       "    );\n",
       "\n",
       "    canvas_div.addEventListener(\n",
       "        'mouseenter',\n",
       "        on_mouse_event_closure('figure_enter')\n",
       "    );\n",
       "    canvas_div.addEventListener(\n",
       "        'mouseleave',\n",
       "        on_mouse_event_closure('figure_leave')\n",
       "    );\n",
       "\n",
       "    canvas_div.addEventListener('wheel', function (event) {\n",
       "        if (event.deltaY < 0) {\n",
       "            event.step = 1;\n",
       "        } else {\n",
       "            event.step = -1;\n",
       "        }\n",
       "        on_mouse_event_closure('scroll')(event);\n",
       "    });\n",
       "\n",
       "    canvas_div.appendChild(canvas);\n",
       "    canvas_div.appendChild(rubberband_canvas);\n",
       "\n",
       "    this.rubberband_context = rubberband_canvas.getContext('2d');\n",
       "    this.rubberband_context.strokeStyle = '#000000';\n",
       "\n",
       "    this._resize_canvas = function (width, height, forward) {\n",
       "        if (forward) {\n",
       "            canvas_div.style.width = width + 'px';\n",
       "            canvas_div.style.height = height + 'px';\n",
       "        }\n",
       "    };\n",
       "\n",
       "    // Disable right mouse context menu.\n",
       "    canvas_div.addEventListener('contextmenu', function (_e) {\n",
       "        event.preventDefault();\n",
       "        return false;\n",
       "    });\n",
       "\n",
       "    function set_focus() {\n",
       "        canvas.focus();\n",
       "        canvas_div.focus();\n",
       "    }\n",
       "\n",
       "    window.setTimeout(set_focus, 100);\n",
       "};\n",
       "\n",
       "mpl.figure.prototype._init_toolbar = function () {\n",
       "    var fig = this;\n",
       "\n",
       "    var toolbar = document.createElement('div');\n",
       "    toolbar.classList = 'mpl-toolbar';\n",
       "    this.root.appendChild(toolbar);\n",
       "\n",
       "    function on_click_closure(name) {\n",
       "        return function (_event) {\n",
       "            return fig.toolbar_button_onclick(name);\n",
       "        };\n",
       "    }\n",
       "\n",
       "    function on_mouseover_closure(tooltip) {\n",
       "        return function (event) {\n",
       "            if (!event.currentTarget.disabled) {\n",
       "                return fig.toolbar_button_onmouseover(tooltip);\n",
       "            }\n",
       "        };\n",
       "    }\n",
       "\n",
       "    fig.buttons = {};\n",
       "    var buttonGroup = document.createElement('div');\n",
       "    buttonGroup.classList = 'mpl-button-group';\n",
       "    for (var toolbar_ind in mpl.toolbar_items) {\n",
       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
       "\n",
       "        if (!name) {\n",
       "            /* Instead of a spacer, we start a new button group. */\n",
       "            if (buttonGroup.hasChildNodes()) {\n",
       "                toolbar.appendChild(buttonGroup);\n",
       "            }\n",
       "            buttonGroup = document.createElement('div');\n",
       "            buttonGroup.classList = 'mpl-button-group';\n",
       "            continue;\n",
       "        }\n",
       "\n",
       "        var button = (fig.buttons[name] = document.createElement('button'));\n",
       "        button.classList = 'mpl-widget';\n",
       "        button.setAttribute('role', 'button');\n",
       "        button.setAttribute('aria-disabled', 'false');\n",
       "        button.addEventListener('click', on_click_closure(method_name));\n",
       "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
       "\n",
       "        var icon_img = document.createElement('img');\n",
       "        icon_img.src = '_images/' + image + '.png';\n",
       "        icon_img.srcset = '_images/' + image + '_large.png 2x';\n",
       "        icon_img.alt = tooltip;\n",
       "        button.appendChild(icon_img);\n",
       "\n",
       "        buttonGroup.appendChild(button);\n",
       "    }\n",
       "\n",
       "    if (buttonGroup.hasChildNodes()) {\n",
       "        toolbar.appendChild(buttonGroup);\n",
       "    }\n",
       "\n",
       "    var fmt_picker = document.createElement('select');\n",
       "    fmt_picker.classList = 'mpl-widget';\n",
       "    toolbar.appendChild(fmt_picker);\n",
       "    this.format_dropdown = fmt_picker;\n",
       "\n",
       "    for (var ind in mpl.extensions) {\n",
       "        var fmt = mpl.extensions[ind];\n",
       "        var option = document.createElement('option');\n",
       "        option.selected = fmt === mpl.default_extension;\n",
       "        option.innerHTML = fmt;\n",
       "        fmt_picker.appendChild(option);\n",
       "    }\n",
       "\n",
       "    var status_bar = document.createElement('span');\n",
       "    status_bar.classList = 'mpl-message';\n",
       "    toolbar.appendChild(status_bar);\n",
       "    this.message = status_bar;\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n",
       "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
       "    // which will in turn request a refresh of the image.\n",
       "    this.send_message('resize', { width: x_pixels, height: y_pixels });\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.send_message = function (type, properties) {\n",
       "    properties['type'] = type;\n",
       "    properties['figure_id'] = this.id;\n",
       "    this.ws.send(JSON.stringify(properties));\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.send_draw_message = function () {\n",
       "    if (!this.waiting) {\n",
       "        this.waiting = true;\n",
       "        this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n",
       "    }\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
       "    var format_dropdown = fig.format_dropdown;\n",
       "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
       "    fig.ondownload(fig, format);\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_resize = function (fig, msg) {\n",
       "    var size = msg['size'];\n",
       "    if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n",
       "        fig._resize_canvas(size[0], size[1], msg['forward']);\n",
       "        fig.send_message('refresh', {});\n",
       "    }\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_rubberband = function (fig, msg) {\n",
       "    var x0 = msg['x0'] / fig.ratio;\n",
       "    var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n",
       "    var x1 = msg['x1'] / fig.ratio;\n",
       "    var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n",
       "    x0 = Math.floor(x0) + 0.5;\n",
       "    y0 = Math.floor(y0) + 0.5;\n",
       "    x1 = Math.floor(x1) + 0.5;\n",
       "    y1 = Math.floor(y1) + 0.5;\n",
       "    var min_x = Math.min(x0, x1);\n",
       "    var min_y = Math.min(y0, y1);\n",
       "    var width = Math.abs(x1 - x0);\n",
       "    var height = Math.abs(y1 - y0);\n",
       "\n",
       "    fig.rubberband_context.clearRect(\n",
       "        0,\n",
       "        0,\n",
       "        fig.canvas.width / fig.ratio,\n",
       "        fig.canvas.height / fig.ratio\n",
       "    );\n",
       "\n",
       "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_figure_label = function (fig, msg) {\n",
       "    // Updates the figure title.\n",
       "    fig.header.textContent = msg['label'];\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_cursor = function (fig, msg) {\n",
       "    fig.canvas_div.style.cursor = msg['cursor'];\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_message = function (fig, msg) {\n",
       "    fig.message.textContent = msg['message'];\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_draw = function (fig, _msg) {\n",
       "    // Request the server to send over a new figure.\n",
       "    fig.send_draw_message();\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_image_mode = function (fig, msg) {\n",
       "    fig.image_mode = msg['mode'];\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n",
       "    for (var key in msg) {\n",
       "        if (!(key in fig.buttons)) {\n",
       "            continue;\n",
       "        }\n",
       "        fig.buttons[key].disabled = !msg[key];\n",
       "        fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n",
       "    }\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n",
       "    if (msg['mode'] === 'PAN') {\n",
       "        fig.buttons['Pan'].classList.add('active');\n",
       "        fig.buttons['Zoom'].classList.remove('active');\n",
       "    } else if (msg['mode'] === 'ZOOM') {\n",
       "        fig.buttons['Pan'].classList.remove('active');\n",
       "        fig.buttons['Zoom'].classList.add('active');\n",
       "    } else {\n",
       "        fig.buttons['Pan'].classList.remove('active');\n",
       "        fig.buttons['Zoom'].classList.remove('active');\n",
       "    }\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.updated_canvas_event = function () {\n",
       "    // Called whenever the canvas gets updated.\n",
       "    this.send_message('ack', {});\n",
       "};\n",
       "\n",
       "// A function to construct a web socket function for onmessage handling.\n",
       "// Called in the figure constructor.\n",
       "mpl.figure.prototype._make_on_message_function = function (fig) {\n",
       "    return function socket_on_message(evt) {\n",
       "        if (evt.data instanceof Blob) {\n",
       "            var img = evt.data;\n",
       "            if (img.type !== 'image/png') {\n",
       "                /* FIXME: We get \"Resource interpreted as Image but\n",
       "                 * transferred with MIME type text/plain:\" errors on\n",
       "                 * Chrome.  But how to set the MIME type?  It doesn't seem\n",
       "                 * to be part of the websocket stream */\n",
       "                img.type = 'image/png';\n",
       "            }\n",
       "\n",
       "            /* Free the memory for the previous frames */\n",
       "            if (fig.imageObj.src) {\n",
       "                (window.URL || window.webkitURL).revokeObjectURL(\n",
       "                    fig.imageObj.src\n",
       "                );\n",
       "            }\n",
       "\n",
       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
       "                img\n",
       "            );\n",
       "            fig.updated_canvas_event();\n",
       "            fig.waiting = false;\n",
       "            return;\n",
       "        } else if (\n",
       "            typeof evt.data === 'string' &&\n",
       "            evt.data.slice(0, 21) === 'data:image/png;base64'\n",
       "        ) {\n",
       "            fig.imageObj.src = evt.data;\n",
       "            fig.updated_canvas_event();\n",
       "            fig.waiting = false;\n",
       "            return;\n",
       "        }\n",
       "\n",
       "        var msg = JSON.parse(evt.data);\n",
       "        var msg_type = msg['type'];\n",
       "\n",
       "        // Call the  \"handle_{type}\" callback, which takes\n",
       "        // the figure and JSON message as its only arguments.\n",
       "        try {\n",
       "            var callback = fig['handle_' + msg_type];\n",
       "        } catch (e) {\n",
       "            console.log(\n",
       "                \"No handler for the '\" + msg_type + \"' message type: \",\n",
       "                msg\n",
       "            );\n",
       "            return;\n",
       "        }\n",
       "\n",
       "        if (callback) {\n",
       "            try {\n",
       "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
       "                callback(fig, msg);\n",
       "            } catch (e) {\n",
       "                console.log(\n",
       "                    \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n",
       "                    e,\n",
       "                    e.stack,\n",
       "                    msg\n",
       "                );\n",
       "            }\n",
       "        }\n",
       "    };\n",
       "};\n",
       "\n",
       "function getModifiers(event) {\n",
       "    var mods = [];\n",
       "    if (event.ctrlKey) {\n",
       "        mods.push('ctrl');\n",
       "    }\n",
       "    if (event.altKey) {\n",
       "        mods.push('alt');\n",
       "    }\n",
       "    if (event.shiftKey) {\n",
       "        mods.push('shift');\n",
       "    }\n",
       "    if (event.metaKey) {\n",
       "        mods.push('meta');\n",
       "    }\n",
       "    return mods;\n",
       "}\n",
       "\n",
       "/*\n",
       " * return a copy of an object with only non-object keys\n",
       " * we need this to avoid circular references\n",
       " * https://stackoverflow.com/a/24161582/3208463\n",
       " */\n",
       "function simpleKeys(original) {\n",
       "    return Object.keys(original).reduce(function (obj, key) {\n",
       "        if (typeof original[key] !== 'object') {\n",
       "            obj[key] = original[key];\n",
       "        }\n",
       "        return obj;\n",
       "    }, {});\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.mouse_event = function (event, name) {\n",
       "    if (name === 'button_press') {\n",
       "        this.canvas.focus();\n",
       "        this.canvas_div.focus();\n",
       "    }\n",
       "\n",
       "    // from https://stackoverflow.com/q/1114465\n",
       "    var boundingRect = this.canvas.getBoundingClientRect();\n",
       "    var x = (event.clientX - boundingRect.left) * this.ratio;\n",
       "    var y = (event.clientY - boundingRect.top) * this.ratio;\n",
       "\n",
       "    this.send_message(name, {\n",
       "        x: x,\n",
       "        y: y,\n",
       "        button: event.button,\n",
       "        step: event.step,\n",
       "        modifiers: getModifiers(event),\n",
       "        guiEvent: simpleKeys(event),\n",
       "    });\n",
       "\n",
       "    return false;\n",
       "};\n",
       "\n",
       "mpl.figure.prototype._key_event_extra = function (_event, _name) {\n",
       "    // Handle any extra behaviour associated with a key event\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.key_event = function (event, name) {\n",
       "    // Prevent repeat events\n",
       "    if (name === 'key_press') {\n",
       "        if (event.key === this._key) {\n",
       "            return;\n",
       "        } else {\n",
       "            this._key = event.key;\n",
       "        }\n",
       "    }\n",
       "    if (name === 'key_release') {\n",
       "        this._key = null;\n",
       "    }\n",
       "\n",
       "    var value = '';\n",
       "    if (event.ctrlKey && event.key !== 'Control') {\n",
       "        value += 'ctrl+';\n",
       "    }\n",
       "    else if (event.altKey && event.key !== 'Alt') {\n",
       "        value += 'alt+';\n",
       "    }\n",
       "    else if (event.shiftKey && event.key !== 'Shift') {\n",
       "        value += 'shift+';\n",
       "    }\n",
       "\n",
       "    value += 'k' + event.key;\n",
       "\n",
       "    this._key_event_extra(event, name);\n",
       "\n",
       "    this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n",
       "    return false;\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.toolbar_button_onclick = function (name) {\n",
       "    if (name === 'download') {\n",
       "        this.handle_save(this, null);\n",
       "    } else {\n",
       "        this.send_message('toolbar_button', { name: name });\n",
       "    }\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n",
       "    this.message.textContent = tooltip;\n",
       "};\n",
       "\n",
       "///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n",
       "// prettier-ignore\n",
       "var _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\n",
       "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis\", \"fa fa-square-o\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o\", \"download\"]];\n",
       "\n",
       "mpl.extensions = [\"eps\", \"jpeg\", \"pgf\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\", \"webp\"];\n",
       "\n",
       "mpl.default_extension = \"png\";/* global mpl */\n",
       "\n",
       "var comm_websocket_adapter = function (comm) {\n",
       "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
       "    // object with the appropriate methods. Currently this is a non binary\n",
       "    // socket, so there is still some room for performance tuning.\n",
       "    var ws = {};\n",
       "\n",
       "    ws.binaryType = comm.kernel.ws.binaryType;\n",
       "    ws.readyState = comm.kernel.ws.readyState;\n",
       "    function updateReadyState(_event) {\n",
       "        if (comm.kernel.ws) {\n",
       "            ws.readyState = comm.kernel.ws.readyState;\n",
       "        } else {\n",
       "            ws.readyState = 3; // Closed state.\n",
       "        }\n",
       "    }\n",
       "    comm.kernel.ws.addEventListener('open', updateReadyState);\n",
       "    comm.kernel.ws.addEventListener('close', updateReadyState);\n",
       "    comm.kernel.ws.addEventListener('error', updateReadyState);\n",
       "\n",
       "    ws.close = function () {\n",
       "        comm.close();\n",
       "    };\n",
       "    ws.send = function (m) {\n",
       "        //console.log('sending', m);\n",
       "        comm.send(m);\n",
       "    };\n",
       "    // Register the callback with on_msg.\n",
       "    comm.on_msg(function (msg) {\n",
       "        //console.log('receiving', msg['content']['data'], msg);\n",
       "        var data = msg['content']['data'];\n",
       "        if (data['blob'] !== undefined) {\n",
       "            data = {\n",
       "                data: new Blob(msg['buffers'], { type: data['blob'] }),\n",
       "            };\n",
       "        }\n",
       "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
       "        ws.onmessage(data);\n",
       "    });\n",
       "    return ws;\n",
       "};\n",
       "\n",
       "mpl.mpl_figure_comm = function (comm, msg) {\n",
       "    // This is the function which gets called when the mpl process\n",
       "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
       "\n",
       "    var id = msg.content.data.id;\n",
       "    // Get hold of the div created by the display call when the Comm\n",
       "    // socket was opened in Python.\n",
       "    var element = document.getElementById(id);\n",
       "    var ws_proxy = comm_websocket_adapter(comm);\n",
       "\n",
       "    function ondownload(figure, _format) {\n",
       "        window.open(figure.canvas.toDataURL());\n",
       "    }\n",
       "\n",
       "    var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n",
       "\n",
       "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
       "    // web socket which is closed, not our websocket->open comm proxy.\n",
       "    ws_proxy.onopen();\n",
       "\n",
       "    fig.parent_element = element;\n",
       "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
       "    if (!fig.cell_info) {\n",
       "        console.error('Failed to find cell for figure', id, fig);\n",
       "        return;\n",
       "    }\n",
       "    fig.cell_info[0].output_area.element.on(\n",
       "        'cleared',\n",
       "        { fig: fig },\n",
       "        fig._remove_fig_handler\n",
       "    );\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_close = function (fig, msg) {\n",
       "    var width = fig.canvas.width / fig.ratio;\n",
       "    fig.cell_info[0].output_area.element.off(\n",
       "        'cleared',\n",
       "        fig._remove_fig_handler\n",
       "    );\n",
       "    fig.resizeObserverInstance.unobserve(fig.canvas_div);\n",
       "\n",
       "    // Update the output cell to use the data from the current canvas.\n",
       "    fig.push_to_output();\n",
       "    var dataURL = fig.canvas.toDataURL();\n",
       "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
       "    // the notebook keyboard shortcuts fail.\n",
       "    IPython.keyboard_manager.enable();\n",
       "    fig.parent_element.innerHTML =\n",
       "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
       "    fig.close_ws(fig, msg);\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.close_ws = function (fig, msg) {\n",
       "    fig.send_message('closing', msg);\n",
       "    // fig.ws.close()\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.push_to_output = function (_remove_interactive) {\n",
       "    // Turn the data on the canvas into data in the output cell.\n",
       "    var width = this.canvas.width / this.ratio;\n",
       "    var dataURL = this.canvas.toDataURL();\n",
       "    this.cell_info[1]['text/html'] =\n",
       "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.updated_canvas_event = function () {\n",
       "    // Tell IPython that the notebook contents must change.\n",
       "    IPython.notebook.set_dirty(true);\n",
       "    this.send_message('ack', {});\n",
       "    var fig = this;\n",
       "    // Wait a second, then push the new image to the DOM so\n",
       "    // that it is saved nicely (might be nice to debounce this).\n",
       "    setTimeout(function () {\n",
       "        fig.push_to_output();\n",
       "    }, 1000);\n",
       "};\n",
       "\n",
       "mpl.figure.prototype._init_toolbar = function () {\n",
       "    var fig = this;\n",
       "\n",
       "    var toolbar = document.createElement('div');\n",
       "    toolbar.classList = 'btn-toolbar';\n",
       "    this.root.appendChild(toolbar);\n",
       "\n",
       "    function on_click_closure(name) {\n",
       "        return function (_event) {\n",
       "            return fig.toolbar_button_onclick(name);\n",
       "        };\n",
       "    }\n",
       "\n",
       "    function on_mouseover_closure(tooltip) {\n",
       "        return function (event) {\n",
       "            if (!event.currentTarget.disabled) {\n",
       "                return fig.toolbar_button_onmouseover(tooltip);\n",
       "            }\n",
       "        };\n",
       "    }\n",
       "\n",
       "    fig.buttons = {};\n",
       "    var buttonGroup = document.createElement('div');\n",
       "    buttonGroup.classList = 'btn-group';\n",
       "    var button;\n",
       "    for (var toolbar_ind in mpl.toolbar_items) {\n",
       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
       "\n",
       "        if (!name) {\n",
       "            /* Instead of a spacer, we start a new button group. */\n",
       "            if (buttonGroup.hasChildNodes()) {\n",
       "                toolbar.appendChild(buttonGroup);\n",
       "            }\n",
       "            buttonGroup = document.createElement('div');\n",
       "            buttonGroup.classList = 'btn-group';\n",
       "            continue;\n",
       "        }\n",
       "\n",
       "        button = fig.buttons[name] = document.createElement('button');\n",
       "        button.classList = 'btn btn-default';\n",
       "        button.href = '#';\n",
       "        button.title = name;\n",
       "        button.innerHTML = '<i class=\"fa ' + image + ' fa-lg\"></i>';\n",
       "        button.addEventListener('click', on_click_closure(method_name));\n",
       "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
       "        buttonGroup.appendChild(button);\n",
       "    }\n",
       "\n",
       "    if (buttonGroup.hasChildNodes()) {\n",
       "        toolbar.appendChild(buttonGroup);\n",
       "    }\n",
       "\n",
       "    // Add the status bar.\n",
       "    var status_bar = document.createElement('span');\n",
       "    status_bar.classList = 'mpl-message pull-right';\n",
       "    toolbar.appendChild(status_bar);\n",
       "    this.message = status_bar;\n",
       "\n",
       "    // Add the close button to the window.\n",
       "    var buttongrp = document.createElement('div');\n",
       "    buttongrp.classList = 'btn-group inline pull-right';\n",
       "    button = document.createElement('button');\n",
       "    button.classList = 'btn btn-mini btn-primary';\n",
       "    button.href = '#';\n",
       "    button.title = 'Stop Interaction';\n",
       "    button.innerHTML = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\n",
       "    button.addEventListener('click', function (_evt) {\n",
       "        fig.handle_close(fig, {});\n",
       "    });\n",
       "    button.addEventListener(\n",
       "        'mouseover',\n",
       "        on_mouseover_closure('Stop Interaction')\n",
       "    );\n",
       "    buttongrp.appendChild(button);\n",
       "    var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n",
       "    titlebar.insertBefore(buttongrp, titlebar.firstChild);\n",
       "};\n",
       "\n",
       "mpl.figure.prototype._remove_fig_handler = function (event) {\n",
       "    var fig = event.data.fig;\n",
       "    if (event.target !== this) {\n",
       "        // Ignore bubbled events from children.\n",
       "        return;\n",
       "    }\n",
       "    fig.close_ws(fig, {});\n",
       "};\n",
       "\n",
       "mpl.figure.prototype._root_extra_style = function (el) {\n",
       "    el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n",
       "};\n",
       "\n",
       "mpl.figure.prototype._canvas_extra_style = function (el) {\n",
       "    // this is important to make the div 'focusable\n",
       "    el.setAttribute('tabindex', 0);\n",
       "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
       "    // off when our div gets focus\n",
       "\n",
       "    // location in version 3\n",
       "    if (IPython.notebook.keyboard_manager) {\n",
       "        IPython.notebook.keyboard_manager.register_events(el);\n",
       "    } else {\n",
       "        // location in version 2\n",
       "        IPython.keyboard_manager.register_events(el);\n",
       "    }\n",
       "};\n",
       "\n",
       "mpl.figure.prototype._key_event_extra = function (event, _name) {\n",
       "    // Check for shift+enter\n",
       "    if (event.shiftKey && event.which === 13) {\n",
       "        this.canvas_div.blur();\n",
       "        // select the cell after this one\n",
       "        var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
       "        IPython.notebook.select(index + 1);\n",
       "    }\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
       "    fig.ondownload(fig, null);\n",
       "};\n",
       "\n",
       "mpl.find_output_cell = function (html_output) {\n",
       "    // Return the cell and output element which can be found *uniquely* in the notebook.\n",
       "    // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
       "    // IPython event is triggered only after the cells have been serialised, which for\n",
       "    // our purposes (turning an active figure into a static one), is too late.\n",
       "    var cells = IPython.notebook.get_cells();\n",
       "    var ncells = cells.length;\n",
       "    for (var i = 0; i < ncells; i++) {\n",
       "        var cell = cells[i];\n",
       "        if (cell.cell_type === 'code') {\n",
       "            for (var j = 0; j < cell.output_area.outputs.length; j++) {\n",
       "                var data = cell.output_area.outputs[j];\n",
       "                if (data.data) {\n",
       "                    // IPython >= 3 moved mimebundle to data attribute of output\n",
       "                    data = data.data;\n",
       "                }\n",
       "                if (data['text/html'] === html_output) {\n",
       "                    return [cell, data, j];\n",
       "                }\n",
       "            }\n",
       "        }\n",
       "    }\n",
       "};\n",
       "\n",
       "// Register the function which deals with the matplotlib target/channel.\n",
       "// The kernel may be null if the page has been refreshed.\n",
       "if (IPython.notebook.kernel !== null) {\n",
       "    IPython.notebook.kernel.comm_manager.register_target(\n",
       "        'matplotlib',\n",
       "        mpl.mpl_figure_comm\n",
       "    );\n",
       "}\n"
      ],
      "text/plain": [
       "<IPython.core.display.Javascript object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div id='5e162b0b-78df-43aa-b9fc-ad5a03f0642c'></div>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "print(x.shape)\n",
    "print(y.shape)\n",
    "print(orient.shape)\n",
    "vicsek.animate_viscek(x, y, orient, iterations)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "18aa2a14",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-09-11T14:01:29.847360Z",
     "start_time": "2022-09-11T14:01:29.834361Z"
    }
   },
   "source": [
    "## saving data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "b337d6af",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-09-13T08:30:40.414246Z",
     "start_time": "2022-09-13T08:30:40.324040Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "saving data for the parameters: {'iterations': 2500, 'N': 2000, 'eta': 0.15, 'v': 0.1, 'r': 0.5, 'L': 32}\n"
     ]
    }
   ],
   "source": [
    "name = 'n00001'\n",
    "result_dir = 'vicsek_data/' + name + '/'\n",
    "if not os.path.exists(result_dir):\n",
    "    os.makedirs(result_dir)\n",
    "    \n",
    "np.save(result_dir + '/x.npy', x)  \n",
    "np.save(result_dir + '/y.npy', y)\n",
    "np.save(result_dir + '/orient.npy', orient)\n",
    "\n",
    "params = {}\n",
    "params['iterations'] = iterations\n",
    "params['N'] = N\n",
    "params['eta'] = eta\n",
    "params['v'] = v\n",
    "params['r'] = r\n",
    "params['L'] = L\n",
    "\n",
    "with open(result_dir + 'params.pkl', 'wb') as f:\n",
    "    pickle.dump(params, f)\n",
    "\n",
    "print('saving data for the parameters:', params)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d6a57c7a",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-09-11T14:01:33.473268Z",
     "start_time": "2022-09-11T14:01:33.466219Z"
    }
   },
   "source": [
    "## loading the data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3dcefb98",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-09-13T08:30:40.460387Z",
     "start_time": "2022-09-13T08:30:40.417301Z"
    }
   },
   "outputs": [],
   "source": [
    "name = 'n00001'\n",
    "result_dir = 'vicsek_data/' + name + '/'\n",
    "with open(result_dir + 'params.pkl', 'rb') as f:\n",
    "    params = pickle.load(f)\n",
    "x = np.load(result_dir + '/x.npy')  \n",
    "y = np.load(result_dir + '/y.npy')\n",
    "orient = np.load(result_dir + '/orient.npy')\n",
    "\n",
    "print('loading data for the parameters:', params)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "af2061e1",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-09-20T17:48:29.822427Z",
     "start_time": "2023-09-20T17:48:29.673082Z"
    }
   },
   "source": [
    "vicsek.animate_viscek(x, y, orient, iterations)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d5268c5f",
   "metadata": {},
   "source": [
    "## Calculations on the data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "8214c08c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/javascript": [
       "/* Put everything inside the global mpl namespace */\n",
       "/* global mpl */\n",
       "window.mpl = {};\n",
       "\n",
       "mpl.get_websocket_type = function () {\n",
       "    if (typeof WebSocket !== 'undefined') {\n",
       "        return WebSocket;\n",
       "    } else if (typeof MozWebSocket !== 'undefined') {\n",
       "        return MozWebSocket;\n",
       "    } else {\n",
       "        alert(\n",
       "            'Your browser does not have WebSocket support. ' +\n",
       "                'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
       "                'Firefox 4 and 5 are also supported but you ' +\n",
       "                'have to enable WebSockets in about:config.'\n",
       "        );\n",
       "    }\n",
       "};\n",
       "\n",
       "mpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n",
       "    this.id = figure_id;\n",
       "\n",
       "    this.ws = websocket;\n",
       "\n",
       "    this.supports_binary = this.ws.binaryType !== undefined;\n",
       "\n",
       "    if (!this.supports_binary) {\n",
       "        var warnings = document.getElementById('mpl-warnings');\n",
       "        if (warnings) {\n",
       "            warnings.style.display = 'block';\n",
       "            warnings.textContent =\n",
       "                'This browser does not support binary websocket messages. ' +\n",
       "                'Performance may be slow.';\n",
       "        }\n",
       "    }\n",
       "\n",
       "    this.imageObj = new Image();\n",
       "\n",
       "    this.context = undefined;\n",
       "    this.message = undefined;\n",
       "    this.canvas = undefined;\n",
       "    this.rubberband_canvas = undefined;\n",
       "    this.rubberband_context = undefined;\n",
       "    this.format_dropdown = undefined;\n",
       "\n",
       "    this.image_mode = 'full';\n",
       "\n",
       "    this.root = document.createElement('div');\n",
       "    this.root.setAttribute('style', 'display: inline-block');\n",
       "    this._root_extra_style(this.root);\n",
       "\n",
       "    parent_element.appendChild(this.root);\n",
       "\n",
       "    this._init_header(this);\n",
       "    this._init_canvas(this);\n",
       "    this._init_toolbar(this);\n",
       "\n",
       "    var fig = this;\n",
       "\n",
       "    this.waiting = false;\n",
       "\n",
       "    this.ws.onopen = function () {\n",
       "        fig.send_message('supports_binary', { value: fig.supports_binary });\n",
       "        fig.send_message('send_image_mode', {});\n",
       "        if (fig.ratio !== 1) {\n",
       "            fig.send_message('set_device_pixel_ratio', {\n",
       "                device_pixel_ratio: fig.ratio,\n",
       "            });\n",
       "        }\n",
       "        fig.send_message('refresh', {});\n",
       "    };\n",
       "\n",
       "    this.imageObj.onload = function () {\n",
       "        if (fig.image_mode === 'full') {\n",
       "            // Full images could contain transparency (where diff images\n",
       "            // almost always do), so we need to clear the canvas so that\n",
       "            // there is no ghosting.\n",
       "            fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
       "        }\n",
       "        fig.context.drawImage(fig.imageObj, 0, 0);\n",
       "    };\n",
       "\n",
       "    this.imageObj.onunload = function () {\n",
       "        fig.ws.close();\n",
       "    };\n",
       "\n",
       "    this.ws.onmessage = this._make_on_message_function(this);\n",
       "\n",
       "    this.ondownload = ondownload;\n",
       "};\n",
       "\n",
       "mpl.figure.prototype._init_header = function () {\n",
       "    var titlebar = document.createElement('div');\n",
       "    titlebar.classList =\n",
       "        'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n",
       "    var titletext = document.createElement('div');\n",
       "    titletext.classList = 'ui-dialog-title';\n",
       "    titletext.setAttribute(\n",
       "        'style',\n",
       "        'width: 100%; text-align: center; padding: 3px;'\n",
       "    );\n",
       "    titlebar.appendChild(titletext);\n",
       "    this.root.appendChild(titlebar);\n",
       "    this.header = titletext;\n",
       "};\n",
       "\n",
       "mpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n",
       "\n",
       "mpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n",
       "\n",
       "mpl.figure.prototype._init_canvas = function () {\n",
       "    var fig = this;\n",
       "\n",
       "    var canvas_div = (this.canvas_div = document.createElement('div'));\n",
       "    canvas_div.setAttribute(\n",
       "        'style',\n",
       "        'border: 1px solid #ddd;' +\n",
       "            'box-sizing: content-box;' +\n",
       "            'clear: both;' +\n",
       "            'min-height: 1px;' +\n",
       "            'min-width: 1px;' +\n",
       "            'outline: 0;' +\n",
       "            'overflow: hidden;' +\n",
       "            'position: relative;' +\n",
       "            'resize: both;'\n",
       "    );\n",
       "\n",
       "    function on_keyboard_event_closure(name) {\n",
       "        return function (event) {\n",
       "            return fig.key_event(event, name);\n",
       "        };\n",
       "    }\n",
       "\n",
       "    canvas_div.addEventListener(\n",
       "        'keydown',\n",
       "        on_keyboard_event_closure('key_press')\n",
       "    );\n",
       "    canvas_div.addEventListener(\n",
       "        'keyup',\n",
       "        on_keyboard_event_closure('key_release')\n",
       "    );\n",
       "\n",
       "    this._canvas_extra_style(canvas_div);\n",
       "    this.root.appendChild(canvas_div);\n",
       "\n",
       "    var canvas = (this.canvas = document.createElement('canvas'));\n",
       "    canvas.classList.add('mpl-canvas');\n",
       "    canvas.setAttribute('style', 'box-sizing: content-box;');\n",
       "\n",
       "    this.context = canvas.getContext('2d');\n",
       "\n",
       "    var backingStore =\n",
       "        this.context.backingStorePixelRatio ||\n",
       "        this.context.webkitBackingStorePixelRatio ||\n",
       "        this.context.mozBackingStorePixelRatio ||\n",
       "        this.context.msBackingStorePixelRatio ||\n",
       "        this.context.oBackingStorePixelRatio ||\n",
       "        this.context.backingStorePixelRatio ||\n",
       "        1;\n",
       "\n",
       "    this.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
       "\n",
       "    var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n",
       "        'canvas'\n",
       "    ));\n",
       "    rubberband_canvas.setAttribute(\n",
       "        'style',\n",
       "        'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n",
       "    );\n",
       "\n",
       "    // Apply a ponyfill if ResizeObserver is not implemented by browser.\n",
       "    if (this.ResizeObserver === undefined) {\n",
       "        if (window.ResizeObserver !== undefined) {\n",
       "            this.ResizeObserver = window.ResizeObserver;\n",
       "        } else {\n",
       "            var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n",
       "            this.ResizeObserver = obs.ResizeObserver;\n",
       "        }\n",
       "    }\n",
       "\n",
       "    this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n",
       "        var nentries = entries.length;\n",
       "        for (var i = 0; i < nentries; i++) {\n",
       "            var entry = entries[i];\n",
       "            var width, height;\n",
       "            if (entry.contentBoxSize) {\n",
       "                if (entry.contentBoxSize instanceof Array) {\n",
       "                    // Chrome 84 implements new version of spec.\n",
       "                    width = entry.contentBoxSize[0].inlineSize;\n",
       "                    height = entry.contentBoxSize[0].blockSize;\n",
       "                } else {\n",
       "                    // Firefox implements old version of spec.\n",
       "                    width = entry.contentBoxSize.inlineSize;\n",
       "                    height = entry.contentBoxSize.blockSize;\n",
       "                }\n",
       "            } else {\n",
       "                // Chrome <84 implements even older version of spec.\n",
       "                width = entry.contentRect.width;\n",
       "                height = entry.contentRect.height;\n",
       "            }\n",
       "\n",
       "            // Keep the size of the canvas and rubber band canvas in sync with\n",
       "            // the canvas container.\n",
       "            if (entry.devicePixelContentBoxSize) {\n",
       "                // Chrome 84 implements new version of spec.\n",
       "                canvas.setAttribute(\n",
       "                    'width',\n",
       "                    entry.devicePixelContentBoxSize[0].inlineSize\n",
       "                );\n",
       "                canvas.setAttribute(\n",
       "                    'height',\n",
       "                    entry.devicePixelContentBoxSize[0].blockSize\n",
       "                );\n",
       "            } else {\n",
       "                canvas.setAttribute('width', width * fig.ratio);\n",
       "                canvas.setAttribute('height', height * fig.ratio);\n",
       "            }\n",
       "            canvas.setAttribute(\n",
       "                'style',\n",
       "                'width: ' + width + 'px; height: ' + height + 'px;'\n",
       "            );\n",
       "\n",
       "            rubberband_canvas.setAttribute('width', width);\n",
       "            rubberband_canvas.setAttribute('height', height);\n",
       "\n",
       "            // And update the size in Python. We ignore the initial 0/0 size\n",
       "            // that occurs as the element is placed into the DOM, which should\n",
       "            // otherwise not happen due to the minimum size styling.\n",
       "            if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n",
       "                fig.request_resize(width, height);\n",
       "            }\n",
       "        }\n",
       "    });\n",
       "    this.resizeObserverInstance.observe(canvas_div);\n",
       "\n",
       "    function on_mouse_event_closure(name) {\n",
       "        return function (event) {\n",
       "            return fig.mouse_event(event, name);\n",
       "        };\n",
       "    }\n",
       "\n",
       "    rubberband_canvas.addEventListener(\n",
       "        'mousedown',\n",
       "        on_mouse_event_closure('button_press')\n",
       "    );\n",
       "    rubberband_canvas.addEventListener(\n",
       "        'mouseup',\n",
       "        on_mouse_event_closure('button_release')\n",
       "    );\n",
       "    rubberband_canvas.addEventListener(\n",
       "        'dblclick',\n",
       "        on_mouse_event_closure('dblclick')\n",
       "    );\n",
       "    // Throttle sequential mouse events to 1 every 20ms.\n",
       "    rubberband_canvas.addEventListener(\n",
       "        'mousemove',\n",
       "        on_mouse_event_closure('motion_notify')\n",
       "    );\n",
       "\n",
       "    rubberband_canvas.addEventListener(\n",
       "        'mouseenter',\n",
       "        on_mouse_event_closure('figure_enter')\n",
       "    );\n",
       "    rubberband_canvas.addEventListener(\n",
       "        'mouseleave',\n",
       "        on_mouse_event_closure('figure_leave')\n",
       "    );\n",
       "\n",
       "    canvas_div.addEventListener('wheel', function (event) {\n",
       "        if (event.deltaY < 0) {\n",
       "            event.step = 1;\n",
       "        } else {\n",
       "            event.step = -1;\n",
       "        }\n",
       "        on_mouse_event_closure('scroll')(event);\n",
       "    });\n",
       "\n",
       "    canvas_div.appendChild(canvas);\n",
       "    canvas_div.appendChild(rubberband_canvas);\n",
       "\n",
       "    this.rubberband_context = rubberband_canvas.getContext('2d');\n",
       "    this.rubberband_context.strokeStyle = '#000000';\n",
       "\n",
       "    this._resize_canvas = function (width, height, forward) {\n",
       "        if (forward) {\n",
       "            canvas_div.style.width = width + 'px';\n",
       "            canvas_div.style.height = height + 'px';\n",
       "        }\n",
       "    };\n",
       "\n",
       "    // Disable right mouse context menu.\n",
       "    this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n",
       "        event.preventDefault();\n",
       "        return false;\n",
       "    });\n",
       "\n",
       "    function set_focus() {\n",
       "        canvas.focus();\n",
       "        canvas_div.focus();\n",
       "    }\n",
       "\n",
       "    window.setTimeout(set_focus, 100);\n",
       "};\n",
       "\n",
       "mpl.figure.prototype._init_toolbar = function () {\n",
       "    var fig = this;\n",
       "\n",
       "    var toolbar = document.createElement('div');\n",
       "    toolbar.classList = 'mpl-toolbar';\n",
       "    this.root.appendChild(toolbar);\n",
       "\n",
       "    function on_click_closure(name) {\n",
       "        return function (_event) {\n",
       "            return fig.toolbar_button_onclick(name);\n",
       "        };\n",
       "    }\n",
       "\n",
       "    function on_mouseover_closure(tooltip) {\n",
       "        return function (event) {\n",
       "            if (!event.currentTarget.disabled) {\n",
       "                return fig.toolbar_button_onmouseover(tooltip);\n",
       "            }\n",
       "        };\n",
       "    }\n",
       "\n",
       "    fig.buttons = {};\n",
       "    var buttonGroup = document.createElement('div');\n",
       "    buttonGroup.classList = 'mpl-button-group';\n",
       "    for (var toolbar_ind in mpl.toolbar_items) {\n",
       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
       "\n",
       "        if (!name) {\n",
       "            /* Instead of a spacer, we start a new button group. */\n",
       "            if (buttonGroup.hasChildNodes()) {\n",
       "                toolbar.appendChild(buttonGroup);\n",
       "            }\n",
       "            buttonGroup = document.createElement('div');\n",
       "            buttonGroup.classList = 'mpl-button-group';\n",
       "            continue;\n",
       "        }\n",
       "\n",
       "        var button = (fig.buttons[name] = document.createElement('button'));\n",
       "        button.classList = 'mpl-widget';\n",
       "        button.setAttribute('role', 'button');\n",
       "        button.setAttribute('aria-disabled', 'false');\n",
       "        button.addEventListener('click', on_click_closure(method_name));\n",
       "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
       "\n",
       "        var icon_img = document.createElement('img');\n",
       "        icon_img.src = '_images/' + image + '.png';\n",
       "        icon_img.srcset = '_images/' + image + '_large.png 2x';\n",
       "        icon_img.alt = tooltip;\n",
       "        button.appendChild(icon_img);\n",
       "\n",
       "        buttonGroup.appendChild(button);\n",
       "    }\n",
       "\n",
       "    if (buttonGroup.hasChildNodes()) {\n",
       "        toolbar.appendChild(buttonGroup);\n",
       "    }\n",
       "\n",
       "    var fmt_picker = document.createElement('select');\n",
       "    fmt_picker.classList = 'mpl-widget';\n",
       "    toolbar.appendChild(fmt_picker);\n",
       "    this.format_dropdown = fmt_picker;\n",
       "\n",
       "    for (var ind in mpl.extensions) {\n",
       "        var fmt = mpl.extensions[ind];\n",
       "        var option = document.createElement('option');\n",
       "        option.selected = fmt === mpl.default_extension;\n",
       "        option.innerHTML = fmt;\n",
       "        fmt_picker.appendChild(option);\n",
       "    }\n",
       "\n",
       "    var status_bar = document.createElement('span');\n",
       "    status_bar.classList = 'mpl-message';\n",
       "    toolbar.appendChild(status_bar);\n",
       "    this.message = status_bar;\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n",
       "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
       "    // which will in turn request a refresh of the image.\n",
       "    this.send_message('resize', { width: x_pixels, height: y_pixels });\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.send_message = function (type, properties) {\n",
       "    properties['type'] = type;\n",
       "    properties['figure_id'] = this.id;\n",
       "    this.ws.send(JSON.stringify(properties));\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.send_draw_message = function () {\n",
       "    if (!this.waiting) {\n",
       "        this.waiting = true;\n",
       "        this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n",
       "    }\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
       "    var format_dropdown = fig.format_dropdown;\n",
       "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
       "    fig.ondownload(fig, format);\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_resize = function (fig, msg) {\n",
       "    var size = msg['size'];\n",
       "    if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n",
       "        fig._resize_canvas(size[0], size[1], msg['forward']);\n",
       "        fig.send_message('refresh', {});\n",
       "    }\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_rubberband = function (fig, msg) {\n",
       "    var x0 = msg['x0'] / fig.ratio;\n",
       "    var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n",
       "    var x1 = msg['x1'] / fig.ratio;\n",
       "    var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n",
       "    x0 = Math.floor(x0) + 0.5;\n",
       "    y0 = Math.floor(y0) + 0.5;\n",
       "    x1 = Math.floor(x1) + 0.5;\n",
       "    y1 = Math.floor(y1) + 0.5;\n",
       "    var min_x = Math.min(x0, x1);\n",
       "    var min_y = Math.min(y0, y1);\n",
       "    var width = Math.abs(x1 - x0);\n",
       "    var height = Math.abs(y1 - y0);\n",
       "\n",
       "    fig.rubberband_context.clearRect(\n",
       "        0,\n",
       "        0,\n",
       "        fig.canvas.width / fig.ratio,\n",
       "        fig.canvas.height / fig.ratio\n",
       "    );\n",
       "\n",
       "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_figure_label = function (fig, msg) {\n",
       "    // Updates the figure title.\n",
       "    fig.header.textContent = msg['label'];\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_cursor = function (fig, msg) {\n",
       "    fig.rubberband_canvas.style.cursor = msg['cursor'];\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_message = function (fig, msg) {\n",
       "    fig.message.textContent = msg['message'];\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_draw = function (fig, _msg) {\n",
       "    // Request the server to send over a new figure.\n",
       "    fig.send_draw_message();\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_image_mode = function (fig, msg) {\n",
       "    fig.image_mode = msg['mode'];\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n",
       "    for (var key in msg) {\n",
       "        if (!(key in fig.buttons)) {\n",
       "            continue;\n",
       "        }\n",
       "        fig.buttons[key].disabled = !msg[key];\n",
       "        fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n",
       "    }\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n",
       "    if (msg['mode'] === 'PAN') {\n",
       "        fig.buttons['Pan'].classList.add('active');\n",
       "        fig.buttons['Zoom'].classList.remove('active');\n",
       "    } else if (msg['mode'] === 'ZOOM') {\n",
       "        fig.buttons['Pan'].classList.remove('active');\n",
       "        fig.buttons['Zoom'].classList.add('active');\n",
       "    } else {\n",
       "        fig.buttons['Pan'].classList.remove('active');\n",
       "        fig.buttons['Zoom'].classList.remove('active');\n",
       "    }\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.updated_canvas_event = function () {\n",
       "    // Called whenever the canvas gets updated.\n",
       "    this.send_message('ack', {});\n",
       "};\n",
       "\n",
       "// A function to construct a web socket function for onmessage handling.\n",
       "// Called in the figure constructor.\n",
       "mpl.figure.prototype._make_on_message_function = function (fig) {\n",
       "    return function socket_on_message(evt) {\n",
       "        if (evt.data instanceof Blob) {\n",
       "            var img = evt.data;\n",
       "            if (img.type !== 'image/png') {\n",
       "                /* FIXME: We get \"Resource interpreted as Image but\n",
       "                 * transferred with MIME type text/plain:\" errors on\n",
       "                 * Chrome.  But how to set the MIME type?  It doesn't seem\n",
       "                 * to be part of the websocket stream */\n",
       "                img.type = 'image/png';\n",
       "            }\n",
       "\n",
       "            /* Free the memory for the previous frames */\n",
       "            if (fig.imageObj.src) {\n",
       "                (window.URL || window.webkitURL).revokeObjectURL(\n",
       "                    fig.imageObj.src\n",
       "                );\n",
       "            }\n",
       "\n",
       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
       "                img\n",
       "            );\n",
       "            fig.updated_canvas_event();\n",
       "            fig.waiting = false;\n",
       "            return;\n",
       "        } else if (\n",
       "            typeof evt.data === 'string' &&\n",
       "            evt.data.slice(0, 21) === 'data:image/png;base64'\n",
       "        ) {\n",
       "            fig.imageObj.src = evt.data;\n",
       "            fig.updated_canvas_event();\n",
       "            fig.waiting = false;\n",
       "            return;\n",
       "        }\n",
       "\n",
       "        var msg = JSON.parse(evt.data);\n",
       "        var msg_type = msg['type'];\n",
       "\n",
       "        // Call the  \"handle_{type}\" callback, which takes\n",
       "        // the figure and JSON message as its only arguments.\n",
       "        try {\n",
       "            var callback = fig['handle_' + msg_type];\n",
       "        } catch (e) {\n",
       "            console.log(\n",
       "                \"No handler for the '\" + msg_type + \"' message type: \",\n",
       "                msg\n",
       "            );\n",
       "            return;\n",
       "        }\n",
       "\n",
       "        if (callback) {\n",
       "            try {\n",
       "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
       "                callback(fig, msg);\n",
       "            } catch (e) {\n",
       "                console.log(\n",
       "                    \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n",
       "                    e,\n",
       "                    e.stack,\n",
       "                    msg\n",
       "                );\n",
       "            }\n",
       "        }\n",
       "    };\n",
       "};\n",
       "\n",
       "// from https://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
       "mpl.findpos = function (e) {\n",
       "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
       "    var targ;\n",
       "    if (!e) {\n",
       "        e = window.event;\n",
       "    }\n",
       "    if (e.target) {\n",
       "        targ = e.target;\n",
       "    } else if (e.srcElement) {\n",
       "        targ = e.srcElement;\n",
       "    }\n",
       "    if (targ.nodeType === 3) {\n",
       "        // defeat Safari bug\n",
       "        targ = targ.parentNode;\n",
       "    }\n",
       "\n",
       "    // pageX,Y are the mouse positions relative to the document\n",
       "    var boundingRect = targ.getBoundingClientRect();\n",
       "    var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n",
       "    var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n",
       "\n",
       "    return { x: x, y: y };\n",
       "};\n",
       "\n",
       "/*\n",
       " * return a copy of an object with only non-object keys\n",
       " * we need this to avoid circular references\n",
       " * https://stackoverflow.com/a/24161582/3208463\n",
       " */\n",
       "function simpleKeys(original) {\n",
       "    return Object.keys(original).reduce(function (obj, key) {\n",
       "        if (typeof original[key] !== 'object') {\n",
       "            obj[key] = original[key];\n",
       "        }\n",
       "        return obj;\n",
       "    }, {});\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.mouse_event = function (event, name) {\n",
       "    var canvas_pos = mpl.findpos(event);\n",
       "\n",
       "    if (name === 'button_press') {\n",
       "        this.canvas.focus();\n",
       "        this.canvas_div.focus();\n",
       "    }\n",
       "\n",
       "    var x = canvas_pos.x * this.ratio;\n",
       "    var y = canvas_pos.y * this.ratio;\n",
       "\n",
       "    this.send_message(name, {\n",
       "        x: x,\n",
       "        y: y,\n",
       "        button: event.button,\n",
       "        step: event.step,\n",
       "        guiEvent: simpleKeys(event),\n",
       "    });\n",
       "\n",
       "    /* This prevents the web browser from automatically changing to\n",
       "     * the text insertion cursor when the button is pressed.  We want\n",
       "     * to control all of the cursor setting manually through the\n",
       "     * 'cursor' event from matplotlib */\n",
       "    event.preventDefault();\n",
       "    return false;\n",
       "};\n",
       "\n",
       "mpl.figure.prototype._key_event_extra = function (_event, _name) {\n",
       "    // Handle any extra behaviour associated with a key event\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.key_event = function (event, name) {\n",
       "    // Prevent repeat events\n",
       "    if (name === 'key_press') {\n",
       "        if (event.key === this._key) {\n",
       "            return;\n",
       "        } else {\n",
       "            this._key = event.key;\n",
       "        }\n",
       "    }\n",
       "    if (name === 'key_release') {\n",
       "        this._key = null;\n",
       "    }\n",
       "\n",
       "    var value = '';\n",
       "    if (event.ctrlKey && event.key !== 'Control') {\n",
       "        value += 'ctrl+';\n",
       "    }\n",
       "    else if (event.altKey && event.key !== 'Alt') {\n",
       "        value += 'alt+';\n",
       "    }\n",
       "    else if (event.shiftKey && event.key !== 'Shift') {\n",
       "        value += 'shift+';\n",
       "    }\n",
       "\n",
       "    value += 'k' + event.key;\n",
       "\n",
       "    this._key_event_extra(event, name);\n",
       "\n",
       "    this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n",
       "    return false;\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.toolbar_button_onclick = function (name) {\n",
       "    if (name === 'download') {\n",
       "        this.handle_save(this, null);\n",
       "    } else {\n",
       "        this.send_message('toolbar_button', { name: name });\n",
       "    }\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n",
       "    this.message.textContent = tooltip;\n",
       "};\n",
       "\n",
       "///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n",
       "// prettier-ignore\n",
       "var _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\n",
       "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
       "\n",
       "mpl.extensions = [\"eps\", \"jpeg\", \"pgf\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
       "\n",
       "mpl.default_extension = \"png\";/* global mpl */\n",
       "\n",
       "var comm_websocket_adapter = function (comm) {\n",
       "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
       "    // object with the appropriate methods. Currently this is a non binary\n",
       "    // socket, so there is still some room for performance tuning.\n",
       "    var ws = {};\n",
       "\n",
       "    ws.binaryType = comm.kernel.ws.binaryType;\n",
       "    ws.readyState = comm.kernel.ws.readyState;\n",
       "    function updateReadyState(_event) {\n",
       "        if (comm.kernel.ws) {\n",
       "            ws.readyState = comm.kernel.ws.readyState;\n",
       "        } else {\n",
       "            ws.readyState = 3; // Closed state.\n",
       "        }\n",
       "    }\n",
       "    comm.kernel.ws.addEventListener('open', updateReadyState);\n",
       "    comm.kernel.ws.addEventListener('close', updateReadyState);\n",
       "    comm.kernel.ws.addEventListener('error', updateReadyState);\n",
       "\n",
       "    ws.close = function () {\n",
       "        comm.close();\n",
       "    };\n",
       "    ws.send = function (m) {\n",
       "        //console.log('sending', m);\n",
       "        comm.send(m);\n",
       "    };\n",
       "    // Register the callback with on_msg.\n",
       "    comm.on_msg(function (msg) {\n",
       "        //console.log('receiving', msg['content']['data'], msg);\n",
       "        var data = msg['content']['data'];\n",
       "        if (data['blob'] !== undefined) {\n",
       "            data = {\n",
       "                data: new Blob(msg['buffers'], { type: data['blob'] }),\n",
       "            };\n",
       "        }\n",
       "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
       "        ws.onmessage(data);\n",
       "    });\n",
       "    return ws;\n",
       "};\n",
       "\n",
       "mpl.mpl_figure_comm = function (comm, msg) {\n",
       "    // This is the function which gets called when the mpl process\n",
       "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
       "\n",
       "    var id = msg.content.data.id;\n",
       "    // Get hold of the div created by the display call when the Comm\n",
       "    // socket was opened in Python.\n",
       "    var element = document.getElementById(id);\n",
       "    var ws_proxy = comm_websocket_adapter(comm);\n",
       "\n",
       "    function ondownload(figure, _format) {\n",
       "        window.open(figure.canvas.toDataURL());\n",
       "    }\n",
       "\n",
       "    var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n",
       "\n",
       "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
       "    // web socket which is closed, not our websocket->open comm proxy.\n",
       "    ws_proxy.onopen();\n",
       "\n",
       "    fig.parent_element = element;\n",
       "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
       "    if (!fig.cell_info) {\n",
       "        console.error('Failed to find cell for figure', id, fig);\n",
       "        return;\n",
       "    }\n",
       "    fig.cell_info[0].output_area.element.on(\n",
       "        'cleared',\n",
       "        { fig: fig },\n",
       "        fig._remove_fig_handler\n",
       "    );\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_close = function (fig, msg) {\n",
       "    var width = fig.canvas.width / fig.ratio;\n",
       "    fig.cell_info[0].output_area.element.off(\n",
       "        'cleared',\n",
       "        fig._remove_fig_handler\n",
       "    );\n",
       "    fig.resizeObserverInstance.unobserve(fig.canvas_div);\n",
       "\n",
       "    // Update the output cell to use the data from the current canvas.\n",
       "    fig.push_to_output();\n",
       "    var dataURL = fig.canvas.toDataURL();\n",
       "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
       "    // the notebook keyboard shortcuts fail.\n",
       "    IPython.keyboard_manager.enable();\n",
       "    fig.parent_element.innerHTML =\n",
       "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
       "    fig.close_ws(fig, msg);\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.close_ws = function (fig, msg) {\n",
       "    fig.send_message('closing', msg);\n",
       "    // fig.ws.close()\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.push_to_output = function (_remove_interactive) {\n",
       "    // Turn the data on the canvas into data in the output cell.\n",
       "    var width = this.canvas.width / this.ratio;\n",
       "    var dataURL = this.canvas.toDataURL();\n",
       "    this.cell_info[1]['text/html'] =\n",
       "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.updated_canvas_event = function () {\n",
       "    // Tell IPython that the notebook contents must change.\n",
       "    IPython.notebook.set_dirty(true);\n",
       "    this.send_message('ack', {});\n",
       "    var fig = this;\n",
       "    // Wait a second, then push the new image to the DOM so\n",
       "    // that it is saved nicely (might be nice to debounce this).\n",
       "    setTimeout(function () {\n",
       "        fig.push_to_output();\n",
       "    }, 1000);\n",
       "};\n",
       "\n",
       "mpl.figure.prototype._init_toolbar = function () {\n",
       "    var fig = this;\n",
       "\n",
       "    var toolbar = document.createElement('div');\n",
       "    toolbar.classList = 'btn-toolbar';\n",
       "    this.root.appendChild(toolbar);\n",
       "\n",
       "    function on_click_closure(name) {\n",
       "        return function (_event) {\n",
       "            return fig.toolbar_button_onclick(name);\n",
       "        };\n",
       "    }\n",
       "\n",
       "    function on_mouseover_closure(tooltip) {\n",
       "        return function (event) {\n",
       "            if (!event.currentTarget.disabled) {\n",
       "                return fig.toolbar_button_onmouseover(tooltip);\n",
       "            }\n",
       "        };\n",
       "    }\n",
       "\n",
       "    fig.buttons = {};\n",
       "    var buttonGroup = document.createElement('div');\n",
       "    buttonGroup.classList = 'btn-group';\n",
       "    var button;\n",
       "    for (var toolbar_ind in mpl.toolbar_items) {\n",
       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
       "\n",
       "        if (!name) {\n",
       "            /* Instead of a spacer, we start a new button group. */\n",
       "            if (buttonGroup.hasChildNodes()) {\n",
       "                toolbar.appendChild(buttonGroup);\n",
       "            }\n",
       "            buttonGroup = document.createElement('div');\n",
       "            buttonGroup.classList = 'btn-group';\n",
       "            continue;\n",
       "        }\n",
       "\n",
       "        button = fig.buttons[name] = document.createElement('button');\n",
       "        button.classList = 'btn btn-default';\n",
       "        button.href = '#';\n",
       "        button.title = name;\n",
       "        button.innerHTML = '<i class=\"fa ' + image + ' fa-lg\"></i>';\n",
       "        button.addEventListener('click', on_click_closure(method_name));\n",
       "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
       "        buttonGroup.appendChild(button);\n",
       "    }\n",
       "\n",
       "    if (buttonGroup.hasChildNodes()) {\n",
       "        toolbar.appendChild(buttonGroup);\n",
       "    }\n",
       "\n",
       "    // Add the status bar.\n",
       "    var status_bar = document.createElement('span');\n",
       "    status_bar.classList = 'mpl-message pull-right';\n",
       "    toolbar.appendChild(status_bar);\n",
       "    this.message = status_bar;\n",
       "\n",
       "    // Add the close button to the window.\n",
       "    var buttongrp = document.createElement('div');\n",
       "    buttongrp.classList = 'btn-group inline pull-right';\n",
       "    button = document.createElement('button');\n",
       "    button.classList = 'btn btn-mini btn-primary';\n",
       "    button.href = '#';\n",
       "    button.title = 'Stop Interaction';\n",
       "    button.innerHTML = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\n",
       "    button.addEventListener('click', function (_evt) {\n",
       "        fig.handle_close(fig, {});\n",
       "    });\n",
       "    button.addEventListener(\n",
       "        'mouseover',\n",
       "        on_mouseover_closure('Stop Interaction')\n",
       "    );\n",
       "    buttongrp.appendChild(button);\n",
       "    var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n",
       "    titlebar.insertBefore(buttongrp, titlebar.firstChild);\n",
       "};\n",
       "\n",
       "mpl.figure.prototype._remove_fig_handler = function (event) {\n",
       "    var fig = event.data.fig;\n",
       "    if (event.target !== this) {\n",
       "        // Ignore bubbled events from children.\n",
       "        return;\n",
       "    }\n",
       "    fig.close_ws(fig, {});\n",
       "};\n",
       "\n",
       "mpl.figure.prototype._root_extra_style = function (el) {\n",
       "    el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n",
       "};\n",
       "\n",
       "mpl.figure.prototype._canvas_extra_style = function (el) {\n",
       "    // this is important to make the div 'focusable\n",
       "    el.setAttribute('tabindex', 0);\n",
       "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
       "    // off when our div gets focus\n",
       "\n",
       "    // location in version 3\n",
       "    if (IPython.notebook.keyboard_manager) {\n",
       "        IPython.notebook.keyboard_manager.register_events(el);\n",
       "    } else {\n",
       "        // location in version 2\n",
       "        IPython.keyboard_manager.register_events(el);\n",
       "    }\n",
       "};\n",
       "\n",
       "mpl.figure.prototype._key_event_extra = function (event, _name) {\n",
       "    // Check for shift+enter\n",
       "    if (event.shiftKey && event.which === 13) {\n",
       "        this.canvas_div.blur();\n",
       "        // select the cell after this one\n",
       "        var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
       "        IPython.notebook.select(index + 1);\n",
       "    }\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
       "    fig.ondownload(fig, null);\n",
       "};\n",
       "\n",
       "mpl.find_output_cell = function (html_output) {\n",
       "    // Return the cell and output element which can be found *uniquely* in the notebook.\n",
       "    // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
       "    // IPython event is triggered only after the cells have been serialised, which for\n",
       "    // our purposes (turning an active figure into a static one), is too late.\n",
       "    var cells = IPython.notebook.get_cells();\n",
       "    var ncells = cells.length;\n",
       "    for (var i = 0; i < ncells; i++) {\n",
       "        var cell = cells[i];\n",
       "        if (cell.cell_type === 'code') {\n",
       "            for (var j = 0; j < cell.output_area.outputs.length; j++) {\n",
       "                var data = cell.output_area.outputs[j];\n",
       "                if (data.data) {\n",
       "                    // IPython >= 3 moved mimebundle to data attribute of output\n",
       "                    data = data.data;\n",
       "                }\n",
       "                if (data['text/html'] === html_output) {\n",
       "                    return [cell, data, j];\n",
       "                }\n",
       "            }\n",
       "        }\n",
       "    }\n",
       "};\n",
       "\n",
       "// Register the function which deals with the matplotlib target/channel.\n",
       "// The kernel may be null if the page has been refreshed.\n",
       "if (IPython.notebook.kernel !== null) {\n",
       "    IPython.notebook.kernel.comm_manager.register_target(\n",
       "        'matplotlib',\n",
       "        mpl.mpl_figure_comm\n",
       "    );\n",
       "}\n"
      ],
      "text/plain": [
       "<IPython.core.display.Javascript object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABoYAAATkCAYAAABBv7KQAAAgAElEQVR4XuzdCbBtZXUg4F9Q5kkEVEB4TCIiMomAIg5xZtCIRg0OEUFEY3Ws6k51KlY6aauTTiVV3Z0YJ5wVFWfEOc4TIDKLjMJjHmTmgSCCvda7nPfO22+fc/YZ7j3Tt6qsTnP3+P377fvev/a/1iP+GFEEAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIDATAs8IkNiaKbH2M0RIECAAAECBAgQIECAAAECBAgQIECAAAECBFYKSAx5EAgQIECAAAECBAgQIECAAAECBAgQIECAAAECcyIgMTQnA+02CRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQISQ54BAgQIECBAgAABAgQIECBAgAABAgQIECBAgMCcCEgMzclAu00CBAgQIECAAAECBAgQIECAAAECBAgQIECAgMSQZ4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgMCcCEkNzMtBukwABAgQIECBAgAABAgQIECBAgAABAgQIECAgMeQZIECAAAECBAgQIECAAAECBAgQIECAAAECBAjMiYDE0JwMtNskQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECEgMeQYIECBAgAABAgQIECBAgAABAgQIECBAgAABAnMiIDE0JwPtNgkQIECAAAECBAgQIECAAAECBAgQIECAAAECEkOeAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIDAnAhIDM3JQLtNAgQIECBAgAABAgQIECBAgAABAgQIECBAgIDEkGeAAAECBAgQIECAAAECBAgQIECAAAECBAgQIDAnAhJDczLQbpMAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgIDHkGSBAgAABAgQIECBAgAABAgQIECBAgAABAgQIzImAxNCcDLTbJECAAAECBAgQIECAAAECBAgQIECAAAECBAhIDHkGCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJzIiAxNCcD7TYJECBAgAABAgQIECBAgAABAgQIECBAgAABAhJDngECBAgQIECAAAECBAgQIECAAAECBAgQIECAwJwISAzNyUC7TQIECBAgQIAAAQIECBAgQIAAAQIECBAgQICAxJBngAABAgQIECBAgAABAgQIECBAgAABAgQIECAwJwISQ3My0G6TAAECBAgQIECAAAECBAgQIECAAAECBAgQICAx5BkgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECMyJgMTQnAy02yRAgAABAgQIECBAgAABAgQIECBAgAABAgQISAx5BggQIECAAAECBAgQIECAAAECBAgQIECAAAECcyIgMTQnA+02CRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQISQ54BAgQIECBAgAABAgQIECBAgAABAgQIECBAgMCcCEgMzclAu00CBAgQIECAAAECBAgQIECAAAECBAgQIECAgMSQZ4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgMCcCEkNzMtBukwABAgQIECBAgAABAgQIECBAgAABAgQIECAgMeQZIECAAAECBAgQIECAAAECBAgQIECAAAECBAjMiYDE0JwMtNskQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECEgMeQYIECBAgAABAgQIECBAgAABAgQIECBAgAABAnMiIDE0JwPtNgkQIECAAAECBAgQIECAAAECBAgQIECAAAECEkOeAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIDAnAhIDM3JQLtNAgQIECBAgAABAgQIECBAgAABAgQIECBAgIDEkGeAAAECBAgQIECAAAECBAgQIECAAAECBAgQIDAnAhJDczLQbpMAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgIDHkGSBAgAABAgQIECBAgAABAgQIECBAgAABAgQIzImAxNCcDLTbJECAAAECBAgQIECAAAECBAgQIECAAAECBAhIDHkGCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJzIiAxNCcD7TYJECBAgAABAgQIECBAgAABAgQIECBAgAABAhJDngECBAgQIECAAAECBAgQIECAAAECBAgQIECAwJwISAzNyUC7TQIECBAgQIAAAQIECBAgQIAAAQIECBAgQICAxJBngAABAgQIECBAgAABAgQIECBAgAABAgQIECAwJwISQ3My0G6TAAECBAgQIECAAAECBAgQIECAAAECBAgQICAx5BkgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECMyJgMTQnAy02yRAgAABAgQIECBAgAABAgQIECBAgAABAgQISAx5BggQIECAAAECBAgQIECAAAECBAgQIECAAAECcyIgMTQnA+02CRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQISQ54BAgQIECBAgAABAgQIECBAgAABAgQIECBAgMCcCEgMzclAu00CBAgQIECAAAECBAgQIECAAAECBAgQIECAgMSQZ4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgMCcCEkNzMtBukwABAgQIECBAgAABAgQIECBAgAABAgQIECAgMeQZIECAAAECBAgQIECAAAECBAgQIECAAAECBAjMiYDE0JwMtNskQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECEgMeQYIECBAgAABAgQIECBAgAABAgQIECBAgAABAnMiIDE0JwPtNgkQIECAAAECBAgQIECAAAECBAgQIECAAAECEkOeAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIDAnAhIDM3JQLtNAgQIECBAgAABAgQIECBAgAABAgQIECBAgIDEkGeAAAECBAgQIECAAAECBAgQIECAAAECBAgQIDAnAhJDczLQbpMAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgIDHkGSBAgAABAgQIECBAgAABAgQIECBAgAABAgQIzImAxNCcDLTbJECAAAECBAgQIECAAAECBAgQIECAAAECBAhIDHkGCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJzIiAxNCcD7TYJECBAgAABAgQIECBAgAABAgQIECBAgAABAhJDngECBAgQIECAAAECBAgQIECAAAECBAgQIECAwJwISAzNyUC7TQIECBAgQIAAAQIECBAgQIAAAQIECBAgQICAxJBngAABAgQIECBAgAABAgQIECBAgAABAgQIECAwJwISQ3My0G6TAAECBAgQIECAAAECBAgQIECAAAECBAgQICAx5BkgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECMyJgMTQnAy02yRAgAABAgQIECBAgAABAgQIECBAgAABAgQISAx5BggQIECAAAECBAgQIECAAAECBAgQIECAAAECcyIgMTQnA+02CRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQISQ54BAgQIECBAgAABAgQIECBAgAABAgQIECBAgMCcCEgMzclAu00CBAgQIECAAAECBAgQIECAAAECBAgQIECAgMSQZ4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgMCcCEkNzMtBukwABAgQIECBAgAABAgQIECBAgAABAgQIECAgMeQZIECAAAECBAgQIECAAAECBAgQIECAAAECBAjMiYDE0JwMtNskQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECEgMeQYIECBAgAABAgQIECBAgAABAgQIECBAgAABAnMiIDE0JwPtNgkQIECAAAECBAgQIECAAAECBAgQIECAAAECEkOeAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIDAnAhIDM3JQLtNAgQIECBAgAABAgQIECBAgAABAgQIECBAgIDEkGeAAAECBAgQIECAAAECBAgQIECAAAECBAgQIDAnAhJDczLQbpMAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgIDHkGSBAgAABAgQIECBAgAABAgQIECBAgAABAgQIzImAxNCcDLTbJECAAAECBAgQIECAAAECBAgQIECAAAECBAhIDHkGCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJzIiAxNCcD7TYJECBAgAABAgQIECBAgAABAgQIECBAgAABAhJDngECBAgQIECAAAECBAgQIECAAAECBAgQIECAwJwISAzNyUC7TQIECBAgQIAAAQIECBAgQIAAAQIECBAgQICAxJBngAABAgQIECBAgAABAgQIECBAgAABAgQIECAwJwISQ3My0G6TAAECBAgQIECAAAECBAgQIECAAAECBAgQICAx5BkgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECMyJgMTQnAy02yRAgAABAgQIECBAgAABAgQIECBAgAABAgQISAx5BggQIECAAAECBAgQIECAAAECBAgQIECAAAECcyIgMTQnA+02CRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQISQ54BAgQIECBAgAABAgQIECBAgAABAgQIECBAgMCcCEgMzclAu00CBAgQIECAAAECBAgQIECAAAECBAgQIECAgMSQZ4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgMCcCEkNzMtBukwABAgQIECBAgAABAgQIECBAgAABAgQIECAgMeQZIECAAAECBAgQIECAAAECBAgQIECAAAECBAjMiYDE0JwMtNskQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECEgMeQYIECBAgAABAgQIECBAgAABAgQIECBAgAABAnMiIDE0JwPtNgkQIECAAAECBAgQIECAAAECBAgQIECAAAECEkOeAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIDAnAhIDM3JQLtNAgQIECBAgAABAgQIECBAgAABAgQIECBAgIDEkGeAAAECBAgQIECAAAECBAgQIECAAAECBAgQIDAnAhJDczLQbpMAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgIDHkGSBAgAABAgQIECBAgAABAgQIECBAgAABAgQIzImAxNCcDLTbJECAAAECBAgQIECAAAECBAgQIECAAAECBAhIDHkGCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJzIiAxNCcD7TYJECBAgAABAgQIECBAgAABAgQIECBAgAABAhJDngECBAgQIECAAAECBAgQIECAAAECBAgQIECAwJwISAzNyUC7TQIECBAgQIAAAQIECBAgQIAAAQIECBAgQICAxJBngAABAgQIECBAgAABAgQIECBAgAABAgQIECAwJwISQ3My0G6TAAECBAgQIECAAAECBAgQIECAAAECBAgQICAx5BkgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECMyJgMTQnAy02yRAgAABAgQIECBAgAABAgQIECBAgAABAgQISAx5BggQIECAAAECBAgQIECAAAECBAgQIECAAAECcyIgMTQnA+02CRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQISQ54BAgQIECBAgAABAgQIECBAgAABAgQIECBAgMCcCEgMzclAu00CBAgQIECAAAECBAgQIECAAAECBAgQIECAgMSQZ4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgMCcCEkNzMtBukwABAgQIECBAgAABAgQIECBAgAABAgQIECAgMeQZIECAAAECBAgQIECAAAECBAgQIECAAAECBAjMiYDE0JwMtNskQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECEgMeQYIECBAgAABAgQIECBAgAABAgQIECBAgAABAnMiIDE0JwPtNgkQIECAAAECBAgQIECAAAECBAgQIECAAAECEkOeAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIDAnAhIDM3JQLtNAgQIECBAgAABAgQIECBAgAABAgQIECBAgIDEkGeAAAECBAgQIECAAAECBAgQIECAAAECBAgQIDAnAhJDczLQbpMAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgIDHkGSBAgAABAgQIECBAgAABAgQIECBAgAABAgQIzImAxNCcDLTbJECAAAECBAgQIECAAAECBAgQIECAAAECBAhIDHkGCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJzIiAxNCcD7TYJECBAgAABAgQIECBAgAABAgQIECBAgAABAhJDngECBAgQIECAAAECBAgQIECAAAECBAgQIECAwJwISAzNyUC7TQIECBAgQIAAAQIECBAgQIAAAQIECBAgQICAxJBngAABAgQIECBAgAABAgQIECBAgAABAgQIECAwJwISQ3My0G6TAAECBAgQIECAAAECBAgQIECAAAECBAgQICAx5BkgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECMyJgMTQnAy02yRAgAABAgQIECBAgAABAgQIECBAgAABAgQISAx5BggQIECAAAECBAgQIECAAAECBAgQIECAAAECcyIgMTQnA+02CRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQISQ54BAgQIECBAgAABAgQIECBAgAABAgQIECBAgMCcCEgMzclAu83FE1h33XXLQw89VOIPU9l4440X70SOTIAAAQIECBAgQIAAAQIECBAgQIDA1Ajcc8895Y9//GNZZ511yoMPPjg11+1CZ19AYmj2x9gdLrJAJoQEAQIECBAgQIAAAQIECBAgQIAAAQIEOglkgkgQmBQBiaFJGQnXMbUCmfFvvdg32WSTqb0PF06AAAECBAgQIECAAAECBAgQIECAwOgEVqxYsfJg+WF5VhwSBCZFQGJoUkbCdUytwKabblryJZ9Jobvvvntq78OFEyBAgAABAgQIECBAgAABAgQIECAwOgHzhqOzdKTRCkgMjdbT0eZQwAt+DgfdLRMgQIAAAQIECBAgQIAAAQIECBDoIWDe0CMyqQISQ5M6Mq5ragS84KdmqFwoAQIECBAgQIAAAQIECBAgQIAAgSUTMG+4ZNRO1KeAxFCfYDYnUBXwgvdMECBAgAABAgQIECBAgAABAgQIECBg3tAzMC0CEkPTMlKuc2IFJIYmdmhcGAECBAgQIECAAAECBAgQIECAAIGxCZg3HBu9E/cQkBjyiBAYUsALfkhA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X5R2IkCAAAECBAgQIECAAAECBAgQINAIAYWhRixjUyehMNTUlZ3MvOIum/3226+zSxSFRr/nZ6JY0e64447r/Djv3Tpx19GSJUuyeFEQiqJPL1u0HXnf0SDuXOqlz9Ft2loYeuSZlL5y3/pae85M6bDdJ6uoPQECBAgQIECAAAECBAgQIECAAIHmCCgMNWctGzgThaEGLuqkpzT2/UJ33HFHOvDAA7vGiXYHHXRQp911112X5s2b13W/iRqMfr/QIYcckm699daeYkXb2267LWs7e/bstHTp0p72G1SjthaGfvXyDWbX3r2+4qGzU3rd/xuUrjgECBAgQIAAAQIECBAgQIAAAQIE6iegMFS/NWvRiBWGWrTYE071/PPPT+ecc07n5w8//PA6j2ebaMd4D9GsWbM6P4448+fP75t02rRpac2aNdn+H/jABzqPqesW8Nhjj03XXHNN1mzq1Kkp3n+Ud4tf3L1ur3zlK9OKFSvS9OnT03PPPdfrbo1o98UfpvTEit9MZcpGLz+K8OWbzzbfuBHTMwkCBAgQIECAAAECBAgQIECAAAECfQkoDPXFZqdyBBSGynEe7l5OP/30dOmll3YG+cwzz6QZM2Z0HXS0i3cTjWxnnHFGuvjii7vuN16DlStXZoWVke3UU09NH//4x3uKFW3/4R/+odP2+eefT5tvvnlP+47X6MILL0x/93d/1/P+URSKrY2FoadfSOmrP0nply//7+bTUnr7binttk3PdBoSIECAAAECBAgQIECAAAECBAgQaKSAwlAjl7Upk1IYaspK5pnHiSeemC6//PJOiFWrVqVNNtmka8hot9lmm3XaRZyFCxd23W+8Bk888UTaYYcdOj8688wzUxRoetmi7UUXXdRpGrG22267XnYdt82CBQvSueeeO+n921gYGkF6YXVKm71cGNro5TuGbAQIECBAgAABAgQIECBAgAABAgTaLqAw1PYjYKjnrzA01MtT0uCOO+64tHjx4k5v8Ti3KVOmdO197dq12aPbRraIc+WVV3bdb7wGjz76aHrNa17T+dHZZ5+dzjvvvJ5iRdsLLrig0zZivfrVr+5p3/EaRUFqdKGpW6CRx8e1uTDUzcjPCRAgQIAAAQIECBAgQIAAAQIECLRJQGGoTatdu7kqDNVuyQoY8CmnnJI+8YlPdCLHY9222GKLrj2NffxbxLnsssu67jdeg6effjpts81vnkEWj7f72Mc+1lOssY/Ci1hbbbVVT/sOotGWW27Z2ncMDcJPDAIECBAgQIAAAQIECBAgQIAAAQJNE1AYatqKNmo+CkONWs4+J3PWWWet89i2J598Ms2cObNrtGg3+pFt8+fPT+eff37X/cZr8NJLL6WNN96486OTTz45/eM//mNPsaLt6EfYrV69Ok2b9vJzzUraFIZKgtYNAQIECBAgQIAAAQIECBAgQIAAgZoIKAzVZKHaOUyFoXau+7qzjrt8TjvttM4//uAHP0h77bVXV5pot/fee3faRZy4a6jfLe7yefbZZ7PdjzrqqPTlL3+5p1DR9l/+5V+ythEj7hgqc1MYKlNbXwQIECBAgAABAgQIECBAgAABAgSGX0BhaPjXqMUjVBhq8eJ3pn7zzTenI444ovPfS5YsSUceeWRXmmg3d+7cTrtbbrklHXbYYV33m6jB2972tvTtb387+/F+++2XvvOd7/QUK9refffdWdv9998/3XnnnT3tN6hGCkODkhSHAAECBAgQIECAAAECBAgQIECAQDMEFIaasY4NnYXCUEMXdlLT+vnPf55e+9rXdvY599xz0znnnNM1RrRbsGBBp13E2WmnnbruN1GDD33oQ+mqq67KfrzZZptldw9tsskmG4y3atWq7C6hF198MWsXMRYtWtT3GPrZUWGoHzX7ECBAgAABAgQIECBAgAABAgQIEGiugMJQc9e2ATNTGGrAIg5kCrNnz04//elPs1iHHHJIuvXWW7vGjXa33XZb1i72X7p0add9NtTgs5/9bHr/+9/faXLHHXekAw88cIMxo81BBx3UaXPdddelefPm5RrHZHdWGJqsmPYECBAgQIAAAQIECBAgQIAAAQIEmi2gMNTs9a357BSGar6AAxv+GWeckS655JIs3pQpU9JDDz2Udt555wnjL1u2LO26665p7dq1WZvY/+KLL841nmeeeSZtt912afXq1Vmc4447Ll155ZUbjBltFi9enLWJu4t+8YtfpBkzZuQax2R3VhiarJj2BAgQIECAAAECBAgQIECAAAECBJotoDDU7PWt+ewUhmq+gAMb/n333Zf22muvtGbNmixmt6LM6ILM1KlT0w9/+MP0+te/ftzxxC/B0dtGG2004bjjbp/Pf/7z2c8333zz9L3vfS/tscce47Z/4IEH0hvf+Mb0wgsvZD+PfeOOobI3haGyxfVHgAABAgQIECBAgAABAgQIECBAYLgFFIaGe31aPjqFoZYfAOtMf3SxJ37w6U9/Oh1//PFpdCEnfqFdccUV6YQTTujsu6H3+jz88MNpl1126bQ95phj0jXXXDMhe9ypFAWmX//611mbffbZJ33ta19L22+//Tr7PPHEE+mII45I99xzT/bvm266abr33nuzu5jK3hSGyhbXHwECBAgQIECAAAECBAgQIECAAIHhFlAYGu71afnoFIZafgCsM/3ly5en/fffPz344IOdf58zZ046+uij04477pgee+yxdMMNN6QlS5Z0fr777runO++8M82cOXNcyskWhiLIZZddlk477bROvB122CGddNJJ6c1vfnOKX6jf+c530sKFC9Pjjz/eaRP7nHLKKZUsp8JQJew6JUCAAAECBAgQIECAAAECBAgQIDC0AgpDQ7s0BpaSwpCjYF2BpUuXpsMPPzx7x1C3Le7OueWWW9Ls2bMnbNpPYSiCnX322enCCy/svMNoog7ifUhnnXVWOu+887oNt7CfKwwVRiswAQIECBAgQIAAAQIECBAgQIAAgVoKKAzVctnaMmiFobas9GTmuWLFijR//vx07bXXpmeffXa9Xd2Hw8cAACAASURBVGfMmJHikXAXXHBBmj59+gZDR2Fo9OPdYr+rr766p+Hceuut6cwzz8zuEBpve9Ob3pQuuuiidMghh/QUr6hGCkNFyYpLgAABAgQIECBAgAABAgQIECBAoJ4CCkP1XLeWjFphqCUL3dc0X3zxxXT77benKO489dRTadttt02zZs1KBx98cPZOn7K2uIvprrvuyh5lF+87etWrXpU9Vi4eYzcMm8LQMKyCMRAgQIAAAQIECBAgQIAAAQIECBAYHgGFoeFZCyNZT0BhyEFBIK+AwlBeQfsTIECAAAECBAgQIECAAAECBAgQaJaAwlCz1rNhs1EYatiCmk4FAgpDFaDrkgABAgQIECBAgAABAgQIECBAgMAQCygMDfHiGJrCkGOAQF4BhaG8gvYnQIAAAQIECBAgQIAAAQIECBAg0CwBhaFmrWfDZqMw1LAFNZ0KBBSGKkDXJQECBAgQIECAAAECBAgQIECAAIEhFlAYGuLFMTSFIccAgbwCCkN5Be1PgAABAgQIECBAgAABAgQIECBAoFkCCkPNWs+GzUZhqGELajoVCCgMVYCuSwIECBAgQIAAAQIECBAgQIAAAQJDLKAwNMSLY2gKQ44BAnkFFIbyCtqfAAECBAgQIECAAAECBAgQIECAQLMEFIaatZ4Nm43CUMMW1HQqEFAYqgBdlwQIECBAgAABAgQIECBAgAABAgSGWEBhaIgXx9AUhhwDBPIKKAzlFbQ/AQIECBAgQIAAAQIECBAgQIAAgWYJKAw1az0bNhuFoYYtqOlUIKAwVAG6LgkQIECAAAECBAgQIECAAAECBAgMsYDC0BAvjqEpDDkGCOQVUBjKK2h/AgQIECBAgAABAgQIECBAgAABAs0SUBhq1no2bDYKQw1bUNOpQEBhqAJ0XRIgQIAAAQIECBAgQIAAAQIECBAYYgGFoSFeHENTGHIMEMgroDCUV9D+BAgQIECAAAECBAgQIECAAAECBJoloDDUrPVs2GwUhhq2oKZTgYDCUAXouiRAgAABAgQIECBAgAABAgQIECAwxAIKQ0O8OIamMOQYIJBXQGEor6D9CRAgQIAAAQIECBAgQIAAAQIECDRLQGGoWevZsNkoDDVsQU2nAgGFoQrQdUmAAAECBAgQIECAAAECBAgQIEBgiAUUhoZ4cQxNYcgxQCCvgMJQXkH7EyBAgAABAgQIECBAgAABAgQIEGiWgMJQs9azYbNRGGrYgppOBQIKQxWg65IAAQIECBAgQIAAAQIECBAgQIDAEAsoDA3x4hiawpBjgEBeAYWhvIL2J0CAAAECBAgQIECAAAECBAgQINAsAYWhZq1nw2ajMNSwBTWdCgQUhipA1yUBAgQIECBAgAABAgQIECBAgACBIRZQGBrixTE0hSHHAIG8AgpDeQXtT4AAAQIECBAgQIAAAQIECBAgQKBZAgpDzVrPhs1GYahhC2o6FQgoDFWArksCBAgQIECAAAECBAgQIECAAAECQyygMDTEi2NoCkOOAQJ5BRSG8granwABAgQIECBAgAABAgQIECBAgECzBBSGmrWeDZuNwlDDFtR0KhBQGKoAXZcECBAgQIAAAQIECBAgQIAAAQIEhlhAYWiIF8fQFIYcAwTyCowuDP3qV7/KG87+BAgQIECAAAECBAgQIECAAAECBAjUXCAKQzNmzEgrVqxIcf3QdcOaL2izhq8w1Kz1NJsqBKZMmZLiF31s06dPr2II+iRAgAABAgQIECBAgAABAgQIECBAYMgEoigUW1w/XLNmzZCNznBaLKAw1OLFN/UBCWy00UYDiiQMAQIECBAgQIAAAQIECBAgQIAAAQJNE4jrh2vXrm3atMynvgIKQ/VdOyMfFoFp06Zlv9jjF/wrXvGKYRlWIeN47rnnOnHjFlgbAQLDKSBXh3NdjIrAWAG56pggUB8B+VqftTLSdgvI1Xavv9nXR6BNubpy5crsSUNTp05Nq1evrs8iGWnTBRSGmr7C5kdgkAKj36c0+kN8kH2IRYBAfgG5mt9QBAJlCMjVMpT1QWAwAvJ1MI6iEChSwEvei9QVm8DgBOTq4CxFIpBDQGEoB55dCbROwAlx65bchGsqIFdrunCG3ToBudq6JTfhGgvI1xovnqG3RsDF5tYstYnWXECu1nwBDb8pAgpDTVlJ8yBQhoAT4jKU9UEgv4BczW8oAoEyBORqGcr6IDAYAfk6GEdRCBQp4GJzkbpiExicgFwdnKVIBHIIKAzlwLMrgdYJOCFu3ZKbcE0F5GpNF86wWycgV1u35CZcYwH5WuPFM/TWCLjY3JqlNtGaC8jVmi+g4TdFQGGoKStpHgTKEHBCXIayPgjkF5Cr+Q1FIFCGgFwtQ1kfBAYjIF8H4ygKgSIFXGwuUldsAoMTkKuDsxSJQA4BhaEceHYl0DoBJ8StW3ITrqmAXK3pwhl26wTkauuW3IRrLCBfa7x4ht4aARebW7PUJlpzAbla8wU0/KYIKAw1ZSXNg0AZAk6Iy1DWB4H8AnI1v6EIBMoQkKtlKOuDwGAE5OtgHEUhUKSAi81F6opNYHACcnVwliIRyCGgMJQDz64EWifghLh1S27CNRWQqzVdOMNunYBcbd2Sm3CNBeRrjRfP0Fsj4GJza5baRGsuIFdrvoCG3xQBhaGmrKR5EChDwAlxGcr6IJBfQK7mNxSBQBkCcrUMZX0QGIyAfB2MoygEihRwsblIXbEJDE5Arg7OUiQCOQQUhnLg2ZVA6wScELduyU24pgJytaYLZ9itE5CrrVtyE66xgHyt8eIZemsEXGxuzVKbaM0F5GrNF9DwmyKgMNSUlTQPAmUIOCEuQ1kfBPILyNX8hiIQKENArpahrA8CgxGQr4NxFIVAkQIjF5tXrlyZpk+fnn71q18V2Z3YBAj0KSBX+4SzG4HBCigMDdZTNALNFrjwwgvT6tWr08Ybb5w+8pGPNHuyZkegxgJytcaLZ+itEpCrrVpuk625gHyt+QIafmsERnJ1k002SWeeeWZr5m2iBOomIFfrtmLG20ABhaEGLqopESBAgAABAgQIECBAgAABAgQIECBAgAABAgTGE1AYclwQIECAAAECBAgQIECAAAECBAgQIECAAAECBFoioDDUkoU2TQIECBAgQIAAAQIECBAgQIAAAQIECBAgQICAwpBjgAABAgQIECBAgAABAgQIECBAgAABAgQIECDQEgGFoZYstGkSIECAAAECBAgQIECAAAECBAgQIECAAAECBBSGHAMECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgZYIKAy1ZKFNkwABAgQIECBAgAABAgQIECBAgAABAgQIECCgMOQYIECAAAECBAgQIECAAAECBAgQIECAAAECBAi0REBhqCULbZoECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAYUhxwABAgQIECBAgAABAgQIECBAgAABAgQIECBAoCUCCkMtWWjTJECAAAECBAgQIECAAAECBAgQIECAAAECBAgoDDkGCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQItEVAYaslCmyaBXAL/+7//u97+G220Ua6YdibQFoHx8qeXufeTY0XmapGxe/HQhkBegYlysZ9cG28sReZIXWPnXTP7t1dgkPla5udwrJh8be9x27aZd8utQXy+1jWfihx3244z880vMOhc7RZvohH3+zuhyHwqMnb+lROBQOECCkOFE+uAQI0FHn300XTdddelJUuWpIcffjgtX748zZw5M82aNSvNmTMnve9970s77bRTjWdo6ASKFYi82WWXXSbdyfbbb58ef/zxnvcrMleLjN3zBDUk0IdAnOg999xz6Xvf+1767ne/m+65557sf3/yk5+kNWvWZBF33nnn7PMtz1ZkjtQ1dh5P+7ZToKh8LetzOFZNvrbz2G3brCNXV61alb75zW+mb3zjG9ln67333puefPLJ7N9nzJiRnR++9a1vTe9+97vToYcemqZMmTIppujjv//7vyc8D507d26aN29eX+ehdY09KUCNCbwsUFSu/uxnP0u77rrrpI132GGH9D//8z897ydXe6bSkEAeAYWhPHr2JdBkgU996lPp9NNPTytXrpxwmtOnT0+XXHJJOuGEE5pMYW4E+hYo44JUkblaZOy+Ue1IoEeBPffcMy1dunTcb++PhMhbGCoyR+oau8fl0YzAOgJF5WsZn8MxEfnqgG6DQHxp6bTTTks33XRT9sWLXrY3vOENadGiReltb3tbL82zz+zLL7+8p/PQSy+9NP35n/95T3GjUV1j9zxBDQn8/wJF5moZhSG56lAmUJqAwlBp1DoiUCOBc889Ny1YsKAz4rjld/bs2enVr3519u2tBx98cJ0Lbeedd146++yzazRDQyVQjsDYC1IHHXRQ2nzzzbt2vs0226TPfe5zXdsVmatFxu46MQ0IDEBgvMdVxL+NfmREnsJQkTlS19gDWDYhWipQVL4W/TkcyyVfW3rQtnDad911V3rLW96yzjli/MerXvWq7O6dLbfcMrvj/f777+/cmRs/33jjjdP111+fjjrqqA2qxedznFf2eh4avzei/fz587uuRl1jd52YBgTGESgyV8cWhgZ9fitXHdIEShVQGCqVW2cEaiDwla98Jb3rXe/qjDS+5XXttdem/fbbr/Nv8SieY445Jv34xz/u/Nu//uu/pne+8501mKEhEihPYOwFqfhDOh7FOIityFwtMvYg5i4GgV4ERh5d84pXvCLtvffead99983+74Ybbkg333xzFqLfwlCROVLX2L2siTYEJhIoKl+L/ByOuchXx3SbBEYuNkdBJh4V94EPfCC94x3vWO9v2ygO/e3f/m1auHBhWrt2bUa06aabpu9///sp7g6caOsnn2IscR4aj5fb0FbX2G06vsx1cAJF5urowlDk30MPPTSw89t+P1eH4ffA4FZPJAKlCigMlcqtMwJDLrB69er0W7/1W9kdQbG95jWvyd7NEHcvjN1++ctfZhfa4nnqse2+++7Z86WnTZs25LM0PALlCRR1QarIXC0ydnnyeiKQsrvuohAUF6FGv98gLmTFFx5i66cwVGSO1DW2441AXoGi8rWoz+GYr3zNu+r2r5vA3Xffnc4///zsSRHx+dpt++QnP5k+/OEPd5q95z3vSV/60pfG3e3Xv/51ii8k9nIe+tRTT2XnofEki9j22GOP7AuLE52H1jV2N18/JzCRQJG5WmRhSK46pgmULqAwVDq5DgkMscBnP/vZ9P73v78zwi9+8YvpD//wDycccfz86KOP7vw89n/f+943xDM0NALlChR1QarIXC0ydrn6eiMwvkDewlCROVLX2I41AkUJ5M3X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JsmpOYGqBBSGqpLXLwECBAgQIECAAAECBAgQIECAAAECBAgQIECgZAGFoZLBdUeAAAECBAgQIECAAAECBAgQIECAAAECBAgQqEpAYagqef0SIECAAAECBAgQIECAAAECBAgQIECAAAECBEoWUBgqGVx3BAgQIECAAAECBAgQIECAAAECBAgQIECAAIGqBBSGqpLXLwECBAgQIECAAAECBAgQIECAAAECBAgQIECgZAGFoZLBdUeAAAECBAgQIECAAAECBAgQIECAAAECBAgQqEpAYagqef0SIECAAAECBAgQIECAAAECBAgQIECAAAECBEoWUBgqGVx3BAgQIECAAAECBAgQIECAAAECBAgQIECAAIGqBBSGqpLXLwECBAgQIECAAAECBAgQIECAAAECBAgQIECgZAGFoZLBdUeAAAECBAgQIECAAAECBAgQIECAAAECBAgQqEpAYagqef0SIECAAAECBAgQIECAAAECBAgQIECAAAECBEoWUBgqGVx3BAgQIECAAAECBAgQIECAAAECBAgQIECAAIGqBBSGqpLXLwECBAgQIECAAAECBAgQIECAAAECBAgQIECgZAGFoZLBdUeAAAECBAgQIECAAAECBAgQIECAAAECBAgQqEpAYagqef0SIECAAAECBAgQIECAAAECBAgQIECAAAECBEoWUBgqGVx3BAgQIECAAAECBAgQIECAAAECBAgQIECAAIGqBBSGqpLXLwECBAgQIECAAAECBAgQIECAAAECBAgQIECgZAGFoZLBdUeAAAECBAgQIECAAAECBAgQIECAAAECBAgQqEpAYagqef0SIECAAAECBAgQIECAAAECBAgQIECAAAECBEoWUBgqGVx3BAgQIECAAAECBAgQIECAAAECBAgQIECAAIGqBBSGqpLXLwECBAgQIECAAAECBAgQIECAAAECBAgQIECgZAGFoZLBdUeAAAECBAgQIECAAAECBAgQIECAAAECBAgQqEpAYagqef0SIECAAAECBAgQIECAAAECBAgQIECAAAECBEoWUBgqGVx3BAgQIECAAAECBAgQIECAAAECBAgQIECAAIGqBBSGqpLXLwECBAgQIECAAAECBAgQIECAAAECBAgQIECgZAGFoZLBdUeAAAECBAgQIECAAAECBAgQIECAAAECBAgQqEpAYagqef0SIECAAAECBAgQIECAAAECBAgQIECAAAECBEoWUBgqGVx3BAgQIECAAAECBAgQIECAAAECBAgQIECAAIGqBBSGqpLXLwECBAgQIECAAAECBAgQIECAAAECBAgQIECgZAGFoZLBdUeAAAECBAgQIECAAAECBAgQIECAAAECBAgQqEpAYagqef0SIECAAAECBAgQIECAAAECBAgQIECAAAECBEoWUBgqGVx3BAgQIECAAAECBAgQIECAAAECBAgQIECAAIGqBBSGqpLXLwECBAgQIECAAAECBAgQIECAAAECBAgQIECgZAGFoZLBdUeAAAECBAgQIECAAAECBAgQIECAAAECBAgQqEpAYagqef0SIECAAAECBAgQIECAAAECBAgQIECAAAECBEoWUBgqGVx3BAgQIECAAAECBAgQIECAAAECBAgQIECAAIGqBBSGqpLXLwECBAgQIECAAAECBAgQIECAAAECBAgQIECgZAGFoZLBdUeAAAECBAgQIECAAAECBAgQIECAAAECBAgQqEpAYagqef0SIECAAAECBAgQIECAAAECBAgQIECAAAECBEoWUBgqGVx3BAgQIECAAAECBAgQIECAAAECBAgQIECAAIGqBBSGqpLXLwECBAgQIECAAAECBAgQIECAAAECBAgQIECgZAGFoZLBdUeAAAECBAgQIECAAAECBAgQIECAAAECBAgQqEpAYagqef0SIECAAAECBAgQIECAAAECBAgQIECAAAECBEoWUBgqGVx3BAgQIECAAAECBAgQIECAAAECBAgQIECAAIGqBBSGqpLXLwECBAgQIECAAAECBAgQIECAAAECBAgQIECgZAGFoZLBdUeAAAECBAgQIECAAAECBAgQIECAAAECBAgQqEpAYagqef0SIECAAAECBAgQIECAAAECBAgQIECAAAECBEoWUBgqGVx3BAgQIECAAAECBAgQIECAAAECBAgQIECAAIGqBBSGqpLXLwECBAgQIECAAAECBAgQIECAAAECBAgQIECgZAGFoZLBdUeAAAECBAgQIECAAAECBAgQIECAAAECBAgQqEpAYagqef0SIECAAAECBAgQIECAAAECBAgQIECAAAECBEoWUBgqGVx3BAgQIECAAAECBAgQIECAAAECBAgQIECAAIGqBBSGqpLXLwECBAgQIECAAAECBAgQIECAAAECBAgQIECgZAGFoZLBdUeAAAECBAgQIECAAAECBAgQIECAAAECBAgQqEpAYagqef0SIECAAAECBAgQIECAAAECBAgQIECAAAECBEoWUBgqGVx3BAgQIECAAAECBAgQIECAAAECBAgQIECAAIGqBBSGqpLXLwECBAgQIECAAAECBAgQIECAAAECBAgQIECgZAGFoZLBdUeAAAECBAgQIECAAAECBAgQIECAAAECBAgQqEpAYagqef0SIECAAAECBAgQIECAAAECBAgQIECAAAECBEoWUBgqGVx3BAgQIECAAAECBAgQIECAAAECBAgQIECAAIGqBBSGqpLXLwECBAgQIECAAAECBAgQIECAAAECBAgQIECgZAGFoZLBdUeAAAECBAgQIECAAAECBAgQIECAAAECBAgQqEpAYagqef0SIECAAAECBAgQIECAAAECBAgQIECAAAECBEoWUBgqGVx3BAgQIECAAAECBAgQIECAAAECBAgQIECAAIGqBBSGqpLXLwECBAgQIECAAAECBAgQIECAAAECBAgQIECgZAGFoZLBdUeAAAECBAgQIECAAAECBAgQIECAAAECBAgQqEpAYagqef0SIECAAAECBAgQIECAAAECBAgQIECAAAECBEoWUBgqGVx3BAgQIECAAAECBAgQIECAAAECBAgQIECAAIGqBBSGqpLXLwECBAgQIECAAAECBAgQIECAAAECBAgQIECgZAGFoZLBdUeAAAECBAgQIECAAAECBAgQIECAAAECBAgQqEpAYagqef0SIECAAAECBAgQIECAAAECBAgQIECAAAECBEoWUBgqGVx3BAgQIECAAAECBAgQIECAAAECBAgQIECAAIGqBBSGqpLXLwECBAgQIECAAAECBAgQIECAAAECBAgQIECgZAGFoZLBdUeAAAECBAgQIECAAAECBAgQIECAAAECBAgQqEpAYagqef0SIECAAAECBAgQIECAAAECBAgQIECAAAECBEoWUBgqGVx3BAgQIECAAAECBAgQIECAAAECBAgQIECAAIGqBBSGqpLXLwECBAgQIECAAAECBAgQIECAAAECBAgQIECgZAGFoZLBdUeAAAECBAgQIECAAAECBAgQIECAAAECBAgQqEpAYagqef0SIECAAAECBAgQIECAAAECBAgQIECAAAECBEoWUBgqGVx3BAgQIECAAAECBAgQIECAAAECBAgQIECAAIGqBBSGqpLXLwECBAgQIECAAAECBAgQIECAAAECBAgQIECgZAGFoZLBdUeAAAECBAgQIECAAAECBAgQIECAAAECBAgQqEpAYagqef0SIECAAAECBAgQIECAAAECBAgQIECAAAECBEoW6BSG1pbcse4IECBAgAABAgQIECBAgAABAgQIECBAgAABAgRKFthoo42m/H8e+etUeDuvZwAAAABJRU5ErkJggg==\" width=\"640.1666666666666\">"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#order=np.zeros(iterations)\n",
    "#for i in np.arange(iterations):\n",
    "#    for j in np.arange(N):\n",
    "#        order=order+np.sin(orient[i,j])**2+np.cos(orient[i,j])**2\n",
    "#order=np.sqrt(order)/N\n",
    "order=np.sqrt(np.sum(np.cos(orient),axis=1)**2+np.sum(np.sin(orient),axis=1)**2)/N\n",
    "#print(order.shape)\n",
    "plt.figure()\n",
    "plt.plot(order)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2b8ffe45",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-09-02T14:43:17.811564Z",
     "start_time": "2022-09-02T14:43:17.795666Z"
    }
   },
   "source": [
    "# Question 1\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4194b85f",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-09-02T15:27:43.217251Z",
     "start_time": "2022-09-02T15:27:43.178239Z"
    }
   },
   "source": [
    "1a. Implement calculation of orientation order parameter \n",
    "$$\\psi(t) = \\frac{1}{N}|\\sum \\frac{\\boldsymbol{v}_i(t)}{v}|$$\n",
    "\n",
    "1b. Create a phase diagram of order parameter as a function of $N$ and $\\eta$ (***long**)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "96c1c8e5",
   "metadata": {},
   "source": [
    "# Question 2"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f6fb433c",
   "metadata": {},
   "source": [
    "2. Is order parameter sufficient to find emerging patterns? Is it able to find clusters? Write a code that can determine presence of clusters.\n",
    "\n",
    "Is it possible to have two clusters that do not merge?"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1ff624d2",
   "metadata": {},
   "source": [
    "# Question 3"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8ca6287b",
   "metadata": {},
   "source": [
    "3. How does the transition from random to ordered motion happen? what is the nature of this transition?"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4cd2ade3",
   "metadata": {},
   "source": [
    "# Question 4"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d8ec8d84",
   "metadata": {},
   "source": [
    "You could make your own variation of vicsek model\n",
    "* Confinement\n",
    "* Steric interaction between particles (finite size particles, adhesion, repulsion)\n",
    "* Memory\n",
    "* Noise type: Gaussian, uniform\n",
    "* Distance based alignment (weighted average where closer particles have larger influence)\n",
    "* Birth and death\n",
    "* varying velocity\n",
    "* Multispecies\n",
    "* Auxilary fields like wind, chemical gradients)\n",
    "\n",
    "\n",
    "\n",
    "4. Cook up your own variation of vicsek model. \n",
    "* Is it inspired by any real world system?\n",
    "* How does it differ from the Vicsek model? What are its properties?"
   ]
  }
 ],
 "metadata": {
  "hide_input": false,
  "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.12.2"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": true,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  },
  "varInspector": {
   "cols": {
    "lenName": 16,
    "lenType": 16,
    "lenVar": 40
   },
   "kernels_config": {
    "python": {
     "delete_cmd_postfix": "",
     "delete_cmd_prefix": "del ",
     "library": "var_list.py",
     "varRefreshCmd": "print(var_dic_list())"
    },
    "r": {
     "delete_cmd_postfix": ") ",
     "delete_cmd_prefix": "rm(",
     "library": "var_list.r",
     "varRefreshCmd": "cat(var_dic_list()) "
    }
   },
   "types_to_exclude": [
    "module",
    "function",
    "builtin_function_or_method",
    "instance",
    "_Feature"
   ],
   "window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
