{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "75a7336a",
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib notebook\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import seaborn as sns\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "\n",
    "#np.set_printoptions(precision=2)\n",
    "\n",
    "\n",
    "fruits = pd.read_table('Source/readonly/fruit_data_with_colors.txt')\n",
    "\n",
    "feature_names_fruits = ['height', 'width', 'mass', 'color_score']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "8615abad",
   "metadata": {},
   "outputs": [],
   "source": [
    "features= fruits[feature_names_fruits]\n",
    "label= fruits.fruit_label"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "9acc60c5",
   "metadata": {},
   "outputs": [],
   "source": [
    "target_names_fruits = ['apple', 'mandarin', 'orange', 'lemon']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "2dbdcb8c",
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train, X_test, y_train, y_test = train_test_split(features, label, random_state=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "9f3b8682",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.preprocessing import MinMaxScaler\n",
    "scaler = MinMaxScaler()\n",
    "X_train_scaled = scaler.fit_transform(X_train)\n",
    "X_test_scaled = scaler.transform(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "5a9dce41",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train 0.9545454545454546\n",
      "test 1.0\n",
      "orange\n"
     ]
    }
   ],
   "source": [
    "knn = KNeighborsClassifier(n_neighbors = 5)\n",
    "knn.fit(X_train_scaled, y_train)\n",
    "\n",
    "\n",
    "print('train',knn.score(X_train_scaled, y_train))\n",
    "print('test',knn.score(X_test_scaled, y_test))\n",
    "\n",
    "example_fruit = [[5.5, 2.2, 10, 0.70]]\n",
    "\n",
    "\n",
    "print(target_names_fruits[knn.predict(example_fruit)[0]-1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0f905335",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6f688553",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "24fd6553",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "d8e0d391",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.datasets import make_classification, make_blobs\n",
    "from matplotlib.colors import ListedColormap\n",
    "from sklearn.datasets import load_breast_cancer\n",
    "from adspy_shared_utilities import load_crime_dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "bb170936",
   "metadata": {},
   "outputs": [],
   "source": [
    "cmap_bold = ListedColormap(['#FFFF00', '#00FF00', '#0000FF','#000000'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "520aaa3b",
   "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_dpi_ratio', { dpi_ratio: fig.ratio });\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",
       "    // 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",
       "    var cursor = msg['cursor'];\n",
       "    switch (cursor) {\n",
       "        case 0:\n",
       "            cursor = 'pointer';\n",
       "            break;\n",
       "        case 1:\n",
       "            cursor = 'default';\n",
       "            break;\n",
       "        case 2:\n",
       "            cursor = 'crosshair';\n",
       "            break;\n",
       "        case 3:\n",
       "            cursor = 'move';\n",
       "            break;\n",
       "    }\n",
       "    fig.rubberband_canvas.style.cursor = 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",
       "            /* 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",
       "            evt.data.type = 'image/png';\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",
       "                evt.data\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 http://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",
       " * http://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.which === this._key) {\n",
       "            return;\n",
       "        } else {\n",
       "            this._key = event.which;\n",
       "        }\n",
       "    }\n",
       "    if (name === 'key_release') {\n",
       "        this._key = null;\n",
       "    }\n",
       "\n",
       "    var value = '';\n",
       "    if (event.ctrlKey && event.which !== 17) {\n",
       "        value += 'ctrl+';\n",
       "    }\n",
       "    if (event.altKey && event.which !== 18) {\n",
       "        value += 'alt+';\n",
       "    }\n",
       "    if (event.shiftKey && event.which !== 16) {\n",
       "        value += 'shift+';\n",
       "    }\n",
       "\n",
       "    value += 'k';\n",
       "    value += event.which.toString();\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, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
       "\n",
       "mpl.extensions = [\"eps\", \"jpeg\", \"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.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",
       "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
       "        ws.onmessage(msg['content']['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",
       "    var manager = IPython.notebook.keyboard_manager;\n",
       "    if (!manager) {\n",
       "        manager = IPython.keyboard_manager;\n",
       "    }\n",
       "\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,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAgAElEQVR4XuydCZhVxZn+vxYV2ZsGmiV0h0VoFGUx0MZgWCQIiTruIJlxQQcIyWSisrQx8080oxgWNTOOCLiA0REXXDKgkTiBhggzadRAOxpaaVQaAVkaEGQT5P+8B+p6OH2WOrfOvffcvu95Hp9E+1Sdql9959R7v6rvq7xjx44dE14kQAIkQAIkQAIkQAI5QyCPAjBnxpodJQESIAESIAESIAGLAAUgDYEESIAESIAESIAEcowABWCODTi7SwIkQAIkQAIkQAIUgLQBEiABEiABEiABEsgxAhSAOTbg7C4JkAAJkAAJkAAJUADSBkiABEiABEiABEggxwhQAObYgLO7JEACJEACJEACJEABSBsgARIgARIgARIggRwjQAGYYwPO7pIACZAACZAACZAABSBtgARIgARIgARIgARyjAAFYI4NOLtLAiRAAiRAAiRAAhSAtAESIAESIAESIAESyDECFIA5NuDsLgmQAAmQAAmQAAlQANIGSIAESIAESIAESCDHCFAA5tiAs7skQAIkQAIkQAIkQAFIGyABEiABEiABEiCBHCNAAZhjA87ukgAJkAAJkAAJkAAFIG2ABEiABEiABEiABHKMAAVgjg04u0sCJEACJEACJEACFIC0ARIgARIgARIgARLIMQIUgDk24OwuCZAACZAACZAACVAA0gZIgARIgARIgARIIMcIUADm2ICzuyRAAiRAAiRAAiRAAUgbIAESIAESIAESIIEcI0ABmGMDzu6SAAmQAAmQAAmQAAUgbYAESIAESIAESIAEcowABWCODTi7SwIkQAIkQAIkQAIUgLQBEiABEiABEiABEsgxAhSAOTbg7C4JkAAJkAAJkAAJUADSBkiABEiABEiABEggxwhQAObYgLO7JEACJEACJEACJEABSBsgARIgARIgARIggRwjQAGYYwPO7pIACZAACZAACZAABSBtgARIgARIgARIgARyjAAFYI4NOLtLAiRAAiRAAiRAAhSAtAESIAESIAESIAESyDECFID1bMD/8pe/yG9+8xt5++235bPPPpP8/Hzp0qWLfOc735H7778/1r296aabpLy8XD7++ONYtzPujevUqZMMHjxY5s+fH/emJt0+2Ejnzp1lxowZMmnSJN96wGHMmDHy0Ucf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gAACCCCAgLMCBEBnu44TRwABBBBAAAEEggkQAIO50QoBBBBAAAEEEHBWgADoWNddf/31sn79etm5c6c0b95crrzySpk0aZJ5mjlbeoEtW7bII488IkuWLJHvvvvOWN1yyy0yevRoqV+/PmxZBCZMmCCLFi0yNadW+r2ZbHUFnn32WZk8ebJ8++23ct5558lTTz0ll112GVQZBJYvX268Pv74Y2P2xhtvSN++ffHKIqBPgnj99dfliy++kIYNG8oll1xifvd37NgRtywC06dPF/3RcUA3fX+OGTNGrrnmmsS7EQAdK4Enn3xSunXrJq1atZIdO3bIgw8+aK5g1apVjl1J4U73nXfekfnz58uAAQOkQ4cO8umnn8pdd90lt956q0yZMqVwJ+LgK40dO1aaNWsm+r3Xs2bNIgCm6UOtLa0lDYHdu3eXGTNmyAsvvCCff/65nHHGGQ72ev5PefHixbJy5Urp0qWL9OvXjwDogbxPnz7Sv39/ueiii+TXX381f8Bu3LjR1FmjRo08HCGZu7z11ltSr14987tftzlz5pg/PtatW2fCYJI3AqDjvb9w4ULzl7M+G+qEE05w/GoKd/r6C0D/Kty8eXPhXtThV5o9e7YMGzaMAJimDy+++GITZLSeUts555xj3pc6a8OWXUC/R50ZQP9V8sMPP8ipp54qH3zwgfTo0cP/ARLcokWLFiYE3nHHHQlWECEAOtz9e/bskXvvvdfMBH744YcOX0nhT/2hhx4SnRlcu3Zt4V/cwVckAKbvtF9++UVOPPFEefXVV+XGG2+s3emBBx4wH5vr4MxGAMxHDXzzzTdy1llnmVnA888/Px8vEbtjHj582LxXBw4caGYAzz333Nhdo58LIgD60YrIviNGjJBnnnlGfvrpJ+natau8/fbb0rJly4icXfRPY9OmTWbGZurUqXLnnXdG/4QjcIYEwPSdUF1dLW3atDEfZ+o9Want0UcfNR81ffnllxHovWifAjOA/vunpqZGbrjhBtm7d6+sWLHC/wES1kJDst469fPPP0vjxo3llVdekWuvvTZhCnUvlwAYgRIYN26cjB8/PuuZrFmzRiorK80+u3btEp3927p1q2nXtGlTEwL1F2mSNr9uaqMD9uWXX25+9D6tJG5B3AiA2QOg3oOrA0xq08UzL730krlhny27AAHQf4UMHTrULM7ST37Ky8v9HyBhLXSmftu2beYWltdee8387tfZeWYA9U8JtqIKaKDTn2xb27ZtpUGDBnV20ZvzKyoqzCKQowegol5QgV7cr5uGv169eones6WBprS0tEBnGq2X8eumZ08ATN+HfARsX9sEQH+G999/v7z55puiK6nbtWvnrzF7GwF9ekb79u3Ngq0kb8wAOt77VVVVZqXh0qVLpWfPno5fTf5OX++T1PB34YUXyssvv2xWhbF5FyAAZrbSPyi0rnQVcGrTmQX9iI5FILlrjACY20j30LkaDX+6YGbZsmXm/j+2YAK9e/c2Eyf6ey3JGwHQod5fvXq16M+ll15qngGoK1j1eUb6HK3PPvtMysrKHLqawp1q6mNfDcpz5849JvydfvrphTsRB19JPzbR2w10tbmumkvdb6SPVNB7adjEPGJIHwPz3HPPmVn4mTNnyvPPP2/ek2eeeSZEaQR+/PFH0UUMunXu3FmeeOIJ8wears7k0TnpS2bIkCHm3rUFCxYc8+w/vQVInwvIll5g1KhR5pl/GvgOHDgg8+bNk4kTJ5pFgFdddVWi2QiADnW/3siqqws3bNggBw8eNM8C1GdD6YpWvRGdLb2A/pV3++23p/1H7oDIXjWDBg0yixmO35hxPlZEZ/8ef/xx88eYrsjU53XyaI7MtaUzWBr4jt90dWbSZ2UyqWW6x/vFF18UfZ+ypRfQR728//775r2pYblTp06iCymTHv5UiwDIuwYBBBBAAAEEEEiYAAEwYR3O5SKAAAIIIIAAAgRAagABBBBAAAEEEEiYAAEwYR3O5SKAAAIIIIAAAgRAagABBBBAAAEEEEiYAAEwYR3O5SKAAAIIIIAAAgRAagABBBBAAAEEEEiYAAEwYR3O5SKAAAIIIIAAAgRAagABBBBAAAEEEEiYAAEwYR3O5SKAAAIIIIAAAgRAagABBBBAAAEEEEiYAAEwYR3O5SKAAAIIIIAAAgRAagABBBBAAAEEEEiYAAEwYR3O5SKAAAIIIIAAAgRAagABBBBAAAEEEEiYAAEwYR3O5SKAAAIIIIAAAgRAagABBBBAAAEEEEiYAAEwYR3O5SKAAAIIIIAAAgRAagABBBBAAAEEEEiYAAEwYR3O5SKAAAIIIIAAAgRAagABBBBAAAEEEEiYAAEwYR3O5SKAAAIIIIAAAgRAagABBBBAAAEEEEiYAAEwYR3O5SKAAAIIIIAAAgRAagABBBBAAAEEEEiYAAEwYR3O5SKAAAIIIIAAAgRAagABBBBAAAEEEEiYAAEwYR3O5SKAAAIIIIAAAgRAagABBBBAAAEEEEiYAAEwYR3O5SKAAAIIIIAAAgRAagABBBBAAAEEEEiYAAEwYR3O5SKAAAIIIIAAAv8FWD7peQ1kiF8AAAAASUVORK5CYII=\" width=\"640\">"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.datasets import make_regression\n",
    "plt.figure()\n",
    "plt.title('Sample regression problem with one input variable')\n",
    "X_R1, y_R1 = make_regression(n_samples = 1000, n_features=1,\n",
    "                            n_informative=1, bias = 150.0,\n",
    "                            noise = 30, random_state=0)\n",
    "plt.scatter(X_R1, y_R1, marker= 'o', s=25)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "82ea4f47",
   "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_dpi_ratio', { dpi_ratio: fig.ratio });\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",
       "    // 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",
       "    var cursor = msg['cursor'];\n",
       "    switch (cursor) {\n",
       "        case 0:\n",
       "            cursor = 'pointer';\n",
       "            break;\n",
       "        case 1:\n",
       "            cursor = 'default';\n",
       "            break;\n",
       "        case 2:\n",
       "            cursor = 'crosshair';\n",
       "            break;\n",
       "        case 3:\n",
       "            cursor = 'move';\n",
       "            break;\n",
       "    }\n",
       "    fig.rubberband_canvas.style.cursor = 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",
       "            /* 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",
       "            evt.data.type = 'image/png';\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",
       "                evt.data\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 http://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",
       " * http://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.which === this._key) {\n",
       "            return;\n",
       "        } else {\n",
       "            this._key = event.which;\n",
       "        }\n",
       "    }\n",
       "    if (name === 'key_release') {\n",
       "        this._key = null;\n",
       "    }\n",
       "\n",
       "    var value = '';\n",
       "    if (event.ctrlKey && event.which !== 17) {\n",
       "        value += 'ctrl+';\n",
       "    }\n",
       "    if (event.altKey && event.which !== 18) {\n",
       "        value += 'alt+';\n",
       "    }\n",
       "    if (event.shiftKey && event.which !== 16) {\n",
       "        value += 'shift+';\n",
       "    }\n",
       "\n",
       "    value += 'k';\n",
       "    value += event.which.toString();\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, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
       "\n",
       "mpl.extensions = [\"eps\", \"jpeg\", \"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.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",
       "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
       "        ws.onmessage(msg['content']['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",
       "    var manager = IPython.notebook.keyboard_manager;\n",
       "    if (!manager) {\n",
       "        manager = IPython.keyboard_manager;\n",
       "    }\n",
       "\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,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAgAElEQVR4Xu2dCdxdRXn/nzcBwhaIsRD2EBDQJG1lKzuIZYm1SgSLtI2AmgCiVPCvUElJgRAQsbhVWUQBwYViIWgtYalCwmYBxQIJKLKILAEUUhAJhbz/z+/Aebm5773vPec+Z5lzzvd8Pnxs887MmfnOM/P85pmZcwcGBwcHjQcCEIAABCAAAQhAoDEEBhCAjelrGgoBCEAAAhCAAAQiAghADAECEIAABCAAAQg0jAACsGEdTnMhAAEIQAACEIAAAhAbgAAEIAABCEAAAg0jgABsWIfTXAhAAAIQgAAEIIAAxAYgAAEIQAACEIBAwwggABvW4TQXAhCAAAQgAAEIIACxAQhAAAIQgAAEINAwAgjAhnU4zYUABCAAAQhAAAIIQGwAAhCAAAQgAAEINIwAArBhHU5zIQABCEAAAhCAAAIQG4AABCAAAQhAAAINI4AAbFiH01wIQAACEIAABCCAAMQGIAABCEAAAhCAQMMIIAAb1uE0FwIQgAAEIAABCCAAsQEIQAACEIAABCDQMAIIwIZ1OM2FAAQgAAEIQAACCEBsAAIQgAAEIAABCDSMAAKwYR1OcyEAAQhAAAIQgAACEBuAAAQgAAEIQAACDSOAAGxYh9NcCEAAAhCAAAQggADEBiAAAQhAAAIQgEDDCCAAG9bhNBcCEIAABCAAAQggALEBCEAAAhCAAAQg0DACCMCGdTjNhQAEIAABCEAAAghAbAACEIAABCAAAQg0jAACsGEdTnMhAAEIQAACEIAAAhAbgAAEIAABCEAAAg0jgABsWIfTXAhAAAIQgAAEIIAAxAYgAAEIQAACEIBAwwggABvW4TQXAhCAAAQgAAEIIACxAQhAAAIQgAAEINAwAgjAhnU4zYUABCAAAQhAAAIIQGwAAhCAAAQgAAEINIwAArBhHU5zIQABCEAAAhCAAAIQG4AABCAAAQhAAAINI4AArHiH/8///I994QtfsBtuuMGeeOIJW2WVVWzrrbe2Qw45xGbOnGnjx48PtoXveMc7orqp7jz5ErjooovsQx/6kD300EO2+eab5/uyEks//PDD7fvf/7698MILPWshDrJBsany0z6OXnzxRfvc5z4XtS3+W9y+k08+2U455RR7+umn7U/+5E+q3Oyo7nF7BgcHg2jL448/bueff75Nnz7d3v72twdRp7gSmmf33ntv+8lPfjLMLnpVNJ4/br/9dtthhx1GTK4xqHc9/PDDvYrl7yUTQACW3AGe13/961+3o48+2rbZZpvofydPnmz/93//Z3fccYfpb3/+539uV155pecVueZFAOaKd6XC5fB//etf27bbbmtjxowp7sUFv6mJAnDx4sURZY1/Pc8884ytt9569s///M+RQGp96iYAf/vb35r+23nnnQu2tM6v09y744472oUXXmiyxZCe//3f/zXZiuxknXXWSVU1BGAqXJVJjACsTFetXNFbb73V9thjD9t3331t/vz5w5z6yy+/bAsWLLD3vve9wbYwFAGo6MFLL71ka6yxRiGsFKFZc801C3lX1V+iBc3AwEAU2U7yNFEAtnNpkgBMYhNFpglRAKYdQ514IQCLtKLi3oUALI51pm96z3veEwm8Bx980DbddNOeZa9YscI+//nP2ze/+c1oG3Dddde1adOm2emnn26bbLLJUH6JMjkQRRD/3//7f/bzn//cJkyYEEUTtIX4ox/9yE466SS77777bMstt7SzzjorKid+4gjDz372M5s7d65df/31kQNXfbVVrchE/HQSgBKu2r669NJLo3pqpfrXf/3X0b/FeT/72c/aiSeeaFdddVVUbvzI+f/bv/2b/fSnP7U//dM/7cpE9fnYxz5mU6dOtS996UtRZOzLX/6yHXXUUfarX/0qaqvqvWzZMttiiy3s4x//eJS+9bn33nvtuOOOs5tuusnWWmstO/jgg+2v/uqvorq2brHEPL/2ta/ZP/7jP9pdd90VifLvfe97phX5qaeeav/+7/9ujz32WNS+v/mbv7F58+ZFZcbP5ZdfHvWdmGsy32CDDaItHPWlHvWt+vGSSy6x3/zmN9FiYLPNNrOPfOQj9olPfCJK020LWGWIwf333x+J0r322isq621ve9tKXLWtqrr/wz/8gy1cuNDe9KY3RW1W2l4RRW21irXqI7a//OUvbaONNrJjjz02Ki9+4i2qb33rW9G7xEjHGhS1eOtb3xq1N2ldZQMq+7bbbova9YEPfCCyoVbh3WkLOGmfxDa0/fbbm+xR3KdMmWL/+q//ajvttFPUX+pzRV7/4i/+ItoWfMtb3tLVJmVPYiT7lQ3oufPOO6PtNkVs9Pf4kf3IXvR3Pa3jSNtukyZNGvae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YJ4pzp6FwbsnoswTwDw7pAjA7FimKgkjToUrk8QwzwRj4kLgnRhVZglhnhnKRAXBOxGmTBPBPDucCMDsWKYqafny5XbGGWfYZz7zGRszZkyqvCTujwDM++PWby5490uu/3ww759dPznh3Q81Xx6Y+/i15kYAZseSkiAAAQhAAAIQgEAlCCAAK9FNVBICEIAABCAAAQhkRwABmB1LSoIABCAAAQhAAAKVIIAArEQ3UUkIQAACEIAABCCQHQEEYHYsKQkCEIAABCAAAQhUggACMMdu+trXvmZnnXWWPfHEEzZlyhT74he/aHvssUfXN9544432yU9+0u69997o6+THH3+8HXXUUTnWsH5Fp2F+xRVX2DnnnGN33XWX6WaZ+ujkk0+2/fffv35gcmpRGt6tVbj55pttr732sqlTp0b8eZITSMtctn3qqafapZdeak8++WT0s1ezZ8+2D3/4w8lf2uCUaXl/+9vfts997nP2q1/9KvqN2WnTptnnP/95e/Ob39xgismavnDhwshn3nnnnZHfvPLKK2369OkjZsZvJmPbKRUCsH92I+a87LLL7IMf/KBp8thtt93svPPOswsuuMAWL15sm2222bC8Dz30UOQMZ82aZUceeaTJQR599NH23e9+1w466KCcalmvYtMyP/bYYyOhvffee9u4cePswgsvjCbqn/70p7btttvWC04OrUnLO67CsmXLbLvttrO3vOUttnTpUgRgir7ph/kBBxwQcT7ttNMi5k899ZS98sortuuuu6Z4czOTpuV90003RQubL3zhC/ae97zHHnvssWgRv9VWW0VihmdkAldffXXk+zQ/yO/1EoD4TZ9FIQB9/Lrm3mmnnSIjVoQpft72trdFqxl9/6/9OeGEE+wHP/iBLVmyZOhPmjh+8Ytf2K233ppTLetVbFrmnVqvKOAHPvABmzNnTr3g5NCafnkfcsghkUMcPXq0zZ8/HwGYom/SMl+wYIGJ94MPPmjjx49P8SaSikBa3lpAas7/9a9/PQTwK1/5ShQR1O++8yQnMDAw0FMA4jeT8+yUEgHo49cx98svv2xrrrmmXX755fa+971vKM0nPvGJyNkpZN3+7LnnnlHU6Utf+tLQn7T6Ofjgg+3FF1+0VVddNYea1qfIfpi3t37FihW2+eabR1vvH//4x+sDJ4eW9MtbUVZFxbWoUUQKAZi8c/phrl2EX/7yl7bDDjvYJZdcYmuttZa9973vtblz59oaa6yR/OUNTNkP71tuuSXaUdDc/a53vSuKtmoO1+L/3HPPbSDF/pucRADiN/vnq5wIQB+/jrkff/xx23jjjaNQdus2y+mnn24XX3yx3X///cPybb311nb44YfbiSeeOPQ3TSbaPlZ5G264YQ41rU+R/TBvb73Onnz2s5+NorDrr79+feDk0JJ+eOtM1O67726LFi0y2bvOWyIAk3dOP8x1/uyGG26wffbZJ4pqP/PMM9HRkne+8532zW9+M/nLG5iyH97C9P3vf98+9KEP2UsvvRRttUtw699YxKczoiQCEL+Zjml7agSgj9+IAlACbpdddhlKM2/evGgVft9993UUgJo09NNw8SMBKYepw7AbbLBBDjWtT5HxZJ2GeWvrddZy5syZdtVVV0XOkmdkAml5v/rqq7bZgjReAAAE9ElEQVTzzjvbRz7ykaGLTQjAdFaWlrlK32+//SLBrcsfupCgR5ef3v/+99sf/vAHooAjdEE/vHXGW/PHcccdF10m09z96U9/2nbccUf7xje+ka7DG546qQDEb/ZvKAjA/tl1zdnP1gGhbF9H9MM8fqMOemsS0Zb9u9/9bl9FGpI7Le/nnnvO3vSmN0Xn/uJHW+6Dg4PRv1177bVRVIqnO4G0zFXSYYcdFu1EPPDAA0MFK8I9efLkaGtYZzF5OhPoh7cu/inyp7kkfnQxRF9/YCcnnaUlEYD4zXRM21MjAH38uubW4eHtt98+Ou8UP5p0dSOv2yWQH/7wh9Et4fj56Ec/Gp0Z5BJIsk5Ky1ylKvKnz2Hof3t9biBZLZqTKg1vib1W2xYljY0f//jH0fbYpEmTovNpPCMTSMNcJZ1//vmm2+46i7b22mtHhSvKfeCBB9oLL7xABLCHwaXlrZurq6yyimlRGT+av3UUSDeC9dUBnmQEkghAXQLBbybj2SkVArB/diPmjD8foIO/2gbWRPz1r389+sbfxIkTo61eTQjf+ta3onLi6+z6BIw+BaNJQ7eA+QxM8g5Ky1xsDz300OjijRxi/OhwfLxdlvztzUuZlnc7IbaA09tMWuYSebqAoO33U045JToDqKMO+lSJ5iOekQmk5X3RRRdF8/eXv/zloS1gCfBRo0ZFn5fiGZmA7DWOVutS5Nlnnx1dqtENdn0+Db+ZrQUhALPluVJpinDo+r/Ogegbf/o2lELWenTh4+GHH44OaMePbgfr7Ej8IWitbvgQdLoOSsP8He94R8cb2do200TO05tAGt4IwN48k6RIy1xnjo855phoK1gfI9atVN3A5hZwEtqvRarTzOP67IsW/lrU6/uiOtpw5plnRhcDeUYmIH8owdf+xHMyfjNbC0IAZsuT0iAAAQhAAAIQgEDwBBCAwXcRFYQABCAAAQhAAALZEkAAZsuT0iAAAQhAAAIQgEDwBBCAwXcRFYQABCAAAQhAAALZEkAAZsuT0iAAAQhAAAIQgEDwBBCAwXcRFYQABCAAAQhAAALZEkAAZsuT0iAAAQhAAAIQgEDwBBCAwXcRFYQABCAAAQhAAALZEkAAZsuT0iAAAQhAAAIQgEDwBBCAwXcRFYQABCAAAQhAAALZEkAAZsuT0iAAAQhAAAIQgEDwBBCAwXcRFYQABCAAAQhAAALZEkAAZsuT0iAAAQhAAAIQgEDwBBCAwXcRFYQABCAAAQhAAALZEkAAZsuT0iAAAQhAAAIQgEDwBBCAwXcRFYQABCAAAQhAAALZEkAAZsuT0iAAAQhAAAIQgEDwBBCAwXcRFYQABCAAAQhAAALZEkAAZsuT0iAAAQhAAAIQgEDwBBCAwXcRFYQABCAAAQhAAALZEkAAZsuT0iAAAQhAAAIQgEDwBBCAwXcRFYQABCAAAQhAAALZEkAAZsuT0iAAAQhAAAIQgEDwBBCAwXcRFYQABCAAAQhAAALZEkAAZsuT0iAAAQhAAAIQgEDwBBCAwXcRFYQABCAAAQhAAALZEkAAZsuT0iAAAQhAAAIQgEDwBBCAwXcRFYQABCAAAQhAAALZEkAAZsuT0iAAAQhAAAIQgEDwBBCAwXcRFYQABCAAAQhAAALZEkAAZsuT0iAAAQhAAAIQgEDwBBCAwXcRFYQABCAAAQhAAALZEvj/NlkGiUjl9IAAAAAASUVORK5CYII=\" width=\"640\">"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.datasets import make_friedman1\n",
    "plt.figure()\n",
    "plt.title('Complex regression problem with one input variable')\n",
    "X_F1, y_F1 = make_friedman1(n_samples = 100,\n",
    "                           n_features = 8, random_state=0)\n",
    "\n",
    "plt.scatter(X_F1[:,2], y_F1, marker= 'o', s=50)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "b1615c05",
   "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_dpi_ratio', { dpi_ratio: fig.ratio });\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",
       "    // 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",
       "    var cursor = msg['cursor'];\n",
       "    switch (cursor) {\n",
       "        case 0:\n",
       "            cursor = 'pointer';\n",
       "            break;\n",
       "        case 1:\n",
       "            cursor = 'default';\n",
       "            break;\n",
       "        case 2:\n",
       "            cursor = 'crosshair';\n",
       "            break;\n",
       "        case 3:\n",
       "            cursor = 'move';\n",
       "            break;\n",
       "    }\n",
       "    fig.rubberband_canvas.style.cursor = 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",
       "            /* 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",
       "            evt.data.type = 'image/png';\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",
       "                evt.data\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 http://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",
       " * http://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.which === this._key) {\n",
       "            return;\n",
       "        } else {\n",
       "            this._key = event.which;\n",
       "        }\n",
       "    }\n",
       "    if (name === 'key_release') {\n",
       "        this._key = null;\n",
       "    }\n",
       "\n",
       "    var value = '';\n",
       "    if (event.ctrlKey && event.which !== 17) {\n",
       "        value += 'ctrl+';\n",
       "    }\n",
       "    if (event.altKey && event.which !== 18) {\n",
       "        value += 'alt+';\n",
       "    }\n",
       "    if (event.shiftKey && event.which !== 16) {\n",
       "        value += 'shift+';\n",
       "    }\n",
       "\n",
       "    value += 'k';\n",
       "    value += event.which.toString();\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, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
       "\n",
       "mpl.extensions = [\"eps\", \"jpeg\", \"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.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",
       "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
       "        ws.onmessage(msg['content']['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",
       "    var manager = IPython.notebook.keyboard_manager;\n",
       "    if (!manager) {\n",
       "        manager = IPython.keyboard_manager;\n",
       "    }\n",
       "\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,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAgAElEQVR4XuydBbhVxfrGX0IURUAUFBUVscEOTDBQMK7FNVHswI6reC3ALuyOi0mY2HFNDLy2ogh2IWLzxwSE//NbrIWbzY6199rnnB3vPM95xHNm1pr5rW/NvOubmW8azZw5c6acTMAETMAETMAETMAEaoZAIwvAmnnWbqgJmIAJmIAJmIAJBAQsAG0IJmACJmACJmACJlBjBCwAa+yBu7kmYAImYAImYAImYAFoGzABEzABEzABEzCBGiNgAVhjD9zNNQETMAETMAETMAELQNuACZiACZiACZiACdQYAQvAGnvgbq4JmIAJmIAJmIAJWADaBkzABEzABEzABEygxghYANbYA3dzTcAETMAETMAETMAC0DZgAiZgAiZgAiZgAjVGwAKwxh64m2sCJmACJmACJmACFoC2ARMwARMwARMwAROoMQIWgDX2wN1cEzABEzABEzABE7AAtA2YgAmYgAmYgAmYQI0RsACssQfu5pqACZiACZiACZiABaBtwARMwARMwARMwARqjIAFYI09cDfXBEzABEzABEzABCwAbQMmYAImYAImYAImUGMELABr7IG7uSZgAiZgAiZgAiZgAWgbMAETMAETMAETMIEaI2ABWGMP3M01ARMwARMwARMwAQtA24AJmIAJmIAJmIAJ1BgBC8Aae+BurgmYgAmYgAmYgAlYANoGTMAETMAETMAETKDGCFgA1tgDd3NNwARMwARMwARMwALQNmACJmACJmACJmACNUbAArDGHribawImYAImYAImYAIWgLYBEzABEzABEzABE6gxAhaANfbA3VwTMAETMAETMAETsAC0DZiACZiACZiACZhAjRGwAKyxB+7mmoAJmIAJmIAJmIAFoG3ABEzABEzABEzABGqMgAVgjT1wN9cETMAETMAETMAELABtAyZgAiZgAiZgAiZQYwQsAGvsgbu5JmACJmACJmACJmABaBswARMwARMwARMwgRojUDUC8H//+5/OO+88vf7665o0aZJat26tZZddVhtuuKEGDx5c1o9133331bPPPqvPPvusJPUcOHCgBg0apO+++06LLLJIzmtuuummwd+5fzUmmHbs2FFDhgwRnBsiZXq+P/74ow477DA9/fTTwXPaYYcdNHLkSDVq1EgDBgwQz7Au0jnnnKNVVllFO+644xyX5/lvttlmeuaZZxTZRF3cv6GvWYvvRib7y2YHN998s/bbbz+9+uqrWmeddQp+XI888oheeeWVOrPfQiu0zDLLBPZMu4pJp556qm699VZ9/fXXatGihX7++ediLtNgZXI9j6Rsim3U1KlTddRRR+n+++/Xt99+q1VXXVVvvfVWsZfLWu6ll17SE088oWOOOSbQA05zE6gKAfjwww9r++23D170gw46SO3bt9fEiRP12muvafjw4frqq6/K+tk3pAAcO3ZswAZRUI2pHATgxx9/rP/7v//TmmuuORvxscceq6uvvlr/+c9/1KlTJ7Vp00YrrLCCXn75ZS255JLBT10kBrF//vOfcw2I1A9bwA5atmxZF7cui2vWogDMZH/Z7CCpADziiCN01VVXaebMmWXxvN98883AnnnHCk0IFD6UTjnlFG299daad955ixLFhd63lPlzPY8kbJLU8bLLLgtE2RVXXKG11147ENaIwFKniy66SCeccII+/fRTIXadqlQAdu/eXRMmTNC4cePUtGnTOVo5Y8YMNW7cuKyffUMKwIYC8/vvv2u++eYLPF51mcpBAGZq35ZbbhnYbCTA65JB6rWzDfz1df9S3+evv/7S9OnTg8E5TqpFAZiJS60IwDg2kS3P2WefLTyAzCi1a9cuyaVml/3tt980//zzl+RacS5SboKcOuOkueOOOwSLukx1JQDra+yqSzbRtavCA9ilS5fgKwLvSb40YsQI3XTTTRozZkzgzufLgOm30047TQsssMDs4oiyu+++O/AiHn300XrhhReCL0n+fdJJJwX3+te//iW+opZYYongK3GfffaZXT76ksYFPXTo0MDd/eeff2rzzTcXX0BMT0cpkwDkC/qaa67R9ddfr/HjxwdiaYstttAFF1wwR9lM7Y0GuTfeeENnnnmmnnzyyUBo/eMf/9All1yitm3bzi6WPgUcCaYLL7wwEM58pTFFyRcaZddff/3ZZWHDSwYLOslFF11UG2ywQTAVv/TSS8/F4vHHHw88sg8++KC+//57jRo1St26dQv47LHHHnM0hWkXeDKdtO6662Z9rIgoprsfffTRoA5MeTPtjxeC+mQSgB999JHo3HmmlF9ooYW01lpriWmx1C9RPh743W233aYvvvgiEBlLLbWUDjjggMAOSLDh2XN/pjOw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8ZKuCkUg3hvWchEIemlJbP5Yr2xr74rVPYE333xTa621Vt4bMR283Xbb6b777sub1xlMoD4JePy2AExkbzagRPhcuOwJTAxDwnAUHMGf8eLw4+m8sn90dVzB4cOHa4899oh1lxVWWEHjx4+PldeZTKC+CHj8tgBMZGs2oET4XNgETKBCCbC5o3fv3rFq36VLF40ZMyZWXmcygfoi4PHbAjCRrdmAEuFzYRMwgQolMGnSJC255JLBbt9ciY0gRx99tAYPHlyhLXW1q5WAx28LwES2bQNKhM+FTcAEKpjA7rvvrnvuuSenCCQO4AcffKDllnO4oAp+1FVZdY/fFoCJDNsGlAifC5uACVQwga+//lrrrbee8AZm8wSef/75OvHEEyu4la56tRLw+G0BmMi2bUCJ8LmwCZhAhROYMGGC+vXrp4ceeiiIBYjHj/+2b99eZ511lvbfn5BCTiZQfgQ8flsAJrJKG1AifC5sAiZQJQQ+//xzPfXUU/rjjz+07LLLqkePHsGJIE4mUK4EPH5bACayTRtQInwubAImYAImYAINQsDjtwVgIsOzASXC58ImYAImYAIm0CAEPH5bACYyPBtQInwubAImYAImYAINQsDjtwVgIsOzASXC58ImYAImYAIm0CAEPH5bACYyPBtQInwubAImYAImYAINQsDjtwVgIsOzASXC58ImYAImYAIm0CAEPH5bACYyPBtQInwubAImYAImYAINQsDjtwVgIsOzASXC58ImYAImYAIm0CAEPH5bACYyPBtQInwubAImYAImYAINQsDjtwVgIsOzASXC58ImYAImYAIm0CAEPH5bACYyPBtQInwubAImYAImYAINQsDjtwVgIsOzASXC58ImYAImYAIm0CAEPH5bACYyPBtQInwubAImYAImYAINQsDjtwVgIsOzASXC58ImYAImYAIm0CAEPH5bACYyPBtQInwubAImYAImYAINQsDjtwVgIsOzASXC58ImYAIVQOC7777TiBEjNGHCBC244ILaYYcd1Llz5wqouatoAtkJePy2AEz0ftiAEuFzYRMwgTImMHXqVB1//PG69tprNWPGDDVp0iT4719//aVNN91Ut99+u5ZYYokyboGrZgIWgLlsoNHMmTNn2kiKI2ABWBw3lzIBEyhvAgi9XXbZRffdd58yDRFNmzZV+/bt9dprr6ldu3bl3RjXzgQyEPD4bQ9gohfDBpQIXx0Vnibpv5I+l7SApK0kLVZH9/JlTaA6CTz44IPafvvtczYOj+Chhx6qK6+8sjohuFVVTcDjtwVgIgO3ASXCV+LCOLKvljRI0neSGknid00k7SLpCkmLlPievpwJVCeBnj176qmnngqme3Ol+eefX5MmTVKLFi2qE4RbVbUEPH5bACYybhtQInwlLnyqpLOzXBMRuKyklyW1KfF9fTkTqD4CbPb45ZdfYjXsf//7n9Zbb71YeZ3JBMqFgMdvC8BEtmgDSoSvhIXfkLR2nushAg+RdFUJ7+tLmUB1EsCj9+uvv8Zq3OjRo7X++uvHyutMJlAuBDx+WwAmskUbUCJ8JSx8gKRbJU3Pc83mkr6R1LKE9/alTKD6CGy44YbCs8dmkFxpnnnm0TfffKM2bexZrz4rqO4Wefy2AExk4TagRPhKWLiDpK9iXu8pSZvHzOtsJlCbBIYOHao+ffrkbDw7gffYYw/deisfX04mUFkEPH5bACayWBtQInwlLLyopG9jXu9RSb1i5nU2E6hNAtOmTVP37t31yiuvZNwIwg5g1gkSBqZTp061CcmtrmgCHr8tABMZsA0oEb4SFu4u6UVJuXcszrrhR5I8YJUQvi9VpQQmT56sPffcU4888ojw9jEd3LhxY02fPl0dO3bUyJEjtdpqq1Vp692saifg8dsCMJGN24AS4Sth4WGS9sxzPTaBbCLpmRLe15cygeon8M477wTTvNFRcDvuuKMIE4MX0MkEKpWAx28LwES2awNKhK+EhadKYhfiO1m8gMQEZLB6VtJGJbyvL2UCJmACJlCJBDx+WwAmslsbUCJ8JS5M8OdtJb0qqWnKjmDEH7t/R0jarsT39OVMwARMwAQqkYDHbwvARHZrA0qErw4KE7KCXb43SfpU0oKSOM6qr6TWdXA/X9IETMAETKASCXj8tgBMZLc2oET4XNgETMAETMAEGoSAx28LwESGZwNKhM+FTcAETMAETKBBCHj8tgBMZHg2oET4XNgETMAETMAEGoSAx28LwESGV9sGxEHxnBW6kKRmiTi6sAmYgAmYgAnUJ4HaHr9nkW40c+bMmfUJvVzude655+ree+/VuHHj1Lx5c3H25fnnn68VV1wxdhVrz4AwlfskXSrp+ZDTfJL2lnScpJVis3PGQgn8IOn1cHfzKpKWKfQCzm8CJmACJhASqL3xe+5HX7MCsFevXtp999217rrrBpHtTznlFI0ZM0Zjx47VAgssEOslqS0DQvwdLemKMKZe6qkbhF3h50FJPWKxc6a4BL6W9G9JBLuellJoK0nnSFo77oWczwRMwARMwAJwtg3UrABMfwu+++47tWvXTs8995y6desW6yWpLQF4g6SDc3CJ4u19KGnxWPycKR+BL8MA15xzPD0tM4GtEd2PSdo034X8dxMwARMwgRQCtTV+Z370FoAhl48++kjLL7984AXs0qVLrBeldgwI79/ykj6RlGvFAKLkNEkDYvFzpnwEtpA0KoP4i8o1DuMbTpDEVHy29LakoZIQkqzZ3CUUloh2JxMwAROoPQK1M35nf7YWgEiamTO1ww476KefftLzz0dr2+aG9ueff4qfKGFAHTp0EIemt2zZsorfoLckrRmzfZ0kfRQzr7NlJzBO0soxAd0arsNMz866wd0lPRl6C6O/401k6vheSUvFvIezmYAJmED1ELAArOFNIKlmfPjhh+vhhx/WCy+8oCWXXDKrhQ8cOFCDBg2a6+/VLwAREFvGfPM5ceOnmHmdLTsBNtocL4nTTXIlvIB49IanZfpN0oaS3s1yPjLTx0zVvyapbQEPgmlpni9l2hdQzllNwARMoHwIWABaAOrII4/UyJEjNWrUKHXs2DGnddauB/BNSWvFfHPtAYwJKk+2syUNzDH9m1r8H5IeSLvelZKOijFlf4Kkc/PUhWn/OyVdIOmNlLysPTxJUs/SNNlXMQETMIF6ImABWMMCkGlfxN99992nZ599Nlj/V2iqHQPyGsBCbSN5/tuzTOumXxlP3iGSEHypiXBGbMjJF+UJj+2kHLEcKd9f0oWS8DameiRZ88lu8MtCsZm81b6CCZiACdQHgdoZv7PTrNk1gIcddpiGDh2q+++/f47Yf61atQriAsZJtWVA14dCIxsZ7wKOYzPx8xBkezFJBNzOl4gPmOqhnSpp3nyFUv7O5p5s3u+7wynmfJd7SdIG+TL571VOgGgKN998s9588001atRI6623nvr27auFFmLzkZMJlA+B2hq/M3OvWQFI55QpDRkyRPvuu28sK60tA8ITxJQinqbI8xNhchzAWAZTcKazwl3V2QryHIgH+EhahkIF4Kc5Aksj6l7JsxaR5//PMFZhwY10gSogwIwKgfRPO+00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\" width=\"640\">"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure()\n",
    "plt.title('Sample binary classification problem with two informative features')\n",
    "X_C2, y_C2 = make_classification(n_samples = 100, n_features=2,\n",
    "                                n_redundant=0, n_informative=2,\n",
    "                                n_clusters_per_class=1, flip_y = 0.1,\n",
    "                                class_sep = 0.5, random_state=0)\n",
    "plt.scatter(X_C2[:, 0], X_C2[:, 1], c=y_C2,\n",
    "           marker= 'o', s=50, cmap=cmap_bold)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "67caf379",
   "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_dpi_ratio', { dpi_ratio: fig.ratio });\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",
       "    // 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",
       "    var cursor = msg['cursor'];\n",
       "    switch (cursor) {\n",
       "        case 0:\n",
       "            cursor = 'pointer';\n",
       "            break;\n",
       "        case 1:\n",
       "            cursor = 'default';\n",
       "            break;\n",
       "        case 2:\n",
       "            cursor = 'crosshair';\n",
       "            break;\n",
       "        case 3:\n",
       "            cursor = 'move';\n",
       "            break;\n",
       "    }\n",
       "    fig.rubberband_canvas.style.cursor = 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",
       "            /* 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",
       "            evt.data.type = 'image/png';\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",
       "                evt.data\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 http://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",
       " * http://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.which === this._key) {\n",
       "            return;\n",
       "        } else {\n",
       "            this._key = event.which;\n",
       "        }\n",
       "    }\n",
       "    if (name === 'key_release') {\n",
       "        this._key = null;\n",
       "    }\n",
       "\n",
       "    var value = '';\n",
       "    if (event.ctrlKey && event.which !== 17) {\n",
       "        value += 'ctrl+';\n",
       "    }\n",
       "    if (event.altKey && event.which !== 18) {\n",
       "        value += 'alt+';\n",
       "    }\n",
       "    if (event.shiftKey && event.which !== 16) {\n",
       "        value += 'shift+';\n",
       "    }\n",
       "\n",
       "    value += 'k';\n",
       "    value += event.which.toString();\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, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
       "\n",
       "mpl.extensions = [\"eps\", \"jpeg\", \"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.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",
       "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
       "        ws.onmessage(msg['content']['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",
       "    var manager = IPython.notebook.keyboard_manager;\n",
       "    if (!manager) {\n",
       "        manager = IPython.keyboard_manager;\n",
       "    }\n",
       "\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,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAgAElEQVR4XuydBdgdxdmGnwQLARLcIbiEQIHgHqx4cKdQPNDgTvvjUtwCJDgBGpzibsVLcLcGSdA2pGiw/Ne93Q0nhyN7zhzfZ67ruyLfzO7Mve/OPPvOzDtdxo0bN05OJmACJmACJmACJmACmSHQxQIwM8/aDTUBEzABEzABEzCBiIAFoA3BBEzABEzABEzABDJGwAIwYw/czTUBEzABEzABEzABC0DbgAmYgAmYgAmYgAlkjIAFYMYeuJtrAiZgAiZgAiZgAhaAtgETMAETMAETMAETyBgBC8CMPXA31wRMwARMwARMwAQsAG0DJmACJmACJmACJpAxAhaAGXvgbq4JmIAJmIAJmIAJWADaBkzABEzABEzABEwgYwQsADP2wN1cEzABEzABEzABE7AAtA2YgAmYgAmYgAmYQMYIWABm7IG7uSZgAiZgAiZgAiZgAWgbMAETMAETMAETMIGMEbAAzNgDd3NNwARMwARMwARMwALQNmACJmACJmACJmACGSNgAZixB+7mmoAJmIAJmIAJmIAFoG3ABEzABEzABEzABDJGwAIwYw/czTUBEzABEzABEzABC0DbgAmYgAmYgAmYgAlkjIAFYMYeuJtrAiZgAiZgAiZgAhaAtgETMAETMAETMAETyBgBC8CMPXA31wRMwARMwARMwAQsAG0DJmACJmACJmACJpAxAhaAGXvgbq4JmIAJmIAJmIAJWADaBkzABEzABEzABEwgYwQsADP2wN1cEzABEzABEzABE7AAtA2YgAmYgAmYgAmYQMYIWABm7IG7uSZgAiZgAiZgAiZgAWgbMAETMAETMAETMIGMEbAAzNgDd3NNwARMwARMwARMwALQNmACJmACJmACJmACGSNgAZixB+7mmoAJmIAJmIAJmIAFoG3ABEzABEzABEzABDJGwAIwYw/czTUBEzABEzABEzABC0DbgAmYgAmYgAmYgAlkjEDDBODTTz+tk08+WcOHD9enn36qqaeeWvPMM49WWGEFnX766S2NfaeddtLDDz+sESNG1KSeRx99tI455hh9/vnnmn766Utec7XVVot+z/07McF07rnn1mWXXSY4NyMVer7/+c9/tNdee+nBBx+MnlP//v11yy23qEuXLjrqqKPEM6xHOvHEE9W7d29tvPHGE1ye59+vXz899NBDSmyiHvdv9jWz+G4Usr9idnD55Zfrj3/8o/75z39qqaWWavbjqsn9C9l2Ygfjxo2ryT3qeZG55poreid5Nk7lCSR9/qmnnqqDDjqoZIHE3v/1r38Jzo1K9e7nG9WOcvdpiAC84447tNFGG0UvyW677aZZZplFH3/8sZ599lkNGzZMH330Ubl6NvX3zRSAr732WtR2REEnplYQgO+++67++9//aokllhiPeP/999f555+vSy+9VPPOO6+mnXZaLbDAAnrqqac0++yzRz/1SFNOOaU233zz3wwm1A9bwA569OhRj1u3xDWzKAAL2V8xO8iKAGRM4Ge55ZZrCbssVQkLwMoekQVgZbzqmbshAnDVVVfVyJEj9cYbb2jiiSeeoD2//PKLunbtWs82Bl+7mQIwuPJVXuC7775Tt27dIo9XPVMrCMBC7VtrrbUim00EeD0Z5F672MDfqPvX+j4///yzfvrpJ0022WSpLp1FAVgITNYFYCpjaXIm+sjJJ5888kxl2QP4448/RuNE/the7PFYADbZcHNu3xAB2KdPH9Gh4T0pl6699lpdcsklevnll/Xll19GLxfTb3/5y180xRRTjC+OKLvhhhsiL+K+++6rxx57LPKM8PfDDjssuhfu5eeff16zzTabjjzySO24447jyydf0vfee6+uueYa/f3vf9fYsWO1+uqr6+yzz46mp5NUSAAyNXHBBRdoyJAhevPNNyOxtMYaa+iUU06ZoGyh9iaD3HPPPafjjjtO999/f/QCbbjhhjrzzDM1wwwzjC+WPwWc+/IgnM8999xoinLRRReNyuZ+McPmtNNOi1gw7T7TTDNp+eWXj6bie/Xq9RsW99xzT+SRve222/TFF1/o0Ucf1SqrrBLx2WabbSZoypVXXhnxfOaZZ7T00ksXfayIKKa777rrrqgOTHkz7T9o0KCoPoUE4DvvvKMTTjgheqaUn2aaabTkkkuKaTHamSQ+Hvi/oUOH6oMPPohExpxzzqlddtklsgMSbHj23P+zzz6LbARPHnVac801ozy5zzepT36DkqnXQlMD5dr4/fffR3V44IEHxFTGRBNNpAUXXDCyU2w7SYXENh9PTJEVmwK+9dZbddJJJ+nFF1+MrsvzP/bYY6PnnKTE3l555RUdf/zxuvPOOyN7XX/99SOb6dmzZ8nXEhvEHrD3gw8+OLoXHtGdd945mgrnvqSE3V//+lf98MMP0Xv84Ycf6vbbb9c666yjSupazbtBHbgv7+BVV10VseZ5b7DBBtH/5b5X9Cv0S3vuuWfUt/Bxyv8xLUV++gfagV0tssgikTe41JQrHlqY8CxgRILZjDPOqKmmmkr//ve/xw+Q++yzj/72t79F9sgzz+9fStlB0m+xNOG6667T9ddfL/oi7OS8887TrLPOWvJZJv3mCy+8IOrBO877teWWW0bvUq5QZxnEn//856hv5D3C600/8H//938T5KO+e++9t5ZddtnoGu+//77mn3/+6B2GZbmUdgo4eWZ/+tOfdMQRR+j111+P+rFDDjkkssXc9Mknn0RLNZh9gjNjAG3nPcwVKvQDvA9vv/129KEy33zzRW3hernPIbk3/0+fzb3322+/qC/NFYBff/11xGmrrbbS4MGDJ6gT7wezCZRJbKQQG96zCy+8UHiGqQN133TTTSO2SUrTvtz3EZFGfWCB3WPbjFdJStvnJs+K/h8bYrxgNo8P5emmmy5iTh7em+7du0f3gvHKK688/l6V1KvYFDBjJu8aSyF4bsze0O/ltqmY3aEreIY333xzNL7Q//Fun3HGGVpooYWiYvn9PPafpm2ULff8vv322+gduvHGGyN2cEJvHHjggROMs4zftIlxkDILL7ywDj/88OhdTVLaaxVj0RAByLTvxRdfrIEDB2q77baLBvNJJpmkYJ0YoBCLDNIIPjpmjJWXjE4vSbzMdKK8UHTiTI0hVFhLBiTgHnroodHLiEhiEAJo3759o0skhjXHHHMIb88WW2wRDVZ0eHSCL730UrROkVRIAO6+++7RNehEKU9nycMaPXp0NEAiboqlZECm8+JhIkReffXVaCCi3ayXTPgUE4DwwFhpO4myTJkw6CUDOgIZIc3LweCEsWGcvKz8JOsPExZ0NIiCTTbZRN988020Dg1xh4FihLlpmWWWif6JACyWeLkoT+dDh73YYotFAyFCkw6Q+hcSgAxKiAVEDIM2bK+44oqoHIIe8USiI+V58YNQ5T7YCy84LysJ4YGYYDCCLb/j39gLnXT+8+UjgHuw/m/MmDG6+uqrozzJ1Gt+x5CmjVyHwYLOCcaIFDowOhzs9Q9/+EN0D4Q6HyCs9eN5khAw3LvQIIm98z6tvfbaUX2pO0KHZ47YXGmllaJrJPYGN9pMZ0we3pNtt902muYulbBBxCPvBaKV6zCwnnPOOdFgifAgJc+SNsKa31F/xMATTzxRUV2reTf4IMB+//GPf0SigA8NxAi2wDvB+4/HhsT7g3eSdxxRwO8ZqLANuMCPDpnnTT/CM+TdSsoX4oW90l7slMTHLH0Hz4X3h/oktsSHDL/Pt79ydpC8qwwYtBWBRb/F+7T44otP0EcWqmNuv8mHEmV43xgQsRMGJhIfLQg6RAhceHfhyqCLvfH8kwQjeCJ2+eim/8YOaTMfx7kf04XqVIkA5JnBGDukj2VcQQQ/8sgjUR9AQhzRP/GBTL/DGPHkk09GHz8IWN65JLGekveBD8eEPUKL6ycsEnvhveX509+wbpnxif4t3wN4wAEHRI6BRFwk98ImGYvopxFLhRKCijoyVuIQoA2IM/prHBOVtC95HxnjeJ9Y1sI7wrNBvMEs+VBM2+cmz4p3nLL0XdSRvyOSqCMfIzPPPLMQw4gsePM+JWNZJfUqJAD5uOO+fDzzJ2Ml4paPfN69UiLwq6++iupKHXivsXHqSfu5Hn0vKb+fx47TtC3N82PMxmmBPTI2M9bSv2JPfNyQcDgwdlE//o/+iWvDI3e9fJprFTS0+D8bIgAZ9BETiYjggfHiYOA0jg6jUOLLlheewQOjQljRESWdJqIAocfXEYkvAb6AMUQ68mRNFwKCzgmvULLhJDEsxM5NN900/vbca8UVV4weDgNDcq/cTSAM1BgR1+JlTxIvNgMfLy+itVhKBmReSERAkpIBHQNnYCcVE4AMIAiVxPvClxCdHqJ46623LnhrWNKx03HSySFeSQkLXiaY5qbkd9yLwYKU3Iu8iXgpdEMGGAyd58bXS6GUZgqYetNx4YlhwEuYYT8wp27FEt6XXXfdNfJ0FUuFBH7i9eLFzE35HUOaNubfl/Zg27y82Ck/SSo29Zc/SMKDjp2BhM48WUZBZ8aAhyfj8ccfjy6b2Bsdf67nAYGG+OMrstRUPywYLPAEsZY3SXwE4eVDGDGAJs+S++MhST5iqqlrNe9G0vnm9gnUFeFHf4MXb8CAAVH1GbTxhuD5YTAjYafYOGuUGXT58CHRbvovPkqwuWIJ0U6fwEcgYpkPX+xz1KhR2myzzSJBwd+5HwKB35MK2V+5KWAEP170JOG5RGDwkcfgW8rWeW/xHvLRmyTEJGKPDygSAyr2mZ8PG2LgZOaED18StkOfAkveNxLefvpiPrwQU6VSJQKQ6zIYJ4KN/gyetAWvGYl68+HGR3WSj//n2SBQ+f9Ca6qxU34QuQz2jCPJe4G98CwRYvTxuSlfAL733nvRRw/348OPRD1xRvD+lPrgYuyg/8eGiqW07UveR54DzxavPwkRRJ1xxNx3330Fb1Osz02eFWKbPqFUSvo5hAyiPRlnK6lXvgCkr6LfY4zmfUwSz4328N7hQCmW+NDhPaTdyQxQobzlNoEUa1ua58fYTf+MOC6WGC/52MDBkuuxpv9hIy22SJ+f5lqlnlFDBGBSATpivgT4E0NiigRDRFAk3iheHr6w8PbRQefuAqODz/Xa4IbGIBLD5j58ZWNgdLS5iZeA3+EVIyWGxb/pnPNfaB4QXhpSfgdN/RBQfGniWctNfE1ijKWMMBmQcz2SXAMBy0NnapUvW1IxAUinSkeVJLwMcMArRgdNQgxg8AyIMMFok0Qngjcwl0X+AM/vuC6dKB3XRRddFOVH9N19992R56HU2i6YY6CJR6SQIRYSgHBIpvEYiPHsJYnOhC89Em3Du0Nb+HpLPDC59+FrEIGFN4cXHg9wvvc5RACmaSP1wUtx1llnRSKDL74k8cxYS5SktAIQgcUgli/quA7igAGcjh4Rk9gbg3viPSVfMshjx6U81tggDJnmzE3JYIDI33777ccLwHzxVk1dq3k3qEMy5ZcvaBk0GLQSrxv9Ds+OD74k4eHBnvHA8DGWpLfeeivihvcm+UIvZMsJD/ouPAl4iRgQ8ATRkeNBS5ZO0M/xe1I1ApD37/e///34avCO8W7wcYrXoFjiXoX6Tbye2Gdii/SzsMSGclnSJ2Mr9DH0NSR+z0cnH5+5CSGNcE76Gd7r3MTHK2UrEYBcE29ebuK9x5Ob9AsILcRA7oc9+XmOyXR+8iHAs6IvZwzKt+/c9wJ7oa/P/VhL6lBoDSD9EXaPWKWNiD4+Fhm8qVuxxLtE/wpPfhA6+ZEi0rYv6VuxWWw3NyWeYMZPnkPaPjd5VgjkxIGQe11EOB83CGXGjiQx2wMPUiX1yheAjMl8eDBu5y6f4bqMy/SH2GzucrHc+qEBcEjxXEqlQgIwTdvSPD/sgA8UPg4SL1/uzAJjHh8QLN9KljIldWUMpn+HLyKx3LVKNpJ3d1yT9tkzqNOJ4JnBK8GDQ7DQ0TIo0iHxpcUAhtDAy5fr+kzWslAmNxXz3CRrOJgKJiWGhVeSlyw3sY4qmQrk//M76GRKuxhcpjz44iqWkgEZFZ94H5K8fL3ToSVfB6XWAOZvoc83WkQbghvPBB4QvsLIs95660U/SdiChEWx9Xx8MfE1y0DGc2MwxfOZuyalUFsRWnRmeImKpUICkI4F7wb2geeXNUp87eDJo6NPQuLQaTENyRczXjA6MgZ5vK/Jei0+MvDmEsKF6UAEFl5f7C3xlIQIwDRtZCDiIwMvBVOu3JevOgZGBobcVzCtAMRu+dhIxFcuX9qbLAnAvoptrEgbYgEb5Nnj4clNCEo6IYQDHVXyLPNFaTV1rebdYGBIPtoK2RvT67wPpPz+IMmfrGdLprVzB6xyYSsQkNgqHTtTi3TiLCWhLQxWSWghPLO5/UM1AjA/DEzaMEHF+s38sCt8LPE8GYzyEzbPdZIPwkLMEsbJ5ohCa2uTdbWVCEDWlCV9eFKv/D6S+uWLzdw2sFSH94P+DkFAebzZCKtJJ5006ivwXOaGHsFeEI+5U9/JNQsJQIQlH58Ic6bM+fDk4yL3g6NYn8g4B1vqhzOBvpt3OvG4pm1fwjx3Niu5Jw4E+kmWxDC9mLbPTZ5VvmeY6zIzw4c2H+TM1CBc6ZNhjfijPrnvU5p65fdRCCc+9Eol1h8yRhVKvJM4NJJ+oNh18sfStG3jeuWeHw4A+kg+RpP9A3zM0b9QP/qHZPlOsfoxZU3/X+5aJUE1UwBSMdbVMKCvu+660UJcXLp0lBgZA3+SEtVfDwFYjQcQccrLwxd9IQ8Y/5e7WSH/IdTCA1hoMMo1WtgyGOEhS9bDUQ+ELV9HvET5ArBYbDGmlVhDwhc/UxkIQjwYudMrhQwtjXeskADkSxs7yF2rw/XpoPHMFoqJSEeGnbDmhy88PhqSKbykbnQM2BidHy8YXhRSiABM00Y+XhCoyaLupD48Azq0agRgNV61/LiTlQjASjyA+bZZTV2r8QDiuWNqJ3mu+TbJ9GTiAa2HAOR+dOTYIjaF0ODdoZPmXeRDYI899ogGx9wNAq0oAPEA0ifjFSvkAcydgUgjABHHiOHcxLPgmdRaAOIlZKkQIq5Yv8R7y0csH2FMt+bOIuFJKiQAC4lPrl9sFzBjAF5eWOFkyF3aU25g5vfYDQM9/TczB3gw6YfTtq8ST1vaPjd5VsxoEK4qN+HZREwi7HMTfS0fQfkCMI1nMr+PSjzdeDSLhQji2SPkC6VqPYBp25Z7z2LPLzcPSxrwXGMjaCE+qhGFeEzRGcnytvy2JO9OuWuVs7OGeADpBDHa/JSspcONyZQnu0/xWuHiz324eE4QavUQgMXWADK9SEdQSCAkCh0Fn7sjpxzs5Pfl1gDmenWq9QDScfMyMk2cuwYHzxovHtPMaQUg9WZNItPadOR8zZZav5C0M1kfx4aD3KnHXE6FBCDr2nLX9JCfL28GzmRXbDHWTE3ggSm2zodyPHOeIdNZhZ4v/1fpGsBSbcT7R32S9VVcn+klvvbwYOcKQNqO9yWZqkzaWWgNIAKcTTKIs2SQptPBA821kzW3tfAAVrIGMF8A4sWotK7F1gCWejcS70C5adBk0C40oId4ALkubafjxn7o86gvCc800zysncv3nhQSgMXsoFgcwFp7AJnGQ6wiWnlfksS0FDM2uWuo0gjAUn1jrQUgMzSIV9bvIryLJbxVtBPPbLIshClwBl8+FvM9gJUKQLx4eMMQQAzqXLOYMCnFJ1mDSh/IzE3a9pVba8ca+cRjnrbPLSUAGRfoj3I/wBD93AePXL4ALLY2Mbde+QKQ/pJr8bHHmt5KU7IGEA8gMwLFUr4HMG3bCl0v//kVykN/x0wK/TeOC2Y/6cMLeZzLtTn/WqXyN0QAosjx3rCAkZeLAQGPCNOKzNfjFudrCc9N4qLlq4eXkk6ddRNMP9VDAGJMuOiTXcBs/OC+GG6yvq9QB03nyBcdC+np3PGqIXQZdGlLssakEPz8XcC49pNdwCygx/WfdBTVCkDui1iiE0x2UTOIMx1LJ4eHrRIBSJ2StUV0Gmm22yc7ZFl7iGcOLnhH6CD4+i62CxhxigDC44jt8PwZWPGswifxAGJPdMpM99LxMMWLdxJBhb2wvoW1WEy7ci+8DXg5mZLgyyrZ4RviAUzTRuyW8BHYBF/NeCfpiJjWpp65ApDnjceMDyIEROK1KrULmEEBe8S7Cye8BYV2AYd4AJNdwMnSDAZYxDZtSjriZMAp5J1ONjilrWuyC7iSdwM7wyb4UGFKmk1RvMt4H/BKYPOJmKmXBxAxnkQayN0khTeQPo2BheeQuwu0mP0VsoNGCcBkFzAiiF3AvLv0bSz74Jnk7wLO3Q2e9Hlp4+PVWgDSD7OMBsHN1CYfn7QH+8RuWcvFeJRM0/JOMgXM+IPA5eOZ9zJUANLPMr5wXZwJvPPlEuKOeuMx5P3nQ5GPeOpCnejn0rYvf7ctfS5jL+MBG+fgnix/StvnlhKA2DdtpH9l7EH0YveMjUzJ5wvAZHdyqXoV2wVMfRmzeXZs8OSdot/jz2TNaSHWyS5gxgocI/QRPCfGRhwMxXYBp21bmufHOMq9GNv4QOE9R3cg+pIlAvRXzIzCkf6BpTx8qJCXPgYPLCnNtZouAPniRQUz+GK8DFQYN41jQMndIYr3jy8zHiaGQ6fNokdcsPUQgHyR85WO95F6YQAMbEw1JqlYIGjqw1QOgyMvFl80vFB0OskgUEoAImwQgzxsBgaMgq8ADDpJIQIQccJASEfHC0jd6ODY8ZcbuDTt6QJMZ9A5VRIcmcGXl4eOl46QDowvYlz4tLOQBxCRyPpGnglffDx7OsHEI5sIQNZlsMGFqRE6bdbWMTjRASEgeJ54A3mpuA/rF/FEsbiaHZPJFHGIAOQ5lWsjeeh0GXiwfzx0dHqUY3DNFYDYPYMpHTQCtlwcQN6rQnEAk5Aj3LsWHkDWUuI95rng7eTjiHVu1D/ZpVZKAFKPSupazbvBPbBz3l/eaQYg6sZgD0fqnrzX9RKAPEvsGl68f0lcviS6ALZM23JTIfsrZgeNEoDUjwGHgSmJA8ggxMcU73Pu0pdW8wBSd/gjRuhDeM/4kKL/YtE9Y06ySYA+nHcT26V9DOA8P2YvQgUg9eAdwVGQXL+cAGSDDs+YPpapadbR0V/S9+UuK0rTvuR9pH0IYDySzHqwlpGPaxwfSUrb55YSgMwOYS9sBqKvZ5MaH+TMFuVG0aikXsWWqTA1zjo69AKijmfGDn7epfyp6XzmtJU+kXrRHyPCWGeJQyqZqcr3AKZtW5rnh/3hRGFJEH08dofOgV3uhyFOKJYiwA5b4HcwZdaRD35S2msVs7uGeADLGX0zfp9W9DSjbq14T4zxd7/7XSQCEORO2SFQbDo8OwTcUhOonACigQ8NBBxOkEanch9kja6P79d6BCwAO+hQ9XqYF18puMuZwmUNS258tHrcz9dsPQIWgK33TFyj1iXANCTeZ7yLOBqY+SoV+qVeLbEArBfZzrmuBaAFYElrxqXOdBrT9Ex354fM6ZxXwS0pRsAC0LZhAukJJLNLLHNiujyZrkt/hdrktACsDcdOvkpmBWAnP1S3zQRMwARMwARMwARKEbAAtH2YgAmYgAmYgAmYQMYIWABm7IG7uSZgAiZgAiZgAiZgAWgbMAETMAETMAETMIGMEbAAzNgDd3NNwARMwARMwARMwAIwwAYI/jxq1KgoyGjueZkBl3RREzABEzABEzCBOhMgaDtBpAnWzqlMWUwWgAFPnQjzHGfjZAImYAImYAIm0H4EOJqT04KymCwAA576mDFjNPXUU0dnu/bo0SPgSi5qAiZgAiZgAibQKAIcH4oDh6Phevbs2ajbttR9LAADHgcGhOEgBC0AA0C6qAmYgAmYgAk0kIDHb8kCMMDgbEAB8FzUBEzABEzABJpEwOO3BWCQ6dmAgvC5sAmYgAmYgAk0hYDHbwvAIMOzAQXhc2ETMAETMAETaAoBj98WgEGGZwMKwufCJmACJmACJtAUAh6/LQCDDM8GFITPhU3ABEzABEygKQQ8flsABhmeDSgInwubgAmYgAmYQFMIePy2AAwyPBtQED4XNgETMAETMIGmEPD4bQEYZHg2oCB8LmwCJmACJhBM4GdJb0v6XhInU00XfMUsXMDjtwVgkJ3bgILwubAJmIAJNIDAT5Jul3SDpNGSZpK0vaR+kro04P71usVYSWdJOlfSyPgmE0naRNKRkhav14074roevy0AgwzZBhSEz4VNwARMoM4EXpW0vqT3JSGO8JZNLAlRiEBCGM5W5zrU4/J4+9aV9KikX/JuQDtp422S1qrHzTvimh6/LQCDDNkGFITPhU3ABEygjgQ+jEXemFj45d8KkTSXpOGS2u0s94MknVlA/CVt7CppckkfSJq2jozb99Ievy0Ag6zXBhSEz4VNwARMoI4EBkq6oIj4S27LFPBpkg6oYz1qfelv4mls/iyVaNvpkvavdQU64noevy0AgwzZBhSEz4VNwARMoE4EvpM0vaRvU1x/bknvpcjXKlmY2t0oZWWWlfRUyrzZyubx2wIwyOJtQEH4XNgETMAE6kSAXbELVHDtHyRNUkH+Zma9StIOKSuwoKQ3UubNVjaP3xaAQRZvAwrC58ImYAImUCcC/5I0T8prM1X6Y7xJJGWRpmZ7QNKaKWrAOsDVJJHfKZ+Ax28LwKC3wgYUhM+FTcAETKBOBNjtO7ukT8pcH5G0dJtNk7KDmXh/5dpG04fGIW/qhLmNL+vx2wIwyHxtQEH4XNgETMAE6kjgeElHldgpm9yaKdXt6liPelya2H/7lLgwoWAIb/OmpG71qEDbX9PjtwVgkBHbgILwubAJmIAJ1JEAu2RXlvRSkZ3AeP+Ipff3Npr+TXCNi3cuEwg6iWuY/I52zSzpoQrXQdbxUbTgpT1+WwAGmaUNKAifC5uACZhAnaF7lf8AACAASURBVAkQA3BPSddJQjQlwaDZ8LF7HCZl0jrXoV6Xpz0PSjpH0r2S2MjSS9IASbs4/l8Z7B6/LQCD3kwbUBA+FzYBEzCBAAKs87tT0l2SCPtCUOcd4z/zL8tRaXj6kqPgNu1AgYQgbOej7QJMoYqiHr8tAKswm1+L2ICC8LmwCZiACVRJ4BlJm0vitA+mQEkIII5F+6Ok8yVNVuW1XSwLBDx+WwAG2bkNKAifC5uACZhAFQRelrScpLEl1vZtLOkGe8SqoJuVIh6/LQCDbN0GFITPhU3ABEygCgJs3LivzBFvXJZNEMTBczKB3xLw+G0BGPRe2ICC8LmwCZiACVRIYEQc4Jnp3lKJaeFN4s0fFd7C2TNBwOO3BWCQoduAgvC5sAmYgAlUSOBWSf1TlmFHLILRyQTsASxkA13GjRtX7lPKtlOEgAWgTcMETMAEGkngdkkbprzh3JLeS5nX2bJGwON3B3sAH330UZ166qkaPny4Pv74Y918883aeGMWBv8voXuPOeYYDRkyRKNHj9ayyy6rQYMGaZFFFkn9HtiAUqNyRhMwAROoAQHCucyZ4nQPpoC3ksQpH04mYA9gpjyAd911lx5//HEtueSS2myzzX4jAP/617/qhBNO0OWXX64FFlhAxx9/vBCNb775pqaaaqpU74sFYCpMzmQCJmACNSTAhzyeQOIAlkqPS1qhhvf1pTqJgMfvDvYA5hpqly5dJhCAeP9mnXVW7bfffjr00EOjrGPHjtVMM80khOEee+yRys5tQKkwOZMJmIAJ1JDA25KWkfRVERFIMOSdJF3SBmFgPpd0qaRn4ziGS8aneMxUQ16+VCECHr8zKgDfe+89zTvvvHruuee0xBJLjLeN/v37a+qpp9YVV1xR8I1BJPKTJAxojjnm0JgxY9SjRw+/ZSZgAiZgAg0h8Go8xcufTPci+vAIctTbPpL+2gbn+54u6bB4OjtZik87OMv3GEmHt4GAbcjDrstNLAAzKgCfeOIJrbjiiho5cmTkCUzS7rvvrvfff1/33HNPQYM7+uijo3WD+ckCsC7vpy9qAiZgAiUIIJqeiI+C+1YSmz62kTR9G1A7NxaqpaqKiD2kDdrSnlW0AMy4ABw1apRmmWWW8da722676cMPP9Tdd99tD2B7vtOutQmYgAm0OIGvJTHFi2gtlbpJ+ljS1C3envasngVgRgVgtVPA+WZuA2rPF9+1NgETMIHmEbhY0u7xmr9StWA6+GxJA5tX1Q6+s8fvjArAZBPI/vvvr0MO+Z+L/YcfftCMM87oTSAd/MK7aSZgAibQfAL7STpf0o9lqsLaxp0lDW5+lTuwBhaAHSwAv/76a73zzjuR2bLR44wzzlC/fv007bTTas4554yE3kknnaTLLrtM888/v0488UQ9/PDDDgPTgS+6m2QCJmACrUPgQEmsASwnACeRtGssFvNr/4ukhyWxI3qy+MzjuVqniW1QEwvADhaAiDkEX37acccdo9h/SSDowYMHTxAIuk+fPqlN1waUGpUzmoAJmIAJRARukrRZShYEst4uL++1kghf9n7O/zNdvF4sFgmU7VSOgMfvDhaA5R5+LX5vA6oFRV/DBEzABAoReEXSdZJGxzt72eG7QAegwvM3uyRiABY7iRVBx+YPNoHg4UvShZIGFGFACBx2QD8Tn5bSAajq2ASP3xaAQeZlAwrC58ImYAImEIsgpjPZHPGWJKY+P5P0bk6MP6Y8ifO3gaQrJU3T5uTuituCAMwXgYg/0o2SNslpJ8fg9SpzAgoiEE/grW3Op/7V9/htARhkZTagIHwubAImkHkCX0riaLdHYrH3UxkiCJzfSfqHpO5tTo94s5w6xVQuGz5ItH+OeCoXsZubjpZ0XIpzkBGQ/4rFYpsjqmP1PX5bAAaZlw0oCJ8Lm4AJZJoAXr1VJT2Z4lzfXFAInLNSBFJuB7gweEDSP3OOglu7yCkmK8aBr9O0Cy/pDmkyZjaPx28LwCDjtwEF4XNhEzCBTBMg4P66VRBAAM4n6c2MHZW2lKThKXkxnb5LyrzZzObx2wIwyPJtQEH4XNgETCDTBFjfdns87VkNCE7UmKKagm1aBo/esJS8mFJfpU3b2Zhqe/y2AAyyNBtQED4XNgETyDSBhWIvXrUQvpI0ZbWF27Ac6x7LiTq8o/PE8QGTzSRt2NQGVNnjtwVgkJnZgILwubAJmEBbEcDjNkJS13gKdtLA2i8m6eUqroGwIegxu4SzJHLYLcwO3/vKrJlk9/CmVXDNVhGP3xaAQRZvAwrC58ImYAJtQeADSSdKukLS93GNCcPCDlYCEhOvrprEMZxnVLgBhPsg+k6XtH81N23zMojwLSURRoadw8muaUQ5O6SJE8jxcU7lCHj8tgAsZyMlf28DCsLnwiZgAi1P4DVJK0v6b4G1ZwiOeSU9JmmGKlryXuxJLBYMudAluWfveDdslqZ/c1nAi53TQyS9LqmbJHYOc2zcTFU8h2wW8fhtARhk+TagIHwubAIm0NIECLy8YDzty9+LCbJ14s0c1TTmTEkHlCmI6MPrh7drTUl/i0+8qOZ+LmMC/yPg8dsCMOhdsAEF4XNhEzCBliZwp6T1U9bwndgbmDL7BNmGSjpS0oc5/8uUJjEC2SjyQ+xh3FbSotXcwGVM4DcEPH5bAAa9FjagIHwubAIm0NIEiCNHQOFyp3Mg1v4q6aCA1hAQ+aF4YwdTmmtImi3gei5qAqUJePy2AAx6R2xAQfhc2ARMoKUJbC7ppgJn1eZXmrN72QzCMWVOJtAeBDx+WwAGWaoNKAifC5uACbQ0gT9JGpzCA8j6vHMl7d2k1rAp4j/xvafNWGiYJiHvgNt6/LYADDJjG1AQPhc2ARNoaQJPS1ouRQ0JRzKqyp3AKS5fNAs7k8+XdJ6kkXGuOSUhXAdkLEh0CMdslvX4bQEYZPk2oCB8LmwCJtDSBPCssRGDkCPF1gGy/m93SRc0uCWfxXV7SxLrB3MTdSJUzMOSpmtwvXy7diHg8dsCMMhWbUBB+FzYBEyg5Ql8EW/ISE7sSGL2EZqF0DCcTME6wcka3JJ+kjgarVR4GkLG3N3gevl27ULA47cFYJCt2oCC8LmwCZhAWxD4VhKhWphqJTA0HjamhplqZaMIYrCR6QVJS6S8IfVdOGVeZ8sSAY/fFoBB9m4DCsLnwiZgAm1HIPEANvMM3rRHyLE28QhJx7QdZVe4/gQ8flsABlmZDSgInwubgAmYQAUExsZnEhNzkL+XS4Sn2U3SoHIZ/fsMEvD4bQEYZPY2oCB8LmwCJmACKQkg+Dhy7tECmz6KXcIewJRwM5nN47cFYJDh24CC8LmwCZiACaQkcJSk4ysQf8lln6tgvWDKqjhbRxDw+G0BGGTINqAgfC5sAiZgAikIcBbwLDnBnlMUmSDLspL2kbR1vIGl0vLO34kEPH5bAAbZtQ0oCJ8Lm4AJmEAKAo9LWilFvmJZ2LVMrMDNJA2Ldy0/FYeI+U7S3LE4nCbgHi7abgQ8flsABtmsDSgInwubgAmYQAoC90r6fYp85bKwc3lXSc9IelESawT5P4JcTyrpwPg8YwSjU6cT8PhtARhk4zagIHwubAImYAIpCLwen+yRImuqLEkQ6/zMiEFONbkw1VWcqb0JePy2AAyyYBtQED4XNgETMIGUBPpKIgB0/rFvKYtXlI0zkJepqIQztx8Bj98WgEFWawMKwufCJmACJpCSwG2SNkqZNyQb08LbS7os5CIu2wYEPH5bAAaZqQ0oCJ8Lm4AJmEAFBJia3SvexMG6PVJyIglr+H6skYdwPklvV1AvZ21HAh6/LQCD7NYGFITPhU3ABEygQgJvSLpA0k2SvpHUKz7tg40bAyq8VrHs80h6t0bX8mValYDHbwvAINu0AQXhc2ETMAETqBEBwrnMJenfkn4OuCZTwJtIui7gGi7aDgQ8flsABtmpDSgInwubgAmYQA0JcOrHGpK+jkO7JJdOpomnlvTfFALxIUmr1bBevlQrEvD4bQEYZJc2oCB8LmwCJmACNSYwQtLpki6V9G187fnjk0DY2buqJE4WKbSbmGnk/pJuzFlbWOPq+XItQ8DjtwVgkDHagILwubAJmIAJ1InAWEmfxgGeZ8oRdE9I2lzSx3Eg6HHx/RGEf5A0WNJkdaqTL9tKBDx+WwAG2aMNKAifC5uACZhAEwiwg/jWnKPgWDv4R0ls/nDKCgGP3xaAQbZuAwrC58ImYAImYAIm0BQCHr8tAIMMzwYUhM+FTcAETMAETKApBDx+WwAGGZ4NKAifC5uACZiACZhAUwh4/LYADDI8G1AQPhc2ARMwARMwgaYQ8PhtARhkeDagIHwubAImYAImYAJNIeDx2wIwyPBsQEH4XNgETMAETMAEmkLA47cFYJDh2YCC8LmwCZiACZiACTSFgMdvC8Agw7MBBeFzYRMwARMwARNoCgGP3xaAQYZnAwrC58ImYAImYAIm0BQCHr8tAIMMzwYUhM+FTcAETMAETKApBDx+WwAGGZ4NKAifC5uACZiACZhAUwh4/LYADDI8G1AQPhc2ARMwARMwgaYQ8PhtARhkeDagIHwubAImYAImYAJNIeDx2wIwyPBsQEH4XNgETMAETMAEmkLA47cFYJDh2YCC8LmwCZiACZiACTSFgMdvC8Agw7MBBeFzYRMwARMwARNoCgGP3xaAQYZnAwrC58ImYAImYAIm0BQCHr8tAIMMzwYUhM+FTcAETKDjCYwdO1Y33nijrrzySo0aNUrTTDONttxyS+2www7q0aNHx7e/VRvo8dsCMMg2bUBB+FzYBEzABDqawNtvv621115bI0aMUNeuXfXLL7+oS5cuUZsRf7feeqtWWWWVjmbQqo3z+G0BGGSbNqAgfC5sAiZgAh1L4D//+Y8WXXRRffrpp/r5559/004E4WSTTaZnn31WvXv37lgOrdowj98WgEG2aQMKwufCJmACJtCxBE4++WQdeeSRkdevWJp44om19dZba+jQoR3LoVUb5vHbAjDINm1AQfhc2ARMwAQ6lkCvXr30wQcflG0fIvCLL75Qz549y+Z1htoR8PhtARhkTTagIHwubAImYAIdSQCv30QTTZS6ba+88ooWWWSR1PmdMZyAx28LwCArsgEF4XNhEzABE+hIAuPGjdOkk06qn376KVX72Cwy33zzpcrbrpn+/e9/66KLLop+PvzwQ00++eTacMMNNXDgQC277LINb5bHbwvAIKOzAQXhc2ETMAET6FgC66yzju6///6CG0ByGz3bbLPp/fffr8hj2G7Q8HCuvvrqQgTmrolk+huRfMIJJ+iII45oaLM8flsABhmcDSgInwubgAmYQMcSuOOOO7TBBhuUbR+7gZdYYgkNGjSoKZ6wshUMzMA4ucACC0TrHAvthk4uf/XVV2vbbbcNvFv64h6/LQDTW0uBnDagIHwubAImYAIdS4Bp4D322COa8kyb1lxzTV1//fWaeuqp0xZp+XwIW6Z54VEsERtxoYUW0quvvjo+TmK9G+bx2wIwyMZsQEH4XNgETMAEOprAv/71L/Xp00fffvttqnYihFgP9+ijj2qSSSZJVabVM/Xt21fPP/98SQGYtOG5556LvKGNSB6/LQCD7MwGFITPhU3ABEygowlw3NuwYcNSbwZJYFxzzTXaZpttOoLNzDPPHAXDTpNuv/12rb/++mmyBufx+G0BGGRENqAgfC5sAiZgAh1LgA0PiJ+0O4ETEKwJXH755fXYY491BBvW/7HLOU165JFHGnY0nsdvC8A0Nlk0jw0oCJ8Lm4AJmEBDCLz44ou67LLLot223bt313rrrafNN988OoqtXunhhx9Wv379qro85wSPGTOmqrKtVojTUP7617+W3Q093XTTadSoUVH4nEYkj98WgEF2ZgMKwufCJmACJlBXAl9//XW0s/S2225TEnKEAM3sRp1++ul14403Rh4n8jHteuutt4p+fa655tJOO+0UCTjW5VWTHnrooSj0STVpmmmmEWcJd0LiNBRiHOIJLbYRBMZHH320/u///q9hTfb4nWEBiLEdc8wxExjbTDPNpE8++SS1AdqAUqNyRhMwARNoKAFE3tprry2mFQuFH2GqFW/TmWeeqUMPPVRfffVVVD9ESiIWl1tuuUgUzjDDDBXX/bPPPhMx/iqdAube6667bnTfTknsbE7WNOY/C8QfMRP//ve/N3Tji8fvjAvAG264IQrUmSS+DCt50W1AndI9uR0mYAKdRgCv30YbbVSyWYhABB8iJDdAce6YsNhii+nJJ5+sarp46623FuNMqfh3hSp4zz33ROK1k9Ljjz+u448/XrQt8QTOPvvs2nfffaOfRu969vidcQF4yy236IUXXqj6HbMBVY3OBU3ABEygrgRY53fvvfdWLL4KVeqqq67SdtttV3F933nnHS211FLRFHMaEYgQZcp66NChVU89V1zJBhf4+OOPo6Pgpphiiij2X7Ezk998881IPI8ePVozzjijttpqK/Xq1atmtfX4nXEBeOqpp6pnz57Rlx2xl0488UTNM888RQ1s7Nix4idJGNAcc8wRLdZl0W5oYgqCjoaXn5eERbF0BqxFmXbaaUMv7/ImYAImkBkCTL+yqSA04SVkfHjiiSequhTHoG2yySZCDDK9i6cx19vI9fl3t27dtM8++0THopEvTcKTxmaTp556KrrG7373u2j6uJioSnPNZufhxBDC59x9991ROxI+tG/LLbfUxRdfrCmnnDK4mhaAGRaAd911VxScky3qxCjCNf3GG29EkcgRXoVSoXWD5KuFACRQJi5/QgeQkmkJvgj5UmI9yGqrrRZs9L6ACZiACWSBwJxzzhl5mmqRQjdlIF4efPDBqB//5ptvIsfBSiutFM1A4R1kKpRdyZWcAMLaxl133XW8sKSdrDecddZZdc4552izzTarRdMbeg1EGesu33rrrYIeUwQhYhyWoTu4LQAzLADzrZqXct5559UhhxyiAw44oKDR18sDOHLkSC266KLR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4QLKly+PDh064KmnnkLOnDkz1TyjZTJ8D3nz5sWHH36INm3aJA37iSeeMELj3//+d7RMJdOPkwKQW42FChUySdUp3F999VVUrlw50889WiaYWgDu2rULVapUwffff4+aNWsmTaNVq1YoXLgw5syZEy1T0zjDQEACMAzQ9cj0I/DGG28Yb1ORIkXwzTffmBtC+MuQW44qGU9g//79KFu2rNnCatCgQdIAKCy4OHGbSiUyCHCr8cyZM2Yb8dChQ2Yrcdu2bdi6dSuKFSsWGYOM8VGkFoDr1q0zxyr27dtnPIHu8sgjj5iz0J999lmME9P0fRGQAJR9RDwBT4fTUw/622+/Re3atdPMZcGCBWjfvj2OHDmiRSwMb9otALlQ1a9fP2kEPLP09ttvG4GhEpkETp8+bbxLTz/9NAYOHBiZg4yxUXkTgPyclS5dOokGz0AnJiZi+fLlMUZI0w2EgARgILRUNywEKN7446tw6zd37txpqvCbcbly5bBhwwazpaWSsQS0BZyxvEP9tGbNmuGaa65JcX4z1M9Qf84JaAvYOSvV9E9AAtA/I9WIYgJLly5FixYtzHaIIk7D8yIpvGvVqmWigN2lWrVqZmteQSDheSdOnsqztPQAcjtx6NChTpqoTjoT8BYEMmDAAOOpZeGXrpIlSyoIJJ3fRWboXgIwM7xFzcEQWL9+vfH0NW3a1Bxk57YwfzFya3jx4sWiFCYC7jQwCQkJZhuY+cqmTZtmzpZVrFgxTKPSY1MTePLJJ82XJX5ROnz4sDkDyCCdzZs36z2F0VxOnTqFnTt3mhEw0OP11183v+OKFi1q3hWjfflFatasWbj22mtN4M7KlSuVBiaM7yxaHi0BGC1vSuP0S4CRcH369DHnyui9oLjo1KmT+WbMSFSV8BGg9++1114ziWyvv/56MFjn1ltvDd+A9OQ0BPhZYf44Hrdg7r969eph2LBhoLdWJXwEKOYo+FKXbt26mdx/7kTQzK+ZPBE0P2cqIuCLgASg7EMEREAEREAEREAEYoyABGCMvXBNVwREQAREQAREQAQkAGUDIiACIiACIiACIhBjBCQAY+yFa7oiIAIiIAIiIAIiIAEoGxABERABERABERCBGCMgARhjL1zTFQEREAEREAEREAEJQNmACIiACIiACIiACMQYAQnAGHvhmq4IiIAIiIAIiIAISADKBkRABERABERABEQgxghIAMbYC9d0RUAEREAEREAEREACUDYgAiIgAiIgAiIgAjFGQAIwxl64pisCIiACIiACIiACEoCyAREQAREQAREQARGIMQISgDH2wjVdERABERABERABEZAAlA2IgAiIgAiIgAiIQIwRkACMsReu6YqACIiACIiACIiABKBsQAREQAREQAREQARijIAEYIy9cE1XBERABERABERABCQAZQMiIAIiIAIiIAIiEGMEJABj7IVruiIgAiIgAiIgAiIgASgbEAEREAEREAEREIEYIyABGGMvXNMVAREQAREQAREQAQlA2YAIiIAIiIAIiIAIxBgBCcAYe+GargiIgAiIgAiIgAhIAMoGREAEREAEREAERCDGCEgAxtgL13RFQAREQAREQAREQAJQNiACIiACIiACIiACMUZAAjDGXrimKwIiIAIiIAIiIAISgLIBERABERABERABEYgxAhKAMfbCNV0REAEREAEREAERkACUDYiACIiACIiACIhAjBGQAIyxF67pioAIiIAIiIAIiMD/A2PqPcZlGj7LAAAAAElFTkSuQmCC\" width=\"640\">"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "X_D2, y_D2 = make_blobs(n_samples = 100, n_features = 2, centers = 8,\n",
    "                       cluster_std = 1.3, random_state = 4)\n",
    "y_D2 = y_D2 % 2\n",
    "plt.figure()\n",
    "plt.title('Sample binary classification problem with non-linearly separable classes')\n",
    "plt.scatter(X_D2[:,0], X_D2[:,1], c=y_D2,\n",
    "           marker= 'o', s=50, cmap=cmap_bold)\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2a59f378",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "2730de02",
   "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_dpi_ratio', { dpi_ratio: fig.ratio });\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",
       "    // 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",
       "    var cursor = msg['cursor'];\n",
       "    switch (cursor) {\n",
       "        case 0:\n",
       "            cursor = 'pointer';\n",
       "            break;\n",
       "        case 1:\n",
       "            cursor = 'default';\n",
       "            break;\n",
       "        case 2:\n",
       "            cursor = 'crosshair';\n",
       "            break;\n",
       "        case 3:\n",
       "            cursor = 'move';\n",
       "            break;\n",
       "    }\n",
       "    fig.rubberband_canvas.style.cursor = 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",
       "            /* 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",
       "            evt.data.type = 'image/png';\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",
       "                evt.data\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 http://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",
       " * http://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.which === this._key) {\n",
       "            return;\n",
       "        } else {\n",
       "            this._key = event.which;\n",
       "        }\n",
       "    }\n",
       "    if (name === 'key_release') {\n",
       "        this._key = null;\n",
       "    }\n",
       "\n",
       "    var value = '';\n",
       "    if (event.ctrlKey && event.which !== 17) {\n",
       "        value += 'ctrl+';\n",
       "    }\n",
       "    if (event.altKey && event.which !== 18) {\n",
       "        value += 'alt+';\n",
       "    }\n",
       "    if (event.shiftKey && event.which !== 16) {\n",
       "        value += 'shift+';\n",
       "    }\n",
       "\n",
       "    value += 'k';\n",
       "    value += event.which.toString();\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, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
       "\n",
       "mpl.extensions = [\"eps\", \"jpeg\", \"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.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",
       "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
       "        ws.onmessage(msg['content']['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",
       "    var manager = IPython.notebook.keyboard_manager;\n",
       "    if (!manager) {\n",
       "        manager = IPython.keyboard_manager;\n",
       "    }\n",
       "\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,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\" width=\"640\">"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\PC\\Pytho\\Applied-Machine-Learning-in-Python-master\\adspy_shared_utilities.py:242: MatplotlibDeprecationWarning: shading='flat' when X and Y have the same dimensions as C is deprecated since 3.3.  Either specify the corners of the quadrilaterals with X and Y, or pass shading='auto', 'nearest' or 'gouraud', or set rcParams['pcolor.shading'].  This will become an error two minor releases later.\n",
      "  plt.pcolormesh(xx, yy, Z, cmap=cmap_light)\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_dpi_ratio', { dpi_ratio: fig.ratio });\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",
       "    // 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",
       "    var cursor = msg['cursor'];\n",
       "    switch (cursor) {\n",
       "        case 0:\n",
       "            cursor = 'pointer';\n",
       "            break;\n",
       "        case 1:\n",
       "            cursor = 'default';\n",
       "            break;\n",
       "        case 2:\n",
       "            cursor = 'crosshair';\n",
       "            break;\n",
       "        case 3:\n",
       "            cursor = 'move';\n",
       "            break;\n",
       "    }\n",
       "    fig.rubberband_canvas.style.cursor = 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",
       "            /* 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",
       "            evt.data.type = 'image/png';\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",
       "                evt.data\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 http://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",
       " * http://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.which === this._key) {\n",
       "            return;\n",
       "        } else {\n",
       "            this._key = event.which;\n",
       "        }\n",
       "    }\n",
       "    if (name === 'key_release') {\n",
       "        this._key = null;\n",
       "    }\n",
       "\n",
       "    var value = '';\n",
       "    if (event.ctrlKey && event.which !== 17) {\n",
       "        value += 'ctrl+';\n",
       "    }\n",
       "    if (event.altKey && event.which !== 18) {\n",
       "        value += 'alt+';\n",
       "    }\n",
       "    if (event.shiftKey && event.which !== 16) {\n",
       "        value += 'shift+';\n",
       "    }\n",
       "\n",
       "    value += 'k';\n",
       "    value += event.which.toString();\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, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
       "\n",
       "mpl.extensions = [\"eps\", \"jpeg\", \"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.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",
       "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
       "        ws.onmessage(msg['content']['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",
       "    var manager = IPython.notebook.keyboard_manager;\n",
       "    if (!manager) {\n",
       "        manager = IPython.keyboard_manager;\n",
       "    }\n",
       "\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,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\" width=\"640\">"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\PC\\Pytho\\Applied-Machine-Learning-in-Python-master\\adspy_shared_utilities.py:242: MatplotlibDeprecationWarning: shading='flat' when X and Y have the same dimensions as C is deprecated since 3.3.  Either specify the corners of the quadrilaterals with X and Y, or pass shading='auto', 'nearest' or 'gouraud', or set rcParams['pcolor.shading'].  This will become an error two minor releases later.\n",
      "  plt.pcolormesh(xx, yy, Z, cmap=cmap_light)\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_dpi_ratio', { dpi_ratio: fig.ratio });\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",
       "    // 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",
       "    var cursor = msg['cursor'];\n",
       "    switch (cursor) {\n",
       "        case 0:\n",
       "            cursor = 'pointer';\n",
       "            break;\n",
       "        case 1:\n",
       "            cursor = 'default';\n",
       "            break;\n",
       "        case 2:\n",
       "            cursor = 'crosshair';\n",
       "            break;\n",
       "        case 3:\n",
       "            cursor = 'move';\n",
       "            break;\n",
       "    }\n",
       "    fig.rubberband_canvas.style.cursor = 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",
       "            /* 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",
       "            evt.data.type = 'image/png';\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",
       "                evt.data\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 http://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",
       " * http://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.which === this._key) {\n",
       "            return;\n",
       "        } else {\n",
       "            this._key = event.which;\n",
       "        }\n",
       "    }\n",
       "    if (name === 'key_release') {\n",
       "        this._key = null;\n",
       "    }\n",
       "\n",
       "    var value = '';\n",
       "    if (event.ctrlKey && event.which !== 17) {\n",
       "        value += 'ctrl+';\n",
       "    }\n",
       "    if (event.altKey && event.which !== 18) {\n",
       "        value += 'alt+';\n",
       "    }\n",
       "    if (event.shiftKey && event.which !== 16) {\n",
       "        value += 'shift+';\n",
       "    }\n",
       "\n",
       "    value += 'k';\n",
       "    value += event.which.toString();\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, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
       "\n",
       "mpl.extensions = [\"eps\", \"jpeg\", \"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.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",
       "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
       "        ws.onmessage(msg['content']['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",
       "    var manager = IPython.notebook.keyboard_manager;\n",
       "    if (!manager) {\n",
       "        manager = IPython.keyboard_manager;\n",
       "    }\n",
       "\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,iVBORw0KGgoAAAANSUhEUgAAASwAAACWCAYAAABkW7XSAAAU2ElEQVR4Xu2deZzN1f/HXzNT3ySNXd8syRJCZEkoVAhTsvweRPlmK5HUVylrlhZkS2XJ0iNLoYe0jWyZMmVJlCRJhmyhkC27mfk9Xufx/czjzrh35t7PuSZ3Pq/zeMw/7uf9uZ/zPJ/79D7nc875RKWmpqZCRQREQAQigECUhBUBraRLFAERMAQkLN0IIiACEUNAwoqYptKFioAISFi6B0RABCKGgIQVMU2lCxUBEZCwdA+IgAhEDAEJK2KaShcqAiIgYekeEAERiBgCElbENJUuVAREQMLSPSACIhAxBCSsiGkqXagIiICEpXtABEQgYghIWBHTVLpQERABCUv3gAiIQMQQkLAipql0oSIgAhKW7gEREIGIISBhRUxT6UJFQAQkLN0DIiACEUNAwoqYptKFioAISFi6B0RABAISmDFjBjp37oyrrroKW7duRcmSJdMde9ddd+HQoUP46aefQqbYqVMnrFixAjt37gw6VsIKGpUOFAHvEXCExZp36NABs2fPDpuwtm/fjuPHj6NatWpBg5WwgkalA0XAewQcYTVt2hTLli3D999/j6pVq6aBsMmw3NCUsNxQU4wIeISAI6wvvvgCDz74IKpXr44lS5ZkKiy+OXDy5MmYOnWq6UbmypULDRs2xKhRo1C6dOm0WH9dwqNHj+LZZ5/FRx99hHPnzqFBgwZ48803UaZMGQwZMkRvzfHIfadqioArAo6w1q1bh9WrV+Ppp59GQkIC7rnnHnM+fxlWt27dwLinnnoKjRs3xl9//YUXX3wRR44cwcaNG3HdddeZ2IzCSklJMYJav349hg4dauS4Zs0avPvuu9i2bZuE5aoFFSQCHiLgK6wqVarg5ptvRoECBfDtt98iKirqImF98803qFOnDsaOHYtnnnkmjdTevXtRrlw59OrVC6+++qpfYS1atAj33Xefyc66d++eFjty5Ej0799fwvLQfaeqioArAr7CqlmzJubOnYuHHnoI8+bNM13EjBnWoEGDMHz4cBw4cMCIzbfUq1cPzKLWrl3rV1h9+/Y13cbDhw+ni921axduvPFGCctVCypIBDxEIKOwOD5FcR07dgxbtmwxXT7faQ2PPfYYpk+fHpAQx7D4dNBfl/DRRx/FzJkzcf78+XTxZ86cwdVXXy1heei+U1VFwBWBjMLiSZYvX25ENWHCBMyfPz+dsNh1Y5fv66+/NnO3Mhb+2y233BJShsV5WqVKlZKwXLWggkTAQwT8CYvVv/fee80AeokSJcAMyJk4umrVKtx55514//330bZt20xJZRx0d8awJk2ahB49emgMy0P3maoqAmEhEEhYGzZsQI0aNcAuYqVKldLNdH/88cfNk72ePXuifv36uOaaa7B//36sXLnSZFeOjPw9JeTxnOvFKQw8P58Szpo1C0lJSRg2bJimNYSlVXUSEcihBAIJi9V9+OGHMWfOnIuExc/eeecdTJkyxYiMA+1FixbFHXfcYaY6UET+xrD4b5z64DsPizEvvfQSateujddff13CyqH3maolAjmGAKVIObK7qZnuOaZZVRERiHwCnDbx+++/m65jdHQ0OK9r9OjRZr1hYmKihBX5TawaiEDOIbBw4UIzy51jVidPnsT111+Pli1b4uWXX0ZsbKyElXOaWjURgZxPQF3CnN/GqqEI5BgCElaOaUrvVYRr2YIpX375pVlC4rawi8JH6nyEr3JpCXBS6gsvvGDmeOXOnRv333+/Wa5TpEgR88US1qXlr7NfQgIckPUtfPxNOXErFN9SsWJFM/7htnDhLv/4aF3l0hHgoHqjRo3MAmjO4frzzz/B9YX58+c3OzhwlryEden468zZTIATET/44AP8/fffmX7zqVOnzP/eXi7Jycm4cOGC3+Uz/xSXWrVqmYF2ZldXXHGFuQxuacO5WM7sdwnrn2odfW/YCfgTlrObAG/4fv364YcffsADDzxgdhvg8pG3334bmzZtAjeO444ALVq0MF0Szs52ir8uIY+tXLkynnzySQwYMMAsBOZ+588//zy6dOmSZd24hcpbb71lFgKza1usWDG0bt3a7HTgFD7eZ1d08eLF+OOPP1CoUCHUrVsXEydOTNtTavfu3eb7uRsoFyRzcTEXEffu3dtMC2Bx1uJxjR83xWOd9+zZAz6R406izF64XxVnolPm3EKGawKzWlqTZSVDOIB1LV68OEaMGGHaybeUL1/esGUdJawQoOrQy5tAIGFRSBQQZULJ8IfMJSB8VJ4nTx6zTxM//+WXX8zCXcrIt1sZSFjMUtjV5A+Mm9JxlwIuBmbXhucPVCjL9u3bm72hmjdvbq6Hj/F//vlnM5ubhT/g2267zexcQCFx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\" width=\"300\">"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\PC\\Pytho\\Applied-Machine-Learning-in-Python-master\\adspy_shared_utilities.py:242: MatplotlibDeprecationWarning: shading='flat' when X and Y have the same dimensions as C is deprecated since 3.3.  Either specify the corners of the quadrilaterals with X and Y, or pass shading='auto', 'nearest' or 'gouraud', or set rcParams['pcolor.shading'].  This will become an error two minor releases later.\n",
      "  plt.pcolormesh(xx, yy, Z, cmap=cmap_light)\n"
     ]
    }
   ],
   "source": [
    "from adspy_shared_utilities import plot_two_class_knn\n",
    "\n",
    "X_train, X_test, y_train, y_test = train_test_split(X_C2, y_C2,\n",
    "                                                   random_state=0)\n",
    "\n",
    "plot_two_class_knn(X_train, y_train, 1, 'uniform', X_test, y_test)\n",
    "plot_two_class_knn(X_train, y_train, 3, 'uniform', X_test, y_test)\n",
    "plot_two_class_knn(X_train, y_train, 11, 'uniform', X_test, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "123d4c10",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "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.8.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
