{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "5edae274",
   "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": "ce82055f",
   "metadata": {},
   "outputs": [],
   "source": [
    "fruit =  pd.read_table('Source/readonly/fruit_data_with_colors.txt')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "4b11a56a",
   "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": "0e5e2344",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "ad9fbf56",
   "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": "9616bdcd",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "d14b87ff",
   "metadata": {},
   "outputs": [],
   "source": [
    "#examine/plots"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "4971199f",
   "metadata": {},
   "outputs": [],
   "source": [
    "from matplotlib import cm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "38604db8",
   "metadata": {},
   "outputs": [],
   "source": [
    "features= fruit[['mass', 'width','height']]\n",
    "label= fruit['fruit_label']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "769bd322",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "fe3fa472",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "a6ab3797",
   "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": "95514bb2",
   "metadata": {},
   "outputs": [],
   "source": [
    "#3d plot\n",
    "\n",
    "from mpl_toolkits.mplot3d import Axes3D"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "05fdf31f",
   "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": "28e14a09",
   "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": "b622a4a2",
   "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": "cc8ae24b",
   "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": "e0935446",
   "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": "0f7d272c",
   "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": "adf2dcc8",
   "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": "ac4abb3a",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "14bca535",
   "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"
    }
   ],
   "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": "4070adaa",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "4f5c3d58",
   "metadata": {},
   "outputs": [],
   "source": [
    "# maximum accuracy for when k neighbours = 6"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "c41afd6d",
   "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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IOBzAcbvBAfAiy++WO666y6599575dRTT5UPPvjAPBNQ/6527doyYsQIX5cQBeTr7ku6g/fuAtYDC56X5y7gpOsqDggBBHwuwPid4ABYrVo12bhxo+g3gpxxxhmyYsUKueiii8wNIfpYmAJ90q2PNwrIx52XpIce7jmA6ekiOTk8AiZJu+ZLmZcAACAASURBVIzDQgABHwowfic4AKanp8vSpUtN6LvkkkvMI2EyMzNl/fr10rVrVzlw4IAPy+anQ6aAfN19SXvwfBNI0nYNB4YAAhVEgPE7wQEwKytLWrVqJb/97W9l1KhRMmHCBOnRo4e5HrBFixbCTSAV5JPEaSCAAAIIIOAjAQJgggPgvn37zPf9nnvuuXL8+HF56qmnZM2aNdKoUSMZOnSo1KpVy0flUvxQKSBfdx8HjwACCCCQogKM3wkMgEePHpV58+bJtddeK+ecc06FLDEKqEJ2KyeFAAIIIFDBBRi/ExgAtXaqVq1qbvioX79+hSwlCqhCdisnhQACCCBQwQUYvxMcADt37izZ2dnSs2fPCllKFFCF7FZOCgEEEECgggswfic4AOo3gOidv4MGDZKWLVuKPhYmeNPnBPp5o4D83HscOwIIIIBAqgowfic4AJ5wwgnFaistLU302+f0f4/p8y58vFFAPu48Dh0BBBBAIGUFGL8THAA//fTTUovL79cGUkAp+28HJ44AAggg4GMBxu8EB0Af10ZUh04BRcXETggggAACCCSVAON3ggPg7NmzS+3wW2+9NakKItaDoYBiFWN/BBBAAAEE3Aswfic4ABZ90PMPP/wg3333nVSuXNk8IkYfFO3njQLyc+9x7AgggAACqSrA+J3gABiusLZu3Sq//vWv5cEHHzQPifbzRgH5ufc4dgQQQACBVBVg/HYQALXY3n33Xbnllltk8+bNvq49CsjX3cfBI4AAAgikqADjt6MA+P7778tVV10l2gF+3iggP/cex44AAgggkKoCjN8JDoAvvfRSSG3p8/8KCgrk2WeflfT0dFm2bJmva48C8nX3cfAIIIAAAikqwPid4ABY9EHQ+vDnM888U7p06SJPP/201K5d29elRwH5uvs4eAQQQACBFBVg/E5wAKzodUUBVfQe5vwQQAABBCqiAOM3AdCqrikgKz4aI4AAAggg4ESA8TvBAbB3797SqlUreeSRR0I6eNy4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\" 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": "dbdce01a",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ba7efb8a",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6da40665",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ef15527b",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "881c8919",
   "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": 26,
   "id": "206c4ff6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.8666666666666667"
      ]
     },
     "execution_count": 26,
     "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": 39,
   "id": "56654ec9",
   "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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7wQWgJoofc7fsmXLRL8P+IwzznD3/g0aNCjiMwH9mEAC5MerxjEjgAACCARdgP47wQVgdQ8YAaruV5jzQwABBBCojgL031VQAG7btk3+9re/ybFjx0pkqE+fPr7PFAHy/SXkBBBAAAEEAihA/53AAnD37t3Sv39/+fDDDyUlJUVCXzms/79uhfqwM59vBMjnF5DDRwABBBAIpAD9dwILwN69e7tv/Jg/f757FuA777zjFoT8/Oc/l8cff1zS0tJ8HzoC5PtLyAkggAACCARQgP47gQXgD37wA3n99dfdwg99DIwWgJdccon7Ny0C33//fd9HjgD5/hJyAggggAACARSg/05gAdigQQN599133ejfhRdeKAsWLJD09HTZtWuXXHbZZfLNN9/4PnIEyPeXkBNAAAEEEAigAP13AgtAneLVkT598PPgwYPdN3+MGzdO5s2b5wrDv/71r76PHAHy/SXkBBBAAAEEAihA/53AAvCPf/yjew5gRkaG6IKQm2++WbZv3y76FXErVqyQHj16+D5yBMj3l5ATQAABBBAIoAD9dwILwEh5+sc//iE6NRxaCez3zBEgv19Bjh8BBBBAIIgC9N8JKgCPHz8up59+uvvqtzZt2lTbbBGgantpOTEEEEAAgWosQP+doAJQM6MLP3JycuSKK66othEiQNX20nJiCCCAAALVWID+O4EF4LPPPisrV66U5557Ts4+++xqGSMCVC0vKyeFAAIIIFDNBei/E1gAtm3bVnbu3CnfffedNGvWTM4888wScXrvvfd8Hy8C5PtLyAkggAACCARQgP47gQXgxIkTTxqpX/3qV76PHAHy/SXkBBBAAAEEAihA/53AAjAIeSJAQbjKnCMCCCCAQHUToP+mADRlmgCZ+GiMAAIIIICAJwL03wksAGvUqHHS5/0VFhZ6ctHj+aYEKJ6avBYCCCCAAAJVI0D/ncACcM2aNSWuoi4Gef/992Xx4sWi9weOGDGiaq5yAt+FACUQl5dGAAEEEEAgQQL03wksAMu7ZtnZ2e6r4EoXiAm6xgl9WQKUUF5eHAEEEEAAgYQI0H97UADu2rVLLr/8cvc9wX7fCJDfryDHjwACCCAQRAH67youAI8cOSJjx46VdevWyY4dO3yfOQLk+0vICSCAAAIIBFCA/juBBWCDBg1KLAIpKiqSQ4cOSe3atd23g/Tp08f3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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.8306613226452906\n",
      "0.8 0.8249832999331996\n",
      "0.7 0.8072812291249166\n",
      "0.6 0.7829826319305276\n",
      "0.5 0.7565130260521042\n",
      "0.4 0.7317412602983746\n",
      "0.3 0.6786907147628591\n",
      "0.2 0.5974031396125584\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'Accuracy')"
      ]
     },
     "execution_count": 39,
     "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": "503796d0",
   "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
}
