{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "c5c330d7",
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib notebook\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "0718922c",
   "metadata": {},
   "outputs": [],
   "source": [
    "fruit =  pd.read_table('Source/readonly/fruit_data_with_colors.txt')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "697f2704",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>fruit_label</th>\n",
       "      <th>fruit_name</th>\n",
       "      <th>fruit_subtype</th>\n",
       "      <th>mass</th>\n",
       "      <th>width</th>\n",
       "      <th>height</th>\n",
       "      <th>color_score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>apple</td>\n",
       "      <td>granny_smith</td>\n",
       "      <td>192</td>\n",
       "      <td>8.4</td>\n",
       "      <td>7.3</td>\n",
       "      <td>0.55</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>apple</td>\n",
       "      <td>granny_smith</td>\n",
       "      <td>180</td>\n",
       "      <td>8.0</td>\n",
       "      <td>6.8</td>\n",
       "      <td>0.59</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>apple</td>\n",
       "      <td>granny_smith</td>\n",
       "      <td>176</td>\n",
       "      <td>7.4</td>\n",
       "      <td>7.2</td>\n",
       "      <td>0.60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2</td>\n",
       "      <td>mandarin</td>\n",
       "      <td>mandarin</td>\n",
       "      <td>86</td>\n",
       "      <td>6.2</td>\n",
       "      <td>4.7</td>\n",
       "      <td>0.80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2</td>\n",
       "      <td>mandarin</td>\n",
       "      <td>mandarin</td>\n",
       "      <td>84</td>\n",
       "      <td>6.0</td>\n",
       "      <td>4.6</td>\n",
       "      <td>0.79</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   fruit_label fruit_name fruit_subtype  mass  width  height  color_score\n",
       "0            1      apple  granny_smith   192    8.4     7.3         0.55\n",
       "1            1      apple  granny_smith   180    8.0     6.8         0.59\n",
       "2            1      apple  granny_smith   176    7.4     7.2         0.60\n",
       "3            2   mandarin      mandarin    86    6.2     4.7         0.80\n",
       "4            2   mandarin      mandarin    84    6.0     4.6         0.79"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "fruit.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "461e0746",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "809b9e0b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{1: 'apple', 2: 'mandarin', 3: 'orange', 4: 'lemon'}"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#mapping fruit name \n",
    "#create a dict with fruit_label as keys and name as values\n",
    "\n",
    "fruit_dict= dict(zip(fruit.fruit_label, fruit.fruit_name))\n",
    "fruit_dict"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d56bae34",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "2c251357",
   "metadata": {},
   "outputs": [],
   "source": [
    "#examine/plots"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "629dee49",
   "metadata": {},
   "outputs": [],
   "source": [
    "from matplotlib import cm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "39edde65",
   "metadata": {},
   "outputs": [],
   "source": [
    "features= fruit[['mass', 'width','height']]\n",
    "label= fruit['fruit_label']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "9c16dcfa",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "7e9c1b06",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "86bc07e7",
   "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,iVBORw0KGgoAAAANSUhEUgAAAyAAAAMgCAYAAADbcAZoAAAgAElEQVR4Xuy9CZiUxbn2f/dMz74vLCIg4oYgYowiuAQ0ioJoFJGYGPf8E3OM5tNE40nyN+p3osTPYxaVmM8kh8SYaBL3Je57EpVFEQWD7AiyM/u+fNdd0z0MM90z3e8279t913VxATNvPVX1q6ru536r6qlQZ2dnJ5REQAREQAREQAREQAREQAREwAMCIQkQDyirCBEQAREQAREQAREQAREQAUNAAkQDQQREQAREQAREQAREQAREwDMCEiCeoVZBIiACIiACIiACIiACIiACEiAaAyIgAiIgAiIgAiIgAiIgAp4RkADxDLUKEgEREAEREAEREAEREAERkADRGBABERABERABERABERABEfCMgASIZ6hVkAiIgAiIgAiIgAiIgAiIgASIxoAIiIAIiIAIiIAIiIAIiIBnBCRAPEOtgkRABERABERABERABERABCRANAZEQAREQAREQAREQAREQAQ8IyAB4hlqFSQCIiACIiACIiACIiACIiABojEgAiIgAiIgAiIgAiIgAiLgGQEJEM9QqyAREAEREAEREAEREAEREAEJEI0BERABERABERABERABERABzwhIgHiGWgWJgAiIgAiIgAiIgAiIgAhIgGgMiIAIiIAIiIAIiIAIiIAIeEZAAsQz1CpIBERABERABERABERABERAAkRjQAREQAREQAREQAREQAREwDMCEiCeoVZBIiACIiACIiACIiACIiACEiAaAyIgAiIgAiIgAiIgAiIgAp4RkADxDLUKEgEREAEREAEREAEREAERkADRGBABERABERABERABERABEfCMgASIZ6hVkAiIgAiIgAiIgAiIgAiIgASIxoAIiIAIiIAIiIAIiIAIiIBnBCRAPEOtgkRABERABERABERABERABCRANAZEQAREQAREQAREQAREQAQ8IyAB4hlqFSQCIiACIiACIiACIiACIiABojEgAiIgAiIgAiIgAiIgAiLgGQEJEM9QqyAREAEREAEREAEREAEREAEJEI0BERABERABERABERABERABzwhIgHiGWgWJgAiIgAiIgAiIgAiIgAhIgGgMiIAIiIAIiIAIiIAIiIAIeEZAAsQz1CpIBERABERABERABERABERAAkRjQAREQAREQAREQAREQAREwDMCEiCeoVZBIiACIiACIiACIiACIiACEiAaAyIgAiIgAiIgAiIgAiIgAp4RkADxDLUKEgEREAEREAEREAEREAERkADRGBABERABERABERABERABEfCMgASIZ6hVkAiIgAiIgAiIgAiIgAiIgASIxoAIiIAIiIAIiIAIiIAIiIBnBCRAPEOtgkRABERABERABERABERABCRANAZEQAREQAREQAREQAREQAQ8IyAB4hlqFSQCIiACIiACIiACIiACIiABojEgAiIgAiIgAiIgAiIgAiLgGQEJEM9QqyAREAEREAEREAEREAEREAEJEI0BERABERABERABERABERABzwhIgHiGWgWJgAiIgAiIgAiIgAiIgAhIgGgMiIAIiIAIiIAIiIAIiIAIeEZAAsQz1CpIBERABERABERABERABERAAkRjQAREQAREQAREQAREQAREwDMCEiCeoVZBIiACIiACIiACIiACIiACEiAaAyIgAiIgAiIgAiIgAiIgAp4RkADxDLUKEgEREAEREAEREAEREAERkADRGBABERABERABERABERABEfCMgASIZ6hVkAiIgAiIgAiIgAiIgAiIgASIxoAIiIAIiIAIiIAIiIAIiIBnBCRAPEOtgkRABERABERABERABERABCRANAZEQAREQAREQAREQAREQAQ8IyAB4hlqFSQCIiACIiACIiACIiACIiABojEgAiIgAiIgAiIgAiIgAiLgGQEJEM9QqyAREAEREAEREAEREAEREAEJEI0BERABERABERABERABERABzwhIgHiGWgWJgAiIgAiIgAiIgAiIgAhIgGgMiIAIiIAIiIAIiIAIiIAIeEZAAsQz1CpIBERABERABERABERABERAAkRjQAREQAREQAREQAREQAREwDMCEiCeoVZBIiACIiACIiACIiACIiACEiAaAyIgAiIgAiIgAiIgAiIgAp4RkADxDLUKEgEREAEREAEREAEREAERkADRGBABERABERABERABERABEfCMgASIZ6hVkAiIgAiIgAiIgAiIgAiIgASIxoAIiIAIiIAIiIAIiIAIiIBnBCRAPEOtgkRABERABERABERABERABCRANAZEQAREQAREQAREQAREQAQ8IyAB4hlqFSQCIiACIiACIiACIiACIiABojEgAiIgAiIgAiIgAiIgAiLgGQEJEM9QqyAREAEREAEREAEREAEREAEJEI0BERABERABERABERABERABzwhIgHiGWgWJgAiIgAiIgAiIgAiIgAhIgGgMiIAIiIAIiIAIiIAIiIAIeEZAAsQz1CpIBERABERABERABERABERAAkRjQAREQAREQAREQAREQAREwDMCEiCeoVZBIiACIiACIiACIiACIiACEiAaAyIgAiIgAiIgAiIgAiIgAp4RkADxDLUKEgEREAEREAEREAEREAERkADRGBABERABERABERABERABEfCMgASIZ6hVkAiIgAiIgAiIgAiIgAiIgASIxoAIiIAIiIAIiIAIiIAIiIBnBCRAPEOtgkRABERABERABERABERABCRANAZEQAREQAREQAREQAREQAQ8IyAB4hlqFSQCIiACIiACIiACIiACIiABojEgAiIgAiIgAiIgAiIgAiLgGQEJEM9QqyAREAEREAEREAEREAEREAEJEI0BERABERABERABERABERABzwhIgHiGeuCCOjo6sGXLFhQVFSEUCg2cQU+IgAgYAu3t7Vi9ejUOPvhgZGZmiooIiEACBDRvEoCkR0QgBoHOzk7U1tZixIgRyMjIECMLBCRALEBzK8unn36KUaNGuWVedkVABERABERABERABBwisGnTJowcOdIha+llRgLER/1dXV2N0tJScEAXFxf7qGaqigj4mwDF+4QJEzR3/N1Nqt0gEGir3oWaxc+gddfmrtJDQPaIQ1Dy+VnYsnO35s0g9ImK7CLQ2daKmvdfRPP65ejs6DA/C5dUoujzM5Fd6W+nvqamxrwwrqqqQklJibrUAgEJEAvQ3MrCAc2BTCEiAeIWZdlNRQLR1UPNnVTsXbXJKoGOpgbsfHYBOprq+pjIKh+BhgkzMXr0aH3nWAWsfLYI7HnzYTRvWtnHRiicjYozvolwcYUt+25mlr9mn64EiH2GjlnQgHYMpQylGQEJkDTrcDU3IQJ1H72FumUvxX224bAv4qBjviABkhBNPeQkgbbqHdj5zL1xTeYfciyKjz3TySIdtSV/zT5OCRD7DB2zoAHtGEoZSjMCEiBp1uEp3tzO9ja011UhlJOHzNwCy63d/coDaNm6Jm7+qrJDcPisr0mAWCasjFYJ1P/7HdQu+bvJzu1XnS1NQGYYGVnZ5meZRRUYctbVVs27nk/+mn3EEiD2GTpmQQPaMZQylGYEJEDS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\" width=\"800\">"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cmap= cm.get_cmap('gnuplot')\n",
    "\n",
    "scatter = pd.plotting.scatter_matrix(features, c= label ,marker= 'o', figsize=(8,8), cmap=cmap)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "3c5bf831",
   "metadata": {},
   "outputs": [],
   "source": [
    "#3d plot\n",
    "\n",
    "from mpl_toolkits.mplot3d import Axes3D"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "7d6806b1",
   "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,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAgAElEQVR4Xuy9B9RfRZ3/P6kkAZJQEhKkhV4UXOm9i7AqRQHL/gQUQSyrLiC7sLqyCOrqcd3fLvXH+QPCoRxUUBDpoKACoiJIE1gTSkJoIZBG6v+8Bj9xcnO/3ztz21O+7znnOU/guffOzHvm3nnP+1NmyLJly5Y5FSEgBISAEBACQkAICIGeQWCICGDPjLU6KgSEgBAQAkJACAgBj4AIoCaCEBACQkAICAEhIAR6DAERwB4bcHVXCAgBISAEhIAQEAIigJoDQkAICAEhIASEgBDoMQREAHtswNVdISAEhIAQEAJCQAiIAGoOCAEhIASEgBAQAkKgxxAQAeyxAVd3hYAQEAJCQAgIASEgAqg5IASEgBAQAkJACAiBHkNABLDHBlzdFQJCQAgIASEgBISACKDmgBAQAkJACAgBISAEegwBEcAeG3B1VwgIASEgBISAEBACIoCaA0JACAgBISAEhIAQ6DEERAB7bMDVXSEgBISAEBACQkAIiABqDggBISAEhIAQEAJCoMcQEAHssQFXd4WAEBACQkAICAEhIAKoOSAEhIAQEAJCQAgIgR5DQASwxwZc3RUCQkAICAEhIASEgAig5oAQEAJCQAgIASEgBHoMARHAHhtwdVcICAEhIASEgBAQAiKAmgNCQAgIASEgBISAEOgxBEQAe2zA1V0hIASEgBAQAkJACIgAag4IASEgBISAEBACQqDHEBAB7LEBV3eFgBAQAkJACAgBISACqDkgBISAEBACQkAICIEeQ0AEsMcGXN0VAkJACAgBISAEhIAIoOaAEBACQkAICAEhIAR6DAERwB4bcHVXCAgBISAEhIAQEAIigJoDQkAICAEhIASEgBDoMQREAHtswNVdISAEhIAQEAJCQAiIAGoOCAEhIASEgBAQAkKgxxAQAeyxAVd3hYAQEAJCQAgIASEgAqg5IASEgBAQAkJACAiBHkNABLDHBlzdFQJCQAgIASEgBISACKDmgBAQAkJACAgBISAEegwBEcAeG3B1VwgIASEgBISAEBACIoCaA0JACAgBISAEhIAQ6DEERAB7bMDVXSEgBISAEBACQkAIiABqDggBISAEhIAQEAJCoMcQEAHssQFXd4WAEBACQkAICAEhIAKoOSAEhIAQEAJCQAgIgR5DQASwxwZc3RUCQkAICAEhIASEgAig5oAQEAJCQAgIASEgBHoMARHAHhtwdVcICAEhIASEgBAQAiKAmgNCQAgIASEgBISAEOgxBEQAe2zA1V0hIASEgBAQAkJACIgAag4IASEgBISAEBACQqDHEBAB7LEBV3eFgBAQAkJACAgBISACqDkgBISAEBACQkAICIEeQ0AEsMcGXN0VAkJACAgBISAEhIAIoOaAEBACQkAICAEhIAR6DAERwB4bcHVXCAgBISAEhIAQEAIigJoDQkAICAEhIASEgBDoMQREAHtswNVdISAEhIAQEAJCQAiIAGoOCAEhIASEgBAQAkKgxxAQAeyxAVd3hYAQEAJCQAgIASEgAqg5IASEgBAQAkJACAiBHkNABLDHBlzdFQJCQAgIASEgBISACKDmgBAQAkJACAgBISAEegwBEcAeG3B1VwgIASEgBISAEBACIoCaA0JACAgBISAEhIAQ6DEERAB7bMDVXSEgBISAEBACQkAIiABqDggBISAEhIAQEAJCoMcQEAHssQFXd4WAEBACQkAICAEhIAKoOSAEhIAQEAJCQAgIgR5DQASwxwZc3RUCQkAICAEhIASEgAig5oAQEAJCQAgIASEgBHoMARHAHhtwdVcICAEhIASEgBAQAiKAmgNCQAgIASEgBISAEOgxBEQAe2zA1V0hIASEgBAQAkJACIgAag4IASEgBISAEBACQqDHEBAB7LEBV3eFgBAQAkJACAgBISACqDkgBISAEBACQkAICIEeQ0AEsMcGXN0VAkJACAgBISAEhIAIoOaAEBACQkAICAEhIAR6DAERwB4bcHVXCAgBISAEhIAQEAIigJoDQkAICAEhIASEgBDoMQREAHtswNVdISAEhIAQEAJCQAiIAGoOCAEhIASEgBAQAkKgxxAQAeyxAVd3hYAQEAJCQAgIASEgAqg5IASEgBAQAkJACAiBHkNABLDHBlzdFQJCQAgIASEgBISACKDmgBAQAkJACAgBISAEegwBEcAeG3B1VwgIASEgBISAEBACIoCaA0JACAgBISAEhIAQ6DEERAB7bMDVXSHQHxFYtmyZW7JkiW/asGHD3JAhQ/pjM9UmISAEhMCgQUAEcNAMpToiBAYmAkuXLnWLFi1y8+fPdxDBoUOHuhEjRngiOHz4cP/fIoQDc2zVaiEgBPovAiKA/Xds1DIh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3TqIwaO8TO/evfPq1lHIiigIjfikOPHDDz8cbZZvIWvTz4iACBybgASgTogIVCAB1UxLZ9NJpGisBRiJFsQGPvrooyYG6SdLlxgSSBCF9JFNciA2iUmkhA0CNG03dJJr07VEQASaJiAB2DQjfUIEyoqAaqbFv53s0fPPP18nBinNgnsYyyDu2tatWzerMPOhQ4dMWH71q181N3Sx3c7x74BmKALlT0ACsPz3WCsUgXoEVDOttA4EXUj+9re/mRgko5had7iSEXC4b9u0aZOXGKRuYd++fV2rVq0cRchPPPHE0gKi2YqACCRCQAIwEYy6iAiIQDaBw4cPWyuxJUuWmDvz5JNPdldddZWbOHFiXp0yRPb/CSAGd+/ebS5bvl544QXXrVs3swzizqWf77FatpFwQlcPruPrFIqvCIhAZRKQAKzMfdeqRSA4ATJd77zzTrdo0SL3ne98xz333HPu6quvtr6yN998c/D7l/sNEHH79u0zIYhlkCQTik0jBvlCcGeKQeoSDho0yL3//vtu1apV7itf+Uq5I9L6REAEjkFAAlDHQwREIAiBSy+91J100kluwYIFddfv16+fZbY++OCDQe5ZqRdFDJJg4rOJn3nmGUcbOt/OjX0YOnSoo+QLIQDE/mmIgAhUNgEJwMref61eBIIRmDlzpqPuHYKD/qz0kaW0yV133eUGDx4c7L6VfmHE4P79+y2TGMvg008/bRnEuIcRhsQMaoiACIiABKDOgAiIQBACCJEJEya4WbNmWWcJat7hFq6urg5yP130aALswYEDB9y4cePcL3/5Syv2rCECIiACEJAA1DkQAREIQuChhx5yY8eOdbNnz7YYQMqajB492s2ZM8dVVVUFuacuKgIiIAIikBsBCcDcOOlTIiACeRKg4PH48ePdqFGj6n6SBBDajdEGTUMEREAERCA9AhKA6bHXnUWgrAl87Wtfs4zfkSNH1q1zxowZrra21kqZaIiACIiACKRHQAIwPfa6swiUNQFq/q1du9bV1NSYC3jnzp1uxIgR7pprrrG4QA0REAEREIH0CEgApsdedxaBsibw73//202aNMmyUf/xj39Yz1myfydPnhy072z2fX/wgx+4u+++28qiaIiACIiACHxGQAJQJ0EERKCsCFDs+MUXX3T333+/iU5iDilIvWvXLte2bduyWmvMi3n77bct+3jlypXugw8+sFJA1ITs0KFDzNPW3ESgYghIAFbMVmuhIlD+BBAa1LxbtmyZ9cn14/vf/76jMDUxiRrhCfzrX/9yWF7pWUwMKDUI9+7d604//XR31llnhZ+A7iACItAkAQnAJhHpAyJQegSIvzt48KB77LHH6k1+3bp19lDmAV2O3SBw/9LijNjDHj161K2dFmmtWrVyrF8jPAGyvzdt2uQ2bNgQ/ma6gwiIQEEEJAALwqYfEoG4CVSqAGRXunTpYjGGf/zjH60V3dKlS92wYcNcu3bt3N///ve4N65MZnf22We7Pn36uLfeesutX7/eXO833niju+6668pkhVqGCJQ+AQnA0t9DrUAEjiJQyQIQVyOZxrRAowNJ+/btLf5sx44dFgeoEZ7ACSecYDe55ZZb3IABA9zWrVutCDgZ4YhxDREQgfQJSACmvweagQgkTqCSBaCH+f7777tDhw65k08+2ZEY8t5777nly5cnzloXPJoAFtiOHTu6zZs31/3jTTfd5LZt22b9iDVEQATSJyABmP4eaAYikDgBBCDZr94S429AP94PP/ywbGMAGwJJvOMZZ5zhbr/9dqtDqBGewGmnneZ69erlHnjggbqbkZVNEg7ZwRoiIALpE5AATH8PNAMRSJwAApAHLQ/dzLFlyxZ35ZVXlrUAXL16tTty5Ij79re/7V555RXrR0wCyMaNG13Lli0TZ60LHk1gyJAh7s0336yXBDJmzBjH+cu0CoqdCIhAegQkANNjrzuLQDAClewCfuSRR1x1dbUlILRp08b169fPTZ8+3bVu3ToYb124PgFcvSTjTJ061Q0cONBiAEkAmT9/vhs6dKhwiYAIREBAAjCCTdAURCBpApUsAJNmmX09kktmz57ttm/f7t555x3rdPLTn/607mNYHxE+iB3cz+edd5679957rR1eJY0nnnjChPiePXvMBU9CiLKAK+kEaK2xE5AAjH2HND8RKICABGAB0HL8ETpbUOOO7GKsi9kCkD7HWBwXLlxo2cfEvSEaKUFDkWoNERABEYiBgARgDLugOYhAwgQkABMG2sjlWrRoUU8AYv2j/RwlT2iDxvjoo4+sHiHC8Prrry/OxHQXERABEWiCgASgjogIiIAIFEggWwDu27fPWp1Rc5BWcSdPoQAABPFJREFUaH785Cc/sc4rixYtKvBO+jEREAERSJaABGCyPHU1ERCBCiKQLQDJcO3atatlYGMJ9IPyM6+//rojQ1lDBERABGIgIAEYwy5oDiIgAiVJoDEBuH//fitA7QfJD5RFWbVqVUmuU5MWAREoPwISgOW3p1qRCIhAkQjIBVwk0LqNCIhA4gQkABNHqguKgAhUCoHGkkAoenzrrbcaho8//th9/etfVxJIpRwKrVMESoSABGCJbJSmKQIiEAcBegrTYYRBosecOXNc9+7drej0qaeeakJvxowZrra21rVr187ddtttbt26dSoDE8f2aRYiIAKfE5AA1FEQAREQgTwIIOYQfNmjqqrKav/5QtA1NTX1CkGfc845edxFHxUBERCBsAQkAMPy1dVFQAREQAREQAREIDoCEoDRbYkmJAIiIAIiIAIiIAJhCUgAhuWrq4uACIiACIiACIhAdAQkAKPbEk1IBERABERABERABMISkAAMy1dXFwEREAEREAEREIHoCEgARrclmpAIiIAIiIAIiIAIhCUgARiWr64uAiIgAiIgAiIgAtERkACMbks0IREQAREQAREQAREIS0ACMCxfXV0EREAEREAEREAEoiMgARjdlmhCIiACIiACIiACIhCWgARgWL66ugiIgAiIgAiIgAhER0ACMLot0YREQAREQAREQAREICwBCcCwfHV1ERABERABERABEYiOgARgdFuiCYmACIiACIiACIhAWAISgGH56uoiIAIiIAIiIAIiEB0BCcDotkQTEgEREAEREAEREIGwBCQAw/LV1UVABERABERABEQgOgISgNFtiSYkAiIgAiIgAiIgAmEJSACG5auri4AIiIAIiIAIiEB0BCQAo9sSTUgEREAEREAEREAEwhKQAAzLV1cXAREQAREQAREQgegISABGtyWakAiIgAiIgAiIgAiEJSABGJavri4CIiACIiACIiAC0RGQAIxuSzQhERABERABERABEQhLQAIwLF9dXQREQAREQAREQASiIyABGN2WaEIiIAIiIAIiIAIiEJaABGBYvrq6CIiACIiACIiACERHQAIwui3RhERABERABERABEQgLAEJwLB8dXUREAEREAEREAERiI6ABGB0W6IJiYAIiIAIiIAIiEBYAhKAYfnq6iIgAiIgAiIgAiIQHQEJwOi2RBMSAREQAREQAREQgbAEJADD8tXVRUAEREAEREAERCA6AhKA0W2JJiQCIiACIiACIiACYQlIAIblq6uLgAiIgAiIgAiIQHQEJACj2xJNSAREQAREQAREQATCEpAADMtXVxcBERABERABERCB6AhIAEa3JZqQCIiACIiACIiACIQlIAEYlq+uLgIiIAIiIAIiIALREZAAjG5LNCEREAEREAEREAERCEtAAjAsX11dBERABERABERABKIjIAEY3ZZoQiIgAiIgAiIgAiIQloAEYFi+uroIiIAIiIAIiIAIREdAAjC6LdGEREAEREAEREAERCAsAQnAsHx1dREQAREQAREQARGIjoAEYHRbogmJgAiIgAiIgAiIQFgCEoBh+erqIiACIiACIiACIhAdAQnA6LZEExIBERABERABERCBsAQkAMPy1dVFQAREQAREQAREIDoCEoDRbYkmJAIiIAIiIAIiIAJhCUgAhuWrq4uACIiACIiACIhAdAT+D1Xik7IE1KpKAAAAAElFTkSuQmCC\" width=\"640\">"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig= plt.figure()\n",
    "ax= fig.add_subplot(111, projection='3d')\n",
    "ax.scatter(features.height, features.width, features.mass, c= label,s=70, marker= 'o')\n",
    "ax.set_xlabel('H')\n",
    "ax.set_ylabel('W')\n",
    "ax.set_zlabel('M')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "20ec81cf",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "x_train, x_test,y_train,y_test= train_test_split(features, label, random_state=42)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "ca03f73e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1, 2, 3, 4], dtype=int64)"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "label.unique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "f5d01062",
   "metadata": {},
   "outputs": [],
   "source": [
    "#create classifier\n",
    "\n",
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "clfr= KNeighborsClassifier(n_neighbors=5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "a1e92753",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "KNeighborsClassifier()"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "clfr.fit(x_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "796b6215",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.5333333333333333"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "clfr.score(x_test, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "27d4e7fe",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'apple'"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "prediction=clfr.predict([[180,15,7.5]])\n",
    "fruit_dict[prediction[0]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3a5ccbb6",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "98d2078e",
   "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,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAgAElEQVR4Xu3dC3RV9ZXH8Y10aAAhPKqCIVAEVEKwECgQECiM42BnMICuCgwoCGi1iwW0MyIVkJSXQDs8agkQBnnJY0CQOgVapwzIs3bUUCVA5aUSAqhIBpRHIZm1z+q9zeNiLtm599xzz/es5Wol53/POZ//77o355UqRUVFRcKCAAIIIIAAAggg4BuBKjSAvplrDhQBBBBAAAEEEHAEaAAJAgIIIIAAAggg4DMBGkCfTTiHiwACCCCAAAII0ACSAQQQQAABBBBAwGcCNIA+m3AOFwEEEEAAAQQQoAEkAwgggAACCCCAgM8EaAB9NuEcLgIIIIAAAgggQANIBhBAAAEEEEAAAZ8J0AD6bMI5XAQQQAABBBBAgAaQDCCAAAIIIIAAAj4ToAH02YRzuAgggAACCCCAAA0gGUAAAQQQQAABBHwmQAPoswnncBFAAAEEEEAAARpAMoAAAggggAACCPhMgAbQZxPO4SKAAAIIIIAAAjSAZAABBBBAAAEEEPCZAA2gzyacw0UAAQQQQAABBGgAyQACCCCAAAIIIOAzARpAn004h4sAAggggAACCNAAkgEEEEAAAQQQQMBnAjSAPptwDhcBBBBAAAEEEKABJAMIIIAAAggggIDPBGgAfTbhHC4CCCCAAAIIIEADSAYQQAABBBBAAAGfCdAA+mzCOVwEEEAAAQQQQIAGkAwggAACCCCAAAI+E6AB9NmEc7gIIIAAAggggAANIBlAAAEEEEAAAQR8JkAD6LMJ53ARQAABBBBAAAEaQDKAAAIIIIAAAgj4TIAG0GcTzuEigAACCCCAAAI0gGQAAQQQQAABBBDwmQANoM8mnMNFAAEEEEAAAQRoAMkAAggggAACCCDgMwEaQJ9NOIeLAAIIIIAAAgjQAJIBBBBAAAEEEEDAZwI0gD6bcA4XAQQQQAABBBCgASQDCCCAAAIIIICAzwRoAH024RwuAggggAACCCBAA0gGEEAAAQQQQAABnwnQAPpswjlcBBBAAAEEEECABpAMIIAAAggggAACPhOgAfTZhHO4CCCAAAIIIIAADSAZQAABBBBAAAEEfCZAA+izCedwEUAAAQQQQAABGkAygAACCCCAAAII+EyABtBnE87hIoAAAggggAACNIBkAAEEEEAAAQQQ8JkADaDPJpzDRQABBBBAAAEEaADJAAIIIIAAAggg4DMBGkCfTTiHiwACCCCAAAII0ACSAQQQQAABBBBAwGcCNIA+m3AOFwEEEEAAAQQQoAEkAwgggAACCCCAgM8EaAB9NuEcLgIIIIAAAgggQANIBhBAAAEEEEAAAZ8J0AAaJrywsFBOnToltWrVkipVqhg+iaEIIIAAAgggEC2BoqIiuXDhgtx5551yyy23RGuzMbUdGkDDdJw8eVKSk5MNn8BQBBBAAAEEEHBL4JNPPpFGjRq5tXlXt0sDaOAvKCiQOnXqiAaodu3ahk9iKAIIIIAAAghES+D//u//nBM458+fl8TExGhtNqa2QwNomA4NkAZHG0EaQAMkQxFAAAEEEIiiAPVbhAbQEDgCZMBjKAIIIIAAAi4JUL9pAE3RI0AmPgYjgAACCCDgigD1mwbQFDwCZOJjMAIIIIAAAq4IUL9pAE3BI0AmPgYjgAACCCDgigD1mwbQFDwCZOJjMAIIIIAAAq4IUL9pAE3BI0AmPgYjgAACCCDgigD1mwbQFDwCZOJjMAIIIIAAAq4IUL9pAE3BI0AmPgYjgAACCCDgigD1mwbQFDwCZOJjcCmB64VF8vbxc3L2wmW5vVaCdGhaT6rewu+YJigIIIBAZQtQv2kATZkiQCY+BhcT2PpBvmS+kSv5BZeDf9owMUFe7J0ivVIbYoUAAgggUIkC1G8aQFOcCJCJj8F/FdDm75mV70pRKZHAub+sQWk0gaQFAQQQqEQB6jcNoClOBMjEx2AR0cu+98/YVuLMX3EYbQIbJCbIrrE9uRxMYhBAAIFKEqB+0wCaokSATHwMFpG9Rz+XAdn7yrVYPaKTpDerX+56rIAAAgggUL4A9ZsGsPyUfM0aBMjEx2AR2ZSTJ6PW5JRrMbd/G8lok1TueqyAAAIIIFC+APWbBrD8lNAAmowY/PUCnAEkIQgggED0BWgAaQBNqSNAJj4GF7sH8HTB5TIPgSgQ9wASEwQQQKDyBajfNICmVBEgEx+D/yoQeApY/7X4k8A8BUxEEEAAgcgIUL9pAE3JIkAmPgYXE+A9gMQBAQQQiJ4A9ZsG0JQ2AmTiY3ApAX4TCJFAAAEEoiNA/aYBNCWNAJn4GIwAAggggIArAtRvGkBT8AiQiY/BCCCAAAIIuCJA/aYBNAWPAJn4GIwAAggggIArAtRvGkBT8AiQiY/BCCCAAAIIuCJA/aYBNAWPAJn4GIwAAggggIArAtRvGkBT8AiQiY/BCCCAAAIIuCJA/aYBNAWPAJn4GIwAAggggIArAtRvDzWA8+fPl1mzZkl+fr60atVK5syZI127dr1hcK5cuSI/+9nPZOXKlXL69Glp1KiRvPDCC/Lkk086Y5YuXSpDhw4tM/7SpUuSkJAQViAJUFhMrIQAAggggEBMCVC/PdIArl27VgYPHizaBHbp0kUWLlwoixcvltzcXGncuHHIUGVkZMiZM2dkypQp0rx5czl79qxcu3ZNOnfuHGwAR40aJYcPHy4xvkGDBmGHlACFTcWKCCCAAAIIxIwA9dsjDWDHjh0lLS1NsrKyguFp2bKl9OnTR6ZPn14mUFu3bpX+/fvLsWPHpF69eiEDp2cAR48eLefPn69wIAlQhekYiAACCCCAgGsC1G8PNIBXr16VGjVqyLp166Rv377BsOjZu5ycHNmxY0eZAD377LPy5z//Wdq3by8rVqyQmjVrysMPPyyTJ0+W6tWrB88ADh8+XJKSkuT69evSpk0b5+dt27a9YSD1srL+E1g0QMnJyVJQUCC1a9d2LchsGAEEEEAAAQTCF6AB9EADeOrUKadJ2717d/DyrU7xtGnTZNmyZWUu4erPevXqJdu3b5cHHnhAJk6cKJ999ploU9izZ09ZsmSJk5B9+/bJkSNHpHXr1qJBmDt3rmzevFn2798vLVq0CJmiSZMmSWZmZpmf0QCG/6VjTQQQQAABBNwWoAH0UAO4Z88eSU9PD2Zm6tSpztm9Q4cOlcnRgw8+KDt37nQe/khMTHR+vmHDBnn00Uflyy+/DJ4FLD6wsLDQuczcrVs3mTdvXshscgbQ7a8s20cAAQQQQMAuQAPogQawIpeAn3jiCeeMoZ7hCywHDx6UlJQU59Lwjc7wjRgxQk6ePClbtmwJK10EKCwmVkIAAQQQQCCmBKjfHmgANTH6EEi7du2cp4ADizZz+qRvqIdAFi1a5DzgoU/+3nrrrc6QTZs2Sb9+/eTixYshzwAWFRVJhw4dnEvCgcvE5aWVAJUnxM8RQAABBBCIPQHqt0cawMBrYBYsWOBcBtYGLzs7Ww4cOCBNmjSRcePGSV5enixfvtxJmTZ5+pRwp06dnHv29B5AfeCje/fuzjhd9M/153o2UIOgl331krKeOdRGMJyFAIWjxDoIIIAAAgjElgD12yMNoMZGz/7NnDnTeRF0amqqzJ4927lfT5chQ4bIiRMnnAc/AoveGzhy5Einoatfv7784Ac/cN4JGHgKeMyYMc59gYH7BPXpX33Io/h9huXFlQCVJ8TPEUAAAQQQiD0B6reHGsDYi484Zw71IROeAo7F2WGfEEAAAQQQCC1A/aYBNH03CJCJj8EIIIAAAgi4IkD9pgE0BY8AmfgYjAACCCCAgCsC1G8aQFPwCJCJj8EIIIAAAgi4IkD9pgE0BY8AmfgYjAACCCCAgCsC1G8aQFPwCJCJj8EIIIAAAgi4IkD9pgE0BY8AmfgYjAACCCCAgCsC1G8aQFPwCJCJj8EIIIAAAgi4IkD9pgE0BY8AmfgYjAACCCCAgCsC1G8aQFPwCJCJj8EIIIAAAgi4IkD9pgE0BY8AmfgYjAACCCCAgCsC1G8aQFPwCJCJj8EIIIAAAgi4IkD9pgE0BY8AmfgYjAACCCCAgCsC1G8aQFPwCJCJj8EIIIAAAgi4IkD9pgE0BY8AmfgYjAACCCCAgCsC1G8aQFPwCJCJj8EIIIAAAgi4IkD9pgE0BY8AmfgYjAACCCCAgCsC1G8aQFPwCJCJj8EIIIAAAgi4IkD9pgE0BY8AmfgYjAACCCCAgCsC1G8aQFPwCJCJj8EIIIAAAgi4IkD9pgE0BY8AmfgYjAACCCCAgCsC1G8aQFPwCJCJj8EIIIAAAgi4IkD9pgE0BY8AmfgYjAACCCCAgCsC1G8aQFPwCJCJj8EIIIAAAgi4IkD9pgE0BY8AmfgYjAACCCCAgCsC1G8aQFPwCJCJj8EIIIAAAgi4IkD9pgE0BY8AmfgYjAACCCCAgCsC1G8aQFPwCJCJj8EIIIAAAgi4IkD9pgE0BY8AmfgYjAACCCCAgCsC1G8aQFPwCJCJj8EIIIAAAgi4IkD9pgE0BY8AmfgYjAACCCCAgCsC1G8aQFPwCJCJj8EIIIAAAgi4IkD9pgE0BY8AmfgYjAACCCCAgCsC1G8aQFPwCJCJj8EIIIAAAgi4IkD9pgE0BY8AmfgYjAACCCCAgCsC1G8aQFPwCJCJj8EIIIAAAgi4IkD9pgE0BY8AmfgYjAACCCCAgCsC1G8aQFPwCJCJj8EIIIAAAgi4IkD9pgE0BY8AmfgYjAACCCCAgCsC1G8aQFPwCJCJj8EIIIAAAgi4IkD99lADOH/+fJk1a5bk5+dLq1atZM6cOdK1a9cbBufKlSvys5/9TFauXCmnT5+WRo0ayQsvvCBPPvlkcMxrr70mEyZMkKNHj0qzZs1k6tSp0rdv37DDSIDKp7peWCRvHz8nZy9clttrJUiHpvWk6i1Vyh/IGhERYD4iwsqHIoCAxwSo3x5pANeuXSuDBw8WbQK7dOkiCxculMWLF0tubq40btw4ZOwyMjLkzJkzMmXKFGnevLmcPXtWrl27Jp07d3bW37t3r9NATp482Wn6Nm7cKBMnTpRdu3ZJx44dw4oyAfp6pq0f5EvmG7mSX3A5uGLDxAR5sXeK9EptGJYxK1WeAPNReZZ8EgIIeFuA+u2RBlAbsrS0NMnKygomrmXLltKnTx+ZPn16mRRu3bpV+vfvL8eOHZN69eqFTOljjz0mGoAtW7YEf96rVy+pW7eurF69OqxkE6AbM2mz8czKd6Wo1CqBc39Zg9JoAsNKWeWsxHxUjiOfggAC8SFA/fZAA3j16lWpUaOGrFu3rsTl2VGjRklOTo7s2LGjTBqfffZZ+fOf/yzt27eXFStWSM2aNeXhhx92zvZVr17dWV/PHI4ZM8b5J7DMnj3bubT80UcfhZVwAhSaSS8z3j9jW4kzf8XX1CawQWKC7Brbk8vBYSXNthLzYfNjNAIIxJ8A9dsDDeCpU6ckKSlJdu/eHbx8q1GcNm2aLFu2TA4fPlwmmXomb/v27fLAAw84l3U/++wz0aawZ8+esmTJEmf9atWqydKlS2XgwIHB8atWrZKhQ4eK3j8YatE/L/4zDVBycrIUFBRI7dq14+8bUsEj2nv0cxmQva/c0atHdJL0ZvXLXY8VbALMh82P0QggEH8CNIAeagD37Nkj6enpwRTqAxt6du/QoUNlkvnggw/Kzp07nYc/EhMTnZ9v2LBBHn30Ufnyyy+ds4DaAGoDOWDAgOD4V199VYYNGyaXL//tnrXiHz5p0iTJzMwssz0awJIkm3LyZNSanHL/izG3fxvJaJNU7nqsYBNgPmx+jEYAgfgToAH0QANYkUvATzzxhHPG8MiRI8HUHjx4UFJSUpxLwy1atKjQJWDOAIb3HwHOOIXnFK21mI9oSbMdBBDwigANoAcaQA2TPgTSrl075yngwKLNnD7pG+ohkEWLFsno0aOdJ39vvfVWZ8imTZukX79+cvHiRecMoD4EcuHCBdm8eXPwMx966CGpU6cOD4EYv8GBe85OF1wu8xCIfjT3ABqBb3I483GTYKyOAAJxL0AD6JEGMPAamAULFjiXgbXBy87OlgMHDkiTJk1k3LhxkpeXJ8uXL3dCq02ePiXcqVMn55Kt3gM4fPhw6d69uzNOF72k3K1bN+fdf9pIaoM4fvx4XgNTSV/7wFOn+nHFnwTmKeBKAr7Jj2E+bhKM1RFAIK4FaAA90gBqCvXs38yZM50XQaempoo+sasNnC5DhgyREydOOA9+BBa9N3DkyJHOpeD69evLD37wA+edgIGngHW99evXO02fvi4m8CJoPUsY7kKAvl6K986Fm6TorMd8RMeZrSCAQOwLUL891ADGYpwIUPmzwm+eKN8ommswH9HUZlsIIBCrAtRvGkBTNgmQiY/BCCCAAAIIuCJA/aYBNAWPAJn4GIwAAggggIArAtRvGkBT8AiQiY/BCCCAAAIIuCJA/aYBNAWPAJn4GIwAAggggIArAtRvGkBT8AiQiY/BCCCAAAIIuCJA/aYBNAWPAJn4GIwAAggggIArAtRvGkBT8AiQiY/BCCCAAAIIuCJA/aYBNAWPAJn4GIwAAggggIArAtRvGkBT8AiQiY/BCCCAAAIIuCJA/aYBNAWPAJn4GIwAAggggIArAtRvGkBT8AiQiY/BCCCAAAIIuCJA/aYBNAWPAJn4GIwAAggggIArAtRvGkBT8AiQiY/BCCCAAAIIuCJA/aYBNAWPAJn4GIwAAggggIArAtRvGkBT8AiQiY/BCCCAAAIIuCJA/aYBNAWPAJn4GIwAAggggIArAtRvGkBT8AiQiY/BCCCAAAIIuCJA/aYBNAWPAJn4GIwAAggggIArAtRvGkBT8AiQiY/BCCCAAAIIuCJA/aYBNAWPAJn4GIwAAggggIArAtRvGkBT8AiQiY/BCCCAAAIIuCJA/aYBNAWPAJn4GIwAAggggIArAtRvGkBT8AiQiY/BCCCAAAIIuCJA/aYBNAWPAJn4GIwAAggggIArAtRvGkBT8AiQiY/BCCCAAAIIuCJA/aYBNAWPAJn4GIwAAggggIArAtRvGkBT8AiQiY/BCCCAAAIIuCJA/aYBNAWPAJn4GIwAAggggIArAtRvGkBT8AiQiY/BCCCAAAIIuCJA/aYBNAWPAJn4GIwAAggggIArAtRvGkBT8AiQiY/BCCCAAAIIuCJA/aYBNAWPAJn4GIwAAggggIArAtRvGkBT8AiQiY/BCCCAAAIIuCJA/aYBNAWPAJn4GIwAAggggIArAtRvGkBT8AiQiY/BCCCAAAIIuCJA/aYBNAWPAJn4GIwAAggggIArAtRvGkBT8AiQiY/BCCCAAAIIuCJA/aYBNAWPAJn4GIwAAggggIArAtRvGkBT8AiQiY/BCCCAAAIIuCJA/fZQAzh//nyZNWuW5OfnS6tWrWTOnDnStWvXkMHZvn279OjRo8zPDh48KPfee6/z50uXLpWhQ4eWWefSpUuSkJAQViAJUFhMrIQAAggggEBMCVC/PdIArl27VgYPHizaBHbp0kUWLlwoixcvltzcXGncuHGZUAUawMOHD0vt2rWDP7/tttukatWqwQZw1KhRousUXxo0aBB2SAlQ2FSsiAACCCCAQMwIUL890gB27NhR0tLSJCsrKxieli1bSp8+fWT69Ok3bAC/+OILqVOnTsjA6RnA0aNHy/nz5yscSAJUYToGIoAAAggg4JoA9dsDDeDVq1elRo0asm7dOunbt28wLHr2LicnR3bs2HHDBvDb3/62XL58WVJSUmT8+PElLgtrAzh8+HBJSkqS69evS5s2bWTy5MnStm3bsANJgMKmYkUEEEAAAQRiRoD67YEG8NSpU06Ttnv3buncuXMwPNOmTZNly5aVuYSrK+hl3bfeekvatWsnV65ckRUrVsiCBQtELw1369bN+Yx9+/bJkSNHpHXr1qJBmDt3rmzevFn2798vLVq0CBlS/Sz9J7DouOTkZCkoKChxqTlmEs6OIIAAAggggEAZARpADzWAe/bskfT09OAkTp061WnsDh06FFa0e/fuLVWqVJFf//rXIdcvLCx0LjNrgzhv3ryQ60yaNEkyMzPL/IwGMKwpYCUEEEAAAQRiQoAG0AMNYEUuAYdKlzaMK1euFH0S+EbLiBEj5OTJk7JlyxbOAMbEV5SdQAABBBBAoPIFaAA90ADqtOtDIHo5V58CDix6X19GRkbIh0BCReXRRx+Vc+fOybZt20ImqaioSDp06OBcEl6yZElYaSNAYTGxEgIIIIAAAjElQP32SAMYeA2M3senl4EXLVok2dnZcuDAAWnSpImMGzdO8vLyZPny5U7A9B2B+gCIvi9QzyDqmb+XXnpJXnvtNenXr5+zjl7K7dSpk3O/nwZBL/vqJWW911AbwXAWAhSOEusggAACCCAQWwLUb480gBobPfs3c+ZM50XQqampMnv27OADHUOGDJETJ044D3nooutpk6hNYfXq1Z1GUJvE73//+8EEjhkzRjZs2CCnT5+WxMRE5+lfvcev+H2G5cWVAJUnxM8RQAABBBCIPQHqt4cawNiLjzhnDrV55CGQWJwd9gkBBBBAAIHQAtRvGkDTd4MAmfgYjAACCCCAgCsC1G8aQFPwCJCJj8EIIIAAAgi4IkD9pgE0BY8AmfgYjAACCCCAgCsC1G8aQFPwCJCJj8EIIIAAAgi4IkD9pgE0BY8AmfgYjAACCCCAgCsC1G8aQFPwCJCJj8EIIIAAAgi4IkD9pgE0BS/SAbpeWCRvHz8nZy9clttrJUiHpvWk6i1VTPtcenA0tlGpOxziw6JxDNHYRqSdovH50XCKl21EYz7YBgIIhBaIdP32gnuVIv0daCwVEohkgLZ+kC+Zb+RKfsHl4L41TEyQF3unSK/UhhXa39KDorGNStnRr/mQaBxDNLYRaadofH40nOJlG9GYD7aBAAI3Fohk/faKOw2gYaYiFSAtcs+sfFdKd+aBc39Zg9LMTWA0tmGgDWtoNI4hGtsI62BjfKVoOMXLNmJ8Ktk9BHwhEKn67SU8GkDDbEUiQHp56/4Z20qc+Su+i9oENkhMkF1je1b4cnA0tmFgDWtoNI4hGtsI62BjfKVoOMXLNmJ8Ktk9BHwjEIn67TU8GkDDjEUiQHuPfi4DsveVu1erR3SS9Gb1y10v1ArR2EaFduwmBkXjGKKxjZs45JhdNRpO8bKNmJ1EdgwBnwlEon57jZAG0DBjkQjQppw8GbUmp9y9mtu/jWS0SSp3vVArRGMbFdqxmxgUjWOIxjZu4pBjdtVoOMXLNmJ2EtkxBHwmEIn67TVCGkDDjEUiQJzpCG9CcArPKRprxctcROM4ojEfbAMBBMoXiET9Ln+rsbUGDaBhPiIRoMC9TqcLLpd5CER3tTLvAYzkNgysYQ3FKSymqKwUL3MRjeOIyoSwEQQQKFcgEvW73I3G2Ao0gIYJiVSAAk876q4VfxI4Ek8BR3IbBtqwhuIUFlNUVoqXuYjGcURlQtgIAgh8rUCk6reX2CPaAG7fvl2+973vecnjpvY1kgHifWfhTQVO4TlFY614mYtoHEc05oNtIIDAjQUiWb+94h7RBjAhIUGSkpJk6NCh8sQTT0hycrJXXMLaz0gHiN94ENY0CE7hOUVjrXiZi2gcRzTmg20ggEBogUjXby+4R7QBPHfunKxcuVKWLl0qf/rTn+Tv//7vZdiwYdKnTx+pVq2aF3w4hez5WeIAEEAAAQQQKClAAxjF3wWck5MjS5YskdWrV0thYaH8y7/8i9MMfuc73/FsLgmQZ6eOHUcAAQQQ8LEA9TuKDaDm7NSpU7Jo0SJ56aWX5Bvf+IZcvnxZ0tPTZcGCBdKqVSvPRZEAeW7K2GEEEEAAAQSE+h2FBvAvf/mLbNq0yTn79+abb0r79u2dM38DBgwQvUQ8duxY0bODubm5noskAfLclLHDCCCAAAII0ADqa+WKioqKv2mkUmMxcuRI55KvLoMGDZLhw4dLampqiW18/PHH8u1vf9u5LOy1hQbQazPG/iKAAAIIICA0gJFuAPWhD236HnnkkRs+9HHt2jXZvXu3dO/e3XOZpAH03JSxwwgggAACCNAARroBjPeM0QDG+wxzfAgggAAC8ShA/Y7wJeDp06fLHXfcIU8++WSJ/Oj9gJ9++qlz/5+XFwLk5dlj3xFAAAEE/CpA/Y5wA6j39q1atUo6d+5cImN/+MMfpH///nL8+HFPZ48AeXr62HkEEEAAAZ8KUL8j3ADqbwI5ePCgNG3atETEjh07JikpKc5rYLy8ECAvzx77jgACCCDgVwHqd4QbwBYtWsiLL77oPAFcfFmxYoXz59oIenkhQF6ePfYdAQQQQMCvAtTvCDeAM2bMkFmzZjn/9OzZ08nZ73//e3nuuefkJz/5iYwbN87T2SNAnp4+dh4BBBBAwKcC1O8IN4D6isHnn39e5s2bJ1evXnVippeF9eGPiRMnej52BMjzU8gBIIAAAgj4UID6HeEGMJCpixcvOvcCVq9eXfSy8De/+c24iBsBiotp5CAQQAABBHwmQP2OUgMYr7kiQPE6sxwXAggggEA8C1C/o9AA/vGPf5R169aJ/sq3wGXgQKg2bNjg6XwRIE9PHzuPAAIIIOBTAep3hBvANWvWyOOPPy4PPvigvPnmm87/fvjhh3L69Gnp27evvPLKK56OHgHy9PSx8wgggAACPhWgfke4Abzvvvvk6aeflh/96EdSq1Yt2b9/v/NOQP2zhg0bSmZmpqejR4A8PX3sPAIIIICATwWo3xFuAGvWrCkHDhwQ/Y0g3/rWt+R//ud/pHXr1s4DIfpamPz8fE9HjwB5evrYeQQQQAABnwpQvyPcACYnJ8vmzZudpu873/mO80qYAQMGyN69e6VXr15SUFDg6egRIE9PHzuPAAIIIOBTAep3hBvAgQMHSvv27eXHP/6xTJ06VebOnSsZGRnO/fvzDh8AACAASURBVIBpaWnCQyA+/eZx2AgggAACCLgoQAMY4Qbw3Llzzu/7vfPOO6WwsFB+/vOfy65du6R58+YyYcIEqVu3rovTb980AbIb8gkIIIAAAghEW4D6HcEG8Nq1a/Lqq6/KP/7jP0qDBg2iPbdR2R4BigozG0EAAQQQQKBSBajfEWwAdaZq1KjhPPDRpEkT88TNnz/f+Z3C+uBIq1atZM6cOdK1a9eQn7t9+3bp0aNHmZ/pvtx7773BP3/ttdecM5FHjx6VZs2aOZep9fU04S4EKFwp1kMAAQQQQCB2BKjfEW4AtQkbNWqU9OnTxzTra9eulcGDB4s2gV26dJGFCxfK4sWLJTc3Vxo3blzmswMN4OHDh6V27drBn992221StWpV59/1QRRtICdPnuw0fRs3bnR+P7Feou7YsWNY+0uAwmJiJQQQQAABBGJKgPod4QZQfwOIPvk7ZswYadeunehrYYov+p7AcBZtyPShkaysrODqLVu2dBrL6dOn37AB/OKLL6ROnTohN/HYY4+JBmDLli3Bn+uTyXpf4urVq8PZLWd8YmKi8zRz8UYzrMGshAACCCCAAAKuCFC/I9wA3nLLLWUmtkqVKlJUVCT6v9evXy934vXXx+mlZG0mi1+e1TOLOTk5smPHjhs2gPr+QX0IJSUlRcaPH1/isrCeOdTGVP8JLLNnz3YuLX/00Uch9+vKlSui/wQWDZC+6oYGsNxpZAUEEEAAAQRiRoAGMMIN4I0aqUACwrk38NSpU5KUlCS7d++Wzp07B8Mzbdo0WbZsmehl3tKL/tlbb73lnHXUhm3FihWyYMEC0UvD3bp1c1avVq2aLF26VPRVNYFl1apVMnTo0BJNXvHPnjRpUsjfXkIDGDPfaXYEAQQQQACBcgVoACPcAJY7A2GsEGgA9+zZI+np6cER+sCGNnaHDh0K41NEevfu7Zx1/PWvfx1sALWB1BdTBxZ9annYsGHOWcNQC2cAw6JmJQQQQAABBGJagAYwwg3g8uXLvzYAjz/+eLkBqcgl4FAfqg3jypUrnaeSdanIJeDSn0uAyp0+VkAAAQQQQCDmBKjfEW4AS7/o+S9/+Yt89dVXzuVXva9PXxQdzqIPgejlXH0KOLDofX36W0VCPQQS6jMfffRRZ3vbtm1zfqwPgVy4cMH5VXWB5aGHHnIeGuEhkHBmhXUQQAABBBDwpgANYIQbwFCx+PDDD+WZZ56Rf/u3f3NeEh3OEngNjN7Hp5eBFy1aJNnZ2XLgwAHnHYPjxo2TvLw8CZxx1Ac59AEQfV+gnkHUM38vvfSS6Hv/+vXr52xSLynr/YB6ZlAbyU2bNjkPivAamHBmhHUQQAABBBDwrgANoAsNoMblf//3f2XQoEFh37+nY/Ts38yZM50XQaempoo+sRt4oGPIkCFy4sQJ5yEPXXQ9bRK1KaxevbrTCGqT+P3vf79EWtevX+80fceOHQu+CDrQIIYTawIUjhLrIIAAAgggEFsC1G+XGsD33ntPunfv7rxHz8sLAfLy7LHvCCCAAAJ+FaB+R7gBDDxxGwiYvv9Pz+C9/PLLzvvzir+E2YshJEBenDX2GQEEEEDA7wLU7wg3gKVfBK2vYdFfx9azZ0/5xS9+IQ0bNvR0BgmQp6ePnUcAAQQQ8KkA9TvCDWC854oAxfsMc3wIIIAAAvEoQP2mATTlmgCZ+BiMAAIIIICAKwLU7wg3gPruvfbt28vzzz9fYoJnzZolb7/9tvP7fb28ECAvzx77jgACCCDgVwHqd4QbQL3fT1+83Lp16xIZe//99+WBBx6QM2fOeDp7BMjT08fOI4AAAgj4VID6HeEGUN/Bl5OTI/fcc0+JiOnv723btq1cunTJ09EjQJ6ePnYeAQQQQMCnAtTvCDeA3/3ud6V3794yceLEEhGbNGmSvPHGG/LOO+94OnoEyNPTx84jgAACCPhUgPod4QZQ3wP4yCOPyMCBA51Xv+jy+9//3vldu3r/X58+fTwdPQLk6elj5xFAAAEEfCpA/Y5wA6i5+s1vfiPTpk1zLgXrJeH77rtPXnzxRec3gXh9IUBen0H2HwEEEEDAjwLU7yg0gPEcLAIUz7PLsSGAAAIIxKsA9TvCDeAf//hHKSwslI4dO5bI0B/+8AepWrWq84oYLy8EyMuzx74jgAACCPhVgPod4QawQ4cO8txzz4m+D7D4smHDBpkxY4ZoI+jlhQB5efbYdwQQQAABvwpQvyPcAN56663ypz/9Se66664SGTt+/LhzL+CFCxc8nT0C5OnpY+cRQAABBHwqQP2OcANYv359+a//+i9JT08vEbE9e/bIP/3TP8kXX3zh6egRIE9PHzuPAAIIIOBTAep3hBvA/v37y+nTp2XTpk2SmJjoxOz8+fPO619uv/12+c///E9PR48AeXr62HkEEEAAAZ8KUL8j3ADm5eVJt27d5PPPP3d+84cu+jqYO+64Q958801JTk72dPQIkKenj51HAAEEEPCpAPU7wg2g5urLL7+UV199Vfbv3x98D+CAAQPk7/7u7zwfOwLk+SnkABBAAAEEfChA/Y5CA6i5ys3NlY8//liuXr1aImYPP/ywp2NHgDw9few8AggggIBPBajfEW4Ajx07Jn379pX3339fqlSpIkVFRc7/Bpbr1697OnoEyNPTx84jgAACCPhUgPod4Qawd+/ezgufs7OznVfB6Hv/zp07Jz/5yU/k5z//uXTt2tXT0SNAnp4+dh4BBBBAwKcC1O8IN4Df+ta3ZNu2bc47//Qp4Lffflvuuece58+0CXzvvfc8HT0C5OnpY+cRQAABBHwqQP2OcANYt25deeedd5yzf82aNZPFixdLjx495OjRo9K6dWv56quvPB09AuTp6WPnEXBV4Hphkbx9/JycvXBZbq+VIB2a1pOqt/ztFpnK2LlIbyPSn68G0dhGZVj74TPiaS6o3xFuAPUSr57p0/f+DRw40Hnx8/jx42XRokVOY/jBBx94+jtDgDw9few8Aq4JbP0gXzLfyJX8gsvBfWiYmCAv9k6RXqkNK2W/Ir2NSH++IkRjG5WC7YMPibe5oH5HuAH87W9/67wGpl+/fqIPhPzzP/+zHDp0SPQ3hKxdu1Z69uzp6a8NAfL09LHzCLgioIX0mZXvSlGprQfO/WUNSjM3gZHeRqQ/P9D8RdrJlQB4cKPRmO9os1C/I9wAhppQfQhELw0Xfxo42hNfWdsjQJUlyecg4A8BvYR2/4xtJc78FT9ybQIbJCbIrrE9K3w5ONLbiPTnBy77RtrJH4mzH2U05tu+lzf/CdRvFxrAm5+m2B1BgGJ3btgzBGJRYO/Rz2VA9r5yd231iE6S3qx+ueuFWiHS24j05+sxRWMbFcL14aB4nQvqNw2g6etMgEx8DEbAdwKbcvJk1Jqcco97bv82ktEmqdz1Qq0Q6W1E+vP1mKKxjQrh+nBQvM4F9ZsG0PR1JkAmPgYj4DuBaJxNifQ2Iv35nAGMra9FNObbjSOmftMAmnJHgEx8DEbAdwKB+6lOF1wu8xCIYlTmPYCR2kY8HIPvgmc44GjMt2H3KjyU+k0DWOHw6EACZOJjMAK+FAg8UakHX/xJ4Eg8BRypbcTDMfgyfBU86GjMdwV3rcLDqN80gBUODw2giY7BCPhaIBrvVIv0NiL9+RqQaGzD10G8iYOPt7mgAaQBvIn4l12VAJn4GIyArwWi8VsVIr2NSH++BiQa2/B1EG/i4ONpLqjfNIA3EX0aQBMWgxFAAAEEEIgRARpAGkBTFAmQiY/BCCCAAAIIuCJA/aYBNAWPAJn4GIwAAggggIArAtRvGkBT8AiQiY/BCCCAAAIIuCJA/aYBNAWPAJn4GIwAAggggIArAtRvGkBT8AiQiY/BCCCAAAIIuCJA/fZQAzh//nyZNWuW5OfnS6tWrWTOnDnStWvXcoOze/du6d69u6SmpkpOzt9+B+fSpUtl6NChZcZfunRJEhISyv1cXYEAhcXESggggAACCMSUAPXbIw3g2rVrZfDgwaJNYJcuXWThwoWyePFiyc3NlcaNG98wVAUFBZKWlibNmzeXM2fOlGkAR40aJYcPHy4xvkGDBmGHlACFTcWKCCCAAAIIxIwA9dsjDWDHjh2dRi4rKysYnpYtW0qfPn1k+vTpNwxU//79pUWLFlK1alV5/fXXyzSAo0ePlvPnz1c4kASownQMRAABBBBAwDUB6rcHGsCrV69KjRo1ZN26ddK3b99gWPTsnV7S3bFjR8gAvfLKK84Zw71798qUKVNCNoDDhw+XpKQkuX79urRp00YmT54sbdu2DTuQBChsKlZEAAEEEEAgZgSo3x5oAE+dOuU0aXovX+fOnYPhmTZtmixbtqzMJVxd4cMPP5T7779fdu7cKXfffbdMmjSpTAO4b98+OXLkiLRu3dq5l2/u3LmyefNm2b9/v3PWMNRy5coV0X8Ci45LTk4WvdRcu3btmAk2O4IAAggggAACNxagAfRQA7hnzx5JT08PzubUqVNlxYoVcujQoRIzrGfzOnXqJMOGDZMf/vCHzs9CNYClY1FYWOhcZu7WrZvMmzcvZGr0czIzM8v8jAaQ/8wggAACCCDgHQEaQA80gDd7CVjv6atbt65z319g0eauqKjI+bPf/e530rNnz5ApHTFihJw8eVK2bNnCGUDvfI/ZUwQQQAABBG5KgAbQAw2gzqg+BNKuXTvnnr7AkpKSIhkZGWUeAtFmT58OLr7ouG3btsn69euladOmUrNmzTJB0QaxQ4cOziXhJUuWhBUkAhQWEyshgAACCCAQUwLUb480gIHXwCxYsMC5DLxo0SLJzs6WAwcOSJMmTWTcuHGSl5cny5cvDxmwUJeA9VKuXirW+/00CHrZVy8p672G2giGsxCgcJRYBwEEEEAAgdgSoH57pAHU2OhZvJkzZzovgtaXOs+ePdu5X0+XIUOGyIkTJ2T79u1hN4BjxoyRDRs2yOnTpyUxMdF5+lcbxeL3GZYXVwJUnhA/RwABBBBAIPYEqN8eagBjLz78JpBYnBP2CQEEEEAAgfIEaABpAMvLyNf+nACZ+BiMAAIIIICAKwLUbxpAU/AIkImPwQgggAACCLgiQP2mATQFjwCZ+BiMAAIIIICAKwLUbxpAU/AIkImPwQgggAACCLgiQP2mATQFjwCZ+BiMAAIIIICAKwLUbxpAU/AIkImPwQgggAACCLgiQP2mATQFjwCZ+BiMAAIIIICAKwLUbxpAU/AIkImPwQgggAACCLgiQP2mATQFjwCZ+BiMAAIIIICAKwLUbxpAU/AIkImPwQgggAACCLgiQP2mATQFjwCZ+BiMAAIIIICAKwLUbxpAU/AIkImPwQgggAACCLgiQP2mATQFjwCZ+BiMAAIIIICAKwLUbxpAU/AIkImPwQgggAACCLgiQP2mATQFjwCZ+BiMAAIIIICAKwLUbxpAU/AIkImPwQgggAACCLgiQP2mATQFjwCZ+BiMAAIIIICAKwLUbxpAU/AIkImPwQgggAACCLgiQP2mATQFjwCZ+BiMAAIIIICAKwLUbxpAU/AIkImPwQgggAACCLgiQP2mATQFjwCZ+BiMAAIIIICAKwLUbxpAU/AIkImPwQgggAACCLgiQP2mATQFjwCZ+BiMAAIIIICAKwLUbxpAU/AIkImPwQgggAACCLgiQP2mATQFjwCZ+BiMAAIIIICAKwLUbxpAU/AIkImPwQgggAACCLgiQP2mATQFjwCZ+BiMAAIIIICAKwLUbxpAU/AIkImPwQgggAACCLgiQP2mATQFjwCZ+BiMAAIIIICAKwLUbxpAU/AIkImPwQgggAACCLgiQP2mATQFjwCZ+BiMAAIIIICAKwLUbxpAU/AIkImPwQgggAACCLgiQP2mATQFjwCZ+BiMAAIIIICAKwLUbxpAU/AIkImPwQgggAACCLgiQP2mATQFjwCZ+BiMAAIIIICAKwLUbxpAU/AIkImPwQgggAACCLgiQP2mATQFjwCZ+BiMAAIIIICAKwLUbxpAU/AIkImPwQgggAACCLgiQP2mATQFjwCZ+BiMAAIIIICAKwLUbxpAU/AIkImPwQgggEBMCFwvLJK3j5+Tsxcuy+21EqRD03pS9ZYqlbpv8bKNSkVx8cOo3x5qAOfPny+zZs2S/Px8adWqlcyZM0e6du1abnx2794t3bt3l9TUVMnJySmx/muvvSYTJkyQo0ePSrNmzWTq1KnSt2/fcj8zsAIBCpuKFRFAAIGYFNj6Qb5kvpEr+QWXg/vXMDFBXuydIr1SG1bKPsfLNioFI0Y+hPrtkQZw7dq1MnjwYNEmsEuXLrJw4UJZvHix5ObmSuPGjW8Yp4KCAklLS5PmzZvLmTNnSjSAe/fudRrIyZMnO03fxo0bZeLEibJr1y7p2LFjWBElQGExsRICCCAQkwLamD2z8l0pKrV3gXN/WYPSzE1gvGwjJifQsFPUb480gNqQaSOXlZUVnO6WLVtKnz59ZPr06TeMQP/+/aVFixZStWpVef3110s0gI899phoALZs2RIc36tXL6lbt66sXr06rFgRoLCYWAkBBBCIOQG9JHv/jG0lzvwV30ltAhskJsiusT0rfDk4XrYRc5NXCTtE/fZAA3j16lWpUaOGrFu3rsTl2VGjRjkN3Y4dO0JG4ZVXXnHOGOqZvilTppRpAPXM4ZgxY5x/Asvs2bOdS8sfffRRyM+8cuWK6D+BRQOUnJwseqaxdu3alRBJPgIBBBBAIBoCe49+LgOy95W7qdUjOkl6s/rlrhdqhXjZRoUOPsYH0QB6oAE8deqUJCUlid7L17lz52Ckpk2bJsuWLZPDhw+XidmHH34o999/v+zcuVPuvvtumTRpUpkGsFq1arJ06VIZOHBgcPyqVatk6NChJZq84h+un5OZmVlmezSAMf5NZ/cQQACBUgKbcvJk1JqS94WHQprbv41ktEmqkF+8bKNCBx/jg2gAPdQA7tmzR9LT04OR0gc2VqxYIYcOHSoRs+vXr0unTp1k2LBh8sMf/tD52Y0aQG0gBwwYEBz/6quvOuMuX/7bzcDFP5wzgDH+jWb3EEAAgTAF4uXsXDSOI0xST61GA+iBBvBmLwGfP3/euY9P7/sLLIWFhVJUVOT82e9+9zvp2bOn8/DIzV4CLp1uAuSp7zs7iwACCAQFAvfnnS64XOYhEF2pMu8B9Po24jE21G8PNIAaPH0IpF27ds49fYElJSVFMjIyyjwEos2ePh1cfNFx27Ztk/Xr10vTpk2lZs2aog+BXLhwQTZv3hxc9aGHHpI6derwEEg8fts5JgQQQKCUQOAJXf3j4k8CR+IpYK9vI97CQwPokQYw8BqYBQsWOJeBFy1aJNnZ2XLgwAFp0qSJjBs3TvLy8mT58uUhMxrqErBeUu7WrZvz7j9tJDdt2iTjx4/nNTDx9i3neBBAAIGvEYiXd/RF4zjiKUg0gB5pADV0ehZv5syZzoug9aXO+sSuNnC6DBkyRE6cOCHbt28PuwHUFfWMoDZ9x44dC74Iul+/fmFnnACFTcWKCCCAQMwKxMtv6YjGccTsJN7kjlG/PdQA3uTcRmV1AhQVZjaCAAIIIIBApQpQv2kATYEiQCY+BiOAAAIIIOCKAPWbBtAUPAJk4mMwAggggAACrghQv2kATcEjQCY+BiOAAAIIIOCKAPWbBtAUPAJk4mMwAggggAACrghQv2kATcEjQCY+BiOAAAIIIOCKAPWbBtAUPAJk4mMwAggggAACrghQv2kATcEjQCY+BiOAAAIIIOCKAPWbBtAUPAJk4mMwAggggAACrghQv2kATcEjQCY+BiOAAAIIIOCKAPWbBtAUPAJk4mMwAggggAACrghQv2kATcEjQCY+BiOAAAIIIOCKAPWbBtAUPAJk4mMwAggggAACrghQv2kATcEjQCY+BiOAAAIIIOCKAPWbBtAUPAJk4mMwAggggAACrghQv2kATcEjQCY+BiOAAAIIIOCKAPWbBtAUPAJk4mMwAggggAACrghQv2kATcEjQCY+BiOAAAIIIOCKAPWbBtAUPAJk4mMwAggggAACrghQv2kATcEjQCY+BiOAAAIIIOCKAPWbBtAUPAJk4mMwAggggAACrghQv2kATcEjQCY+BiOAAAIIIOCKAPWbBtAUPAJk4mMwAggggAACrghQv2kATcEjQCY+BiOAAAIIIOCKAPWbBtAUPAJk4mMwAggggAACrghQv2kATcEjQCY+BiOAAAIIIOCKAPWbBtAUPAJk4mMwAggggAACrghQv2kATcEjQCY+BiOAAAIIIOCKAPWbBtAUPAJk4mMwAggggAACrghQv2kATcEjQCY+BiOAAAIIIOCKAPWbBtAUPAJk4mMwAggggAACrghQv2kATcEjQCY+BiOAAAIIIOCKAPWbBtAUPAJk4mMwAggggAACrghQv2kATcEjQCY+BiOAAAIIIOCKAPWbBtAUPAJk4mMwAggggAACrghQv2kATcEjQCY+BiOAAAIIIOCKAPWbBtAUPAJk4mMwAggggAACrghQv2kATcEjQCY+BiOAAAIIIOCKAPWbBtAUPAJk4mMwAggggAACrghQv2kATcEjQCY+BiOAAAIIIOCKAPXbQw3g/PnzZdasWZKfny+tWrWSOXPmSNeuXUMGZ9euXTJ27Fg5dOiQfPXVV9KkSRN5+umnZcyYMcH1ly5dKkOHDi0z/tKlS5KQkBBWIAlQWEyshAACCCCAQEwJUL890gCuXbtWBg8eLNoEdunSRRYuXCiLFy+W3Nxcady4cZlQvffee07zd99990nNmjVFG0JtAGfPni1PPfWUs742gKNGjZLDhw+XGN+gQYOwQ0qAwqZiRQQQQAABBGJGgPrtkQawY8eOkpaWJllZWcHwtGzZUvr06SPTp08PK1D9+vVzmsEVK1YEG8DRo0fL+fPnwxofaiUCVGE6BiKAAAIIIOCaAPXbAw3g1atXpUaNGrJu3Trp27dvMCx69i4nJ0d27NhRboD0jOBDDz0kU6ZMkeHDhwcbQP3/SUlJcv36dWnTpo1MnjxZ2rZtW+7nBVYgQGFTsSICCCCAAAIxI0D99kADeOrUKadJ2717t3Tu3DkYnmnTpsmyZcvKXMItnq5GjRrJp59+KteuXZNJkybJhAkTgj/et2+fHDlyRFq3bi0ahLlz58rmzZtl//790qJFi5AhvXLliug/xRvA5ORkKSgokNq1a8dMsNkRBBBAAAEEELixAA2ghxrAPXv2SHp6enA2p06d6lzO1Xv9brQcP35cLl68KNrsPf/88/Lyyy/LgAEDQq5eWFjoXGbu1q2bzJs3L+Q62kRmZmaW+RkNIP+ZQQABBBBAwDsCNIAeaAAr4xKwRlIv/2rDWPqhj+JxHTFihJw8eVK2bNnCGUDvfI/ZUwQQQAABBG5KgAbQAw2gzqg+BNKuXTvnKeDAkpKSIhkZGWE/BKL39/3Hf/yHnDhxImRIioqKpEOHDs4l4SVLloQVJAIUFhMrIYAAAgggEFMC1G+PNICB18AsWLDAuQy8aNEiyc7OlgMHDjjv+Bs3bpzk5eXJ8uXLnYD96le/cl4Pc++99zr/rq+B0Sd+R44c6ZwJ1EUv5Xbq1Mm530+DoJd99Qyh3muojWA4CwEKR4l1EEAAAQQQiC0B6rdHGkCNjZ79mzlzpvMi6NTUVOedfnq/ni5Dhgxxzuxt377d+fdf/vKXzrsC9R7Ab3zjG9KsWTPRy7v6LsBbbrnFWUdfCr1hwwY5ffq0JCYmOk//6j1+xe8zLC+uBKg8IX6OAAIIIIBA7AlQvz3UAMZefMQ5c6jNIw+BxOLssE8IIIAAAgiEFqB+0wCavhsEyMTHYAQQQAABBFwRoH7TAJqCR4BMfAxGAAEEEEDAFQHqNw2gKXgEyMTHYAQQQAABBFwRoH7TAJqCR4BMfAxGAAEEEEDAFQHqNw2gKXgEyMTHYAQQQAABBFwRoH7TAJqCR4BMfAxGAAEEEECghMD1wiJ5+/g5OXvhstxeK0E6NK0nVW+pUulK1G8aQFOoCJCJj8EIIIAAAggEBbZ+kC+Zb+RKfsHl4J81TEyQF3unSK/UhpUqRf2mATQFigCZ+BiMAAIIIICAI6DN3zMr35WiUh6Bc39Zg9IqtQmkftMAmr56BMjEx2AEEEAAAQREL/veP2NbiTN/xVm0CWyQmCC7xvastMvB1G8aQNNXjwCZ+BiMAAIIIICA7D36uQzI3leuxOoRnSS9Wf1y1wtnBeo3DWA4ObnhOgTIxMdgBBBAAAEEZFNOnoxak1OuxNz+bSSjTVK564WzAvWbBjCcnNAAmpQYjAACCCCAwI0FOAPoTjqqFBUVlb7n0p098eBW+RuEByeNXUYAAQQQiCmBwD2Apwsul3kIRHeUewAjM100gAZXGkADHkMRQAABBBD4q0DgKWD91+JnpXgKOHIRoQE02NIAGvAYigACCCCAQDEB3gMY3TjQABq8aQANeAxFAAEEEECglAC/CSR6kaABNFjTABrwGIoAAggggIBLAtRvngI2RY8AmfgYjAACCCCAgCsC1G8aQFPwCJCJj8EIIIAAAgi4IkD9pgE0BY8AmfgYjAACCCCAgCsC1G8aQFPwCJCJj8EIIIAAAgi4IkD9pgE0BY8AmfgYjAACCCCAgCsC1G8aQFPwCJCJj8EIIIAAAgi4IkD9pgE0BY8AmfgYjAACCCCAgCsC1G8aQFPwCJCJj8EIIIAAAgi4IkD9pgE0BY8AmfgYjAACCCCAgCsC1G8aQFPwCgoKpE6dOvLJJ59I7dq1TZ/FYAQQQAABBBCIjoA2gMnJyXL+/HlJTEyMzkZjbCv8KjjDhBw7dkyaNWtm+ASGIoAAAggggIBbAkePHpW77rrLrc27ul0aQAO//s2hbt268vHHH/v2bxAGPs8NDfyNkTO+npu6Cu0w810hNs8OYr49O3UV2nG9+K3UNgAACRJJREFUgte4cWP54osvnCt5flxoAA2zzj0EBjwPDmW+PThphl1mvg14HhzKfHtw0gy7zHxzD6AhPiIEyMTnucHMt+emzLTDzLeJz3ODmW/PTZlph5lvGkACZBLw12D+g8F8+0vAX0fL95v59pcADaBpvq9cuSLTp0+XcePGyTe/+U3TZzE49gWY79ifo8rcQ+a7MjVj/7OY79ifo8rcQ+abBrAy88RnIYAAAggggAACnhDgIRBPTBM7iQACCCCAAAIIVJ4ADWDlWfJJCCCAAAIIIICAJwRoAD0xTewkAggggAACCCBQeQI0gJVnySchgAACCCCAAAKeEKABrOA0zZ8/X2bNmiX5+fnSqlUrmTNnjnTt2rWCn8awWBaYNGmSZGZmltjFO+64Q06fPh3Lu82+hSnw1ltvOd/ld955x/k+b9y4Ufr06RMcXVRU5Mz/okWLnN8a0LFjR/nVr37lfO9ZvCdQ3nwPGTJEli1bVuLAdM737dvnvYP1+R7rWzo2bNgghw4dkurVq0vnzp1lxowZcs899/D9Fp4CrtDXY+3atTJ48GDRJrBLly6ycOFCWbx4seTm5jq/WoYlvgS0AVy/fr3893//d/DAqlatKrfddlt8HahPj2bLli2ye/duSUtLk0ceeaRMA6gFY+rUqbJ06VK5++67ZcqUKaJNxOHDh6VWrVo+VfPuYZc339oAnjlzRl555ZXgQVarVk3q1avn3YP26Z736tVL+vfvL9/97nfl2rVr8sILL8j777/v1OqaNWs6Kn7+fnMGsAJfDP3boBaLrKys4OiWLVs6Zw30bxws8SWgDeDrr78uOTk58XVgHE0ZgSpVqpRoAPXs35133imjR4+WsWPHOuvr+8P0DLAWjqeffhpFDwuUnm89FG0A9fe863eeJb4EPv30U7n99ttlx44d0q1bN/H795sG8CbzffXqValRo4asW7dO+vbtGxw9atQop0HQYLHEl4A2gHqJMDEx0Xnht/4FYNq0aXLXXXfF14FyNFK6ITh27Jg0a9ZM3n33XWnbtm1QKCMjw/kF8qUvFULoLYEbNYDa/OlZP53j7t27O2eAtXFg8bbAkSNHpEWLFs5ZwNTUVPH795sG8CbzfOrUKUlKSnIuGen9BIFFGwItBnpZiCW+BPSS0VdffeVc/tNLQ3oJUO8pOXDggNSvXz++DtbnR1O6IdizZ49zm0deXp5zJjCwPPXUU/LRRx/Jb3/7W5+LefvwQzWAeovPrbfeKk2aNJHjx4/LhAkTnMuHeo8ov/HJu/OtZ/v0L256H+/OnTudA/H795sG8CbzHGgANTjp6enB0fo3xBUrVjiNAUt8C3z55ZfOWaHnnntOfvzjH8f3wfrs6G7UAOr3vmHDhkGNESNGyCeffCJbt271mVB8HW6oBrD0EeqDQdoMrlmzRvr16xdfAD46mh/96Efym9/8Rnbt2iWNGjUq0QD69ftNA3iTXwAuAd8kWJyu/g//8A/SvHnzEveBxumh+uqwuATsq+kuc8n/Rkevlw2HDx8evA/UX0reP9qRI0c693Tqw1tNmzYNHhCXgPW8KMtNCeg9YO3atXOeAg4sKSkpzullHgK5KUpPrqwPAegZQL0MOHHiRE8eAzsdWuBGD4GMGTPGOeOri/4lUO8H4yEQ76conDOAn3/+uXPbj74G6PHHH/f+QfvoCLS90eZPX+20fft25/6/4kvgIRC/fr85A1iBL0PgNTALFixwLgPrfxiys7Ode8L0UgFLfAn867/+q/Tu3dt5xc/Zs2edewD1YR+9kZj59v5cX7x4UfTmcF30QY9///d/lx49ejiv/dA510ZP/2KnrwXRAqL3+2ox4TUw3pz7r5tvnXN96EtfB6SX/E+cOCE//elP5eOPP5aDBw/y2h+PTfmzzz4rq1atkk2bNpV4958+0KfvBdTFz99vGsAKBlrP/s2cOdN5caw+TTR79mznsXKW+BPQ90jppYPPPvvMefdfp06dZPLkyaJnfVm8L6DNnDZ8pZcnnnjCefdf4EXQ+r7P4i+C1u89i/cEvm6+9dVe+jqv9957z3kVjDaBmg39vicnJ3vvYH2+x3qGN9Sif5nT1/3o4ufvNw2gz78gHD4CCCCAAAII+E+ABtB/c84RI4AAAggggIDPBWgAfR4ADh8BBBBAAAEE/CdAA+i/OeeIEUAAAQQQQMDnAjSAPg8Ah48AAggggAAC/hOgAfTfnHPECCCAAAIIIOBzARpAnweAw0cAAQQQQAAB/wnQAPpvzjliBBBAAAEEEPC5AA2gzwPA4SOAQEmB733ve9KmTRuZM2cONAgggEDcCtAAxu3UcmAIIFARARrAiqgxBgEEvCZAA+i1GWN/EUAgogI0gBHl5cMRQCBGBGgAY2Qi2A0EEIgNgdIN4NatW+Wxxx6TX/7yl/L444/Hxk6yFwgggIBRgAbQCMhwBBCIL4HiDeCaNWvkqaeekhUrVkhGRkZ8HShHgwACvhagAfT19HPwCCBQWiDQAN59993y05/+VDZu3Cg9evQACgEEEIgrARrAuJpODgYBBKwC2gAePXpUzpw5I7t27ZIOHTpYP5LxCCCAQMwJ0ADG3JSwQwgg4KaANoC1atWSd999Vx5++GGZP3++VKlSxc1dYtsIIIBApQvQAFY6KR+IAAJeFghcAn722WdF/3+/fv3k5Zdf9vIhse8IIIBAGQEaQEKBAAIIFBMo/hDI4cOHnSZQnwLmxdDEBAEE4kmABjCeZpNjQQABs0Dp18AcPHjQaQIHDRokv/jFL8yfzwcggAACsSBAAxgLs8A+IIAAAggggAACURSgAYwiNptCAAEEEEAAAQRiQYAGMBZmgX1AAAEEEEAAAQSiKEADGEVsNoUAAggggAACCMSCAA1gLMwC+4AAAggggAACCERRgAYwithsCgEEEEAAAQQQiAUBGsBYmAX2AQEEEEAAAQQQiKIADWAUsdkUAggggAACCCAQCwI0gLEwC+wDAggggAACCCAQRQEawChisykEEEAAAQQQQCAWBGgAY2EW2AcEEEAAAQQQQCCKAjSAUcRmUwgggAACCCCAQCwI0ADGwiywDwgggAACCCCAQBQF/h8OOR4E34PylgAAAABJRU5ErkJggg==\" width=\"640\">"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "kn = range(1,20)\n",
    "scores = []\n",
    "\n",
    "for k in kn:\n",
    "    clfr = KNeighborsClassifier(n_neighbors = k)\n",
    "    clfr.fit(x_train, y_train)\n",
    "    scores.append(clfr.score(x_test, y_test))\n",
    "\n",
    "plt.figure()\n",
    "plt.xlabel('k')\n",
    "plt.ylabel('accuracy')\n",
    "plt.scatter(kn, scores)\n",
    "plt.xticks([0,5,10,15,20]);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "bdc05e0e",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "f3ee6bfa",
   "metadata": {},
   "outputs": [],
   "source": [
    "# maximum accuracy for when k neighbours = 6"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "fec77dd0",
   "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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ew9zfggggAACh6MA4zcB0FTXFJCJj8YIIIAAAgh4EWD8TnEA7NWrl1x44YVy//33R3TwmDFj5PXXX5cFCxZ46fhkvSkFlCxJXgcBBBBAAIH0CTB+pzgA6vV+y5Ytk3POOSeiV9977z257LLL5NNPP01fb6fgnSigFKDykggggAACCKRYgHgFVB8AACAASURBVPE7xQHwmGOOkXXr1slZZ50V0ZX6/L8LLrhAvv766xR3cWpfngJKrS+vjgACCCCAQCoEGL9THAAvuugi6datmwwZMiSi/4YOHSp/+tOf5K233oq7XydMmCC6dKyPkWnZsqWMGzdO8vLyYrZfvXq1e+Zgq1atXBgNbTNmzJC+fftWaq+h9Oijj475uroDBRQXEzshgAACCCCQUQKM3ykOgPocwOuuu04KCwvdo190e+mll2TevHnu+r8ePXrEVRDz58+X3r17i4bAjh07yuTJk2XatGmyYcMGady4cZWvsWfPHmndurWcccYZbrm5YgAsKiqSTZs2RbQ/5ZRT4jomAmDcTOyIAAIIIIBARgkQAFMcALW3//znP8vIkSNd+NIl4XPPPVceeOABNysX79a2bVsX5CZOnFjepHnz5i5Ajho1qsqXueGGG6RZs2ZSo0YNefbZZysFwLvuukt2794d72FU2o8CqjYdDRFAAAEEEPAmwPidhgBo7d0DBw5IrVq13Ixhz549y19OZ+80VK5cuTLqWzz55JNuxnDt2rXy4IMPRg2A/fv3l4YNG0ppaamcf/75Mnz4cHdtYrwbBRSvFPshgAACCCCQOQKM3ykOgG+88YYcPHhQdAYvfHvttdfcrJw+IibWtmPHDhfS9Fq+Dh06lO+us4ozZ86stISrO2zevFkuueQSWbVqlZx55pmi1xxWnAF89dVX5YMPPnB3KGshjB8/XpYsWSLvvPOOmzWMtu3fv1/0T2jTdvqRdrrUXKdOnVinwtcRQAABBBBAIAMECIApDoAXX3yx3HvvvaLPAwzfFi1aJA8//LBoEIy1hQLgmjVrpH379uW7jxgxQmbPni16R3H4prN57dq1k379+sntt9/uvhQtAFZ8Xw2quszcqVMneeyxx6Ielr7OsGHDKn2NABirF/k6AggggAACmSNAAExxADz22GPl3XfflR/84AcRvb5161Z3LeDevXtjVkOiS8B6TV/9+vXdDGNo03BX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pk2bIj4d5cQTT5QaNWqkuQftb5fo+es7du/e3fX7gw8+6Grgf//3f+Xbb7+VDh062A8oza+Q6Plr7X/99dflR6nnfd5558mdd97pfiEO4paogf7c01/+9Odet27dpLi4WG6//XZp1qyZPPPMM4EjSPT8dSJEJwKmTp0qF110kbz++utyyy23yNy5c50HW2ICBMDEvJKyd9u2bd0grsUc2po3by49evRwz/6LZ9NZwOuvv16GDBkSz+4Zt08yDPLz810YnD17dsadX6wDqu7533DDDe6HvQaeZ599NtABMFGDUAD8/PPP3S9CQd8SPf+//OUvov2/ZcsW+f73vx/005dEz7/iCWv968+ArVu3uhWBIG6JGugv/jpufPjhh+Wn+7vf/c7NCOrnhgdtS/T89RcdnTTR1bPQphMkb775ppsUYEtMgACYmJd57wMHDkitWrVkwYIF0rNnz/LXKyoqcoP5ypUrY77HwYMHpWnTpnLvvffKL37xi5j7Z9oOyTDQGcGrrrrKzYT0798/007xkMdT3fPXmV+dNV67dq077yAHwOoYhAKg1v6+fftEl/4GDRoUdVk40wuiOuf/85//XP7+97/LhRde6H7p0V9+rr32Whk+fLgcc8wxmX7KEcdXnfOveII646NL4i+88EKgzj10sNUxWLNmjat3ne3Tn386A/zjH/9YdAJh0qRJgXKozvm3adNGrr76alfzoU0/LOHRRx+VL7/8Ur73ve8FysD3wRIA09wDO3bskIYNG4pexxW+bDNy5Eh3fYsub8Xa9Lefhx56SPTap5NOOinW7hn3dYuBXvP02WefuWUvXfYZPHhwxp1frAOqzvnr9T6XXHKJrFq1Ss4880x37kEOgNUx0O+Nl19+WXQQ0IFfQ5AOehoMO3XqFIs9o75enfPXa730XC+77DI38/+Pf/xDNBR27dpVpk+fnlHnF+tgqnP+4a+p107n5ua6pT8NQEHcqmuwcOFC6du3r/slSH8O6i8B+m9BCz/VOf9f/epX7hKo559/3q2ivfXWW3LNNde4IKyv16BBgyCWgrdjJgCmmT5U9PqbXPv27cvffcSIEW5A0+vcDrXNmzfPzXgtXrzYDQRB3CwGutzzxRdfyKuvvir333+/uxi4oKAgUAyJnn9paam0a9dO+vXr56730e1wCYDV/T4IdbjOAuXk5Mhzzz13WNeA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wYMHy8033xzA70YOGYFgChAAg9lvHHWWC1QVADVwPProo3LBBRfIUUcdJWVlZTJv3jy57LLLXPj485//LAMGDJDVq1dL27ZtnWK0ALh3714XgC6//HJZuHCh/PrXv5b169fL2WefXR42KwZAfT39YPYTTzzRhQBdKtb30W3OnDkuQGk47dixo/zhD39wx6kDf1UBUMOftp86daoLixqyNDx269ZNvvrqKxcy8/LyXBDWpWgNRzoD9e6774rO0Gnw0qVFDaK6ff/73486a6fnr+10fw1+b775pgu7ek3kLbfc4tqqq4YqDSka/nTbs2ePm7nSgKaBds2aNaLLnHqOOvsYaqfBW4Nrfn6+/PWvf3X+S5culf/4j/9w/dOmTRupXbu2e79vv/3WvYYux2uwDgXARx55xAXcUaNGuYDapEkTueqqq1xw/c1vfuP2U3cN+uEBUM8rnmM8VH9H+1ZTc5191vMIbRpsP/zwQ5k7d648/vjjor+M6Myf9ss//vGPQ15jqn61atUq76ss//bm9BFIiwABMC3MvAkCyRWoKgBqiCgqKjrkm11zzTXu4n0NFVUFQA1Ws2fPdl/XkHLKKae4GTUNdhVvAgmfAfzhD3/o2ujSoL6PBrajjz5a2rVr52Z/NBiENg00OrNXVQDU2SQNftOnT690Pvpvo0ePdjNNoWvdNPTpjQ86W6bBNd4lYA2AejOCBtzQa91///1uxk5nM0NBTkO1zv6Ftp/85CduBkxnIEPbvffe60K2vlaonVqHB6UbbrjBBVM1evHFF12Q09m73Nxc10bfU2+M0JsrdOZMA+bIkSPdjKeGvNAWbQm44k0g8R7jofo7WjFpCD7++OPLr//TfTQQa4DW0K6BWWeg9RIErQMNgvpLhFppHWior1u3bvlL60yu/kKhs7RsCCCQHgECYHqceRcEkipQVQDU6650hi206SzcQw895GZjNEDs37/f/enZs6f88Y9/dLtFmwG844475J577il/Hb2Y/7rrrnPLnVUFQA1RoYCig3nr1q3lo48+ksaNG7tlZF2evemmmyIG/WXLllUZADU06XvqDQUa6DR0dOjQwbXX45s8ebILl+Gbzgw+8cQTLogkEgB/8IMfRATNxYsXS69evWTfvn1uxk0Djc4GaogJbXp+3bt3lwceeKD837Tdf/7nf7rgG2qny5rqFtrUQYO6hj5dEh87dqz7//At3EsDoM6gbt68OWKfeAJgvMd4qP6OVrhXXHGFnHHGGc76UFvXrl3dLyRaB88//7wLx+qo4VFngEObuuolBHqNIBsCCKRHgACYHmfeBYGkClQVACs+mkVnyfSPBo5zzjnHLTWGlkxDd8dGC4C6j/4JbbrcqgFMw0hVATD8ujOd1dMZMw02Gp400GjY0WvXQpsuheqMT1UzgLqfzrBpaNBwoNeyaVDRmUsNeP/zP//jglHFTUOozi4lOwBWNNHz0yAdHu7U9Mc//nHMAKghcMuWLS4Uh/4//Dx0JlOvA1Sv0DWAFZ3iCYDxHuOh+jta4erMos4M63JvVZvO0mro0+sFdflbL0PQ5W3tTzXT5enQpv35ySefuP3ZEEAgPQIEwPQ48y4IJFUg3gCo18uddNJJ5Ut1Bw8edMu/+iedAVCXgHU5U0NNaNNlR7327FABMBxNZ/x0VlKXT3UJUW840TCq1zZG2/Q6vpKSEvnTn/50SPvQEnBouVd31uvZdDYvfAm4YkiqanlVl3b/9re/uffU8NuiRQu33Bva9AYcXS6NtQSsd9DqcmlVAVBnRfUmm3DTeJeAKx5jogFQQ7jeMFNV32lw12sPdUa6YcOGbqY0NBuodafnFN5Wa0H7Qa87ZUMAgfQIEADT48y7IJBUgXgDoM6y6cyZ3nShs3C//e1v3dKv3iiQzgCoM3W69KfXhekyri5JjxkzRnTpVWcto206S6Q3SOj1cLpsrdfl6TKzLhOGbgLRcKE3Qegdwno3rc42aUjUv+t1cxoa9bozXXLUWcFoj8UJ3QSix6d3turMov6/LlHq30NBrmJI0v1C1+jpTQx6nZvOZFW8CURnRnWJU2dQ9Zo/XRLVWTBdRg3dBHLsscdG3ASifw+/CUT7qmLY0oCr/6b9qfvrTS4vv/xyxE0g8R5jogFQH92iy8vaH9Ee3VJYWOj6WW/k0U1nofU49bpSvUtab/4JLR9rX+q1nnqDjAZBNgQQSI8AATA9zrwLAkkViDcA6h2oeg2aPmJE77LU0KBBSWeg0hkA9eR1dkeXgfW6Ol0m1dCiNzpocIq26d2jusSos3z6jEMNB3q9nIYH3fS5iDoLqLNZOpOoYVBvQtHZKZ0V1FkonaXT19ebTQ71GBgNmTo7qu+n1+5p8NMAGbopRGfyKoYkPYbQI1b0+rzQY2D0AcmhTdupv94Uosubenevzi6G36gT72NgKgbAv//97+7By++8845bco71GJhDHWOiAVDPT5//p8vsoZAcOmcNchre1V0fa6ObhjzdVx/7ozOD6qwz07rpXep6g9HGjRuT+j3CiyGAwKEFCIBUCAIIeBHQx6Do3cWhu429HESUm2CSeRxVBcdkvoev19LgrWFXl7tDQa86x6KBUAOozhqyIYBA+gQIgOmz5p0QyFoBnQGaNGmSW/bUGTad9dGlW10S1ZsDfG6p/ESNwzkAap/pDSx6g0foETaJ9qMuIetsti7bp/qj6xI9NvZH4HAXIAAe7j3M+SGQAQKhBzjrNWl6PZ/evKCfLqLhwfdGAPTdA7w/Agj4ECAA+lDnPRFAAAEEEEAAAY8CBECP+Lw1AggggAACCCDgQ4AA6EOd90QAAQQQQAABBDwKEAA94vPWCCCAAAIIIICADwECoA913hMBBBBAAAEEEPAoQAD0iM9bI4AAAggggAACPgQIgD7UeU8EEEAAAQQQQMCjAAHQIz5vjQACCCCAAAII+BAgAPpQ5z0RQAABBBBAAAGPAgRAj/i8NQIIIIAAAggg4EPg/wM/U80xWEZzZAAAAABJRU5ErkJggg==\" width=\"640\">"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "clfr= KNeighborsClassifier(n_neighbors=6)\n",
    "train_proportion= [0.9,0.8,0.7,0.6,0.5,0.4,0.3,0.2]\n",
    "plt.figure()\n",
    "\n",
    "for proporton in train_proportion:\n",
    "    score=[]\n",
    "    for i in range(1,1000):\n",
    "        x_train,x_test,y_train,y_test= train_test_split(features, label, train_size=proporton)\n",
    "        clfr.fit(x_train,y_train)\n",
    "        score.append(clfr.score(x_test,y_test))\n",
    "    plt.plot(proporton, np.mean(score), 'bo')\n",
    "\n",
    "plt.xlabel('Training set proportion (%)')\n",
    "plt.ylabel('accuracy');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c7754cff",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "67fed56b",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "84e4e402",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "64791370",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "1a835274",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "x_train, x_test,y_train,y_test= train_test_split(features, label, random_state=42)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "427f69c0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.8666666666666667"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.ensemble import RandomForestClassifier\n",
    "clfr= RandomForestClassifier()\n",
    "clfr.fit(x_train,y_train)\n",
    "clfr.score(x_test, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "61b9f652",
   "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": "stdout",
     "output_type": "stream",
     "text": [
      "0.9 0.832999331997328\n",
      "0.8 0.8149632598530393\n",
      "0.7 0.8059452237808952\n",
      "0.6 0.781062124248497\n",
      "0.5 0.7619906479625919\n",
      "0.4 0.7258405700289469\n",
      "0.3 0.6758755606450996\n",
      "0.2 0.6074231796927189\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'Accuracy')"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_proportion= [0.9,0.8,0.7,0.6,0.5,0.4,0.3,0.2]\n",
    "plt.figure()\n",
    "\n",
    "for proportion in train_proportion:\n",
    "    score=[]\n",
    "    for i in range(1,500):\n",
    "        x_train, x_test,y_train,y_test= train_test_split(features, label, train_size=proportion)\n",
    "        clfr.fit(x_train,y_train)\n",
    "        score.append(clfr.score(x_test,y_test))\n",
    "    print(proportion, np.mean(score))\n",
    "    plt.plot(proportion,np.mean(score), 'bo')\n",
    "plt.xlabel('Training Proportion %')\n",
    "plt.ylabel('Accuracy')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6f5fd9f7",
   "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
}
