{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# The scikit-learn interface" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import addutils.toc ; addutils.toc.js(ipy_notebook=True)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import scipy.io\n", "import numpy as np\n", "import pandas as pd\n", "import warnings\n", "from addutils import css_notebook\n", "css_notebook()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "warnings.filterwarnings('ignore')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1 Defining the estimator object" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In scikit-learn, almost all operations are done through an **estimator object**. For example, a linear regression estimator can be instantiated as follows:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=True)\n" ] } ], "source": [ "from sklearn import linear_model\n", "model = linear_model.LinearRegression(fit_intercept=True, normalize=True)\n", "print(model)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In brackets are displayed the current values for the “hyperparameters” of the estimator. To learn about the specific “hyperparameters” check the documentation:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# Try: model?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Meta parameters can be changed after the model has been created:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "LinearRegression(copy_X=True, fit_intercept=False, n_jobs=1, normalize=True)\n" ] } ], "source": [ "model.fit_intercept = False\n", "print(model)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Given a scikit-learn *estimator* object named `model`, the following methods are available:\n", "\n", "* *Available in all Estimators*\n", " * `model.fit()` : fit training data.\n", " * For supervised learning, this accepts two arguments: `model.fit(X, y)`.\n", " * For unsupervised learning, this accepts only a single argument `model.fit(X)`.\n", "* *Available in supervised estimators*\n", " * `model.predict()` : predict the label of a new set of data. This accepts one argument `model.predict(X_new)`).\n", " * `model.predict_proba()`: Returns the probability of a categorical label. The label itself is returned by `model.predict()`.\n", " * `model.score()`: Scores are between 0 and 1, with a larger score indicating a better fit.\n", "* *Available in unsupervised estimators*\n", " * `model.transform()`: Transform new data into the new basis. This accepts one argument `X_new`, and returns the new representation of the data.\n", " * `model.fit_transform()`: some estimators implement this method, which more efficiently performs a fit and a transform on the same input data." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2 Simple estimator example: fit a linear regression model" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " Loading BokehJS ...\n", "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "\n", "(function(root) {\n", " function now() {\n", " return new Date();\n", " }\n", "\n", " var force = true;\n", "\n", " if (typeof (root._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n", " root._bokeh_onload_callbacks = [];\n", " root._bokeh_is_loading = undefined;\n", " }\n", "\n", " var JS_MIME_TYPE = 'application/javascript';\n", " var HTML_MIME_TYPE = 'text/html';\n", " var EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n", " var CLASS_NAME = 'output_bokeh rendered_html';\n", "\n", " /**\n", " * Render data to the DOM node\n", " */\n", " function render(props, node) {\n", " var script = document.createElement(\"script\");\n", " node.appendChild(script);\n", " }\n", "\n", " /**\n", " * Handle when an output is cleared or removed\n", " */\n", " function handleClearOutput(event, handle) {\n", " var cell = handle.cell;\n", "\n", " var id = cell.output_area._bokeh_element_id;\n", " var server_id = cell.output_area._bokeh_server_id;\n", " // Clean up Bokeh references\n", " if (id !== undefined) {\n", " Bokeh.index[id].model.document.clear();\n", " delete Bokeh.index[id];\n", " }\n", "\n", " if (server_id !== undefined) {\n", " // Clean up Bokeh references\n", " var cmd = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n", " cell.notebook.kernel.execute(cmd, {\n", " iopub: {\n", " output: function(msg) {\n", " var element_id = msg.content.text.trim();\n", " Bokeh.index[element_id].model.document.clear();\n", " delete Bokeh.index[element_id];\n", " }\n", " }\n", " });\n", " // Destroy server and session\n", " var cmd = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n", " cell.notebook.kernel.execute(cmd);\n", " }\n", " }\n", "\n", " /**\n", " * Handle when a new output is added\n", " */\n", " function handleAddOutput(event, handle) {\n", " var output_area = handle.output_area;\n", " var output = handle.output;\n", "\n", " // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n", " if ((output.output_type != \"display_data\") || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n", " return\n", " }\n", "\n", " var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n", "\n", " if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n", " toinsert[0].firstChild.textContent = output.data[JS_MIME_TYPE];\n", " // store reference to embed id on output_area\n", " output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n", " }\n", " if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n", " var bk_div = document.createElement(\"div\");\n", " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n", " var script_attrs = bk_div.children[0].attributes;\n", " for (var i = 0; i < script_attrs.length; i++) {\n", " toinsert[0].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n", " }\n", " // store reference to server id on output_area\n", " output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n", " }\n", " }\n", "\n", " function register_renderer(events, OutputArea) {\n", "\n", " function append_mime(data, metadata, element) {\n", " // create a DOM node to render to\n", " var toinsert = this.create_output_subarea(\n", " metadata,\n", " CLASS_NAME,\n", " EXEC_MIME_TYPE\n", " );\n", " this.keyboard_manager.register_events(toinsert);\n", " // Render to node\n", " var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n", " render(props, toinsert[0]);\n", " element.append(toinsert);\n", " return toinsert\n", " }\n", "\n", " /* Handle when an output is cleared or removed */\n", " events.on('clear_output.CodeCell', handleClearOutput);\n", " events.on('delete.Cell', handleClearOutput);\n", "\n", " /* Handle when a new output is added */\n", " events.on('output_added.OutputArea', handleAddOutput);\n", "\n", " /**\n", " * Register the mime type and append_mime function with output_area\n", " */\n", " OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n", " /* Is output safe? */\n", " safe: true,\n", " /* Index of renderer in `output_area.display_order` */\n", " index: 0\n", " });\n", " }\n", "\n", " // register the mime type if in Jupyter Notebook environment and previously unregistered\n", " if (root.Jupyter !== undefined) {\n", " var events = require('base/js/events');\n", " var OutputArea = require('notebook/js/outputarea').OutputArea;\n", "\n", " if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n", " register_renderer(events, OutputArea);\n", " }\n", " }\n", "\n", " \n", " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n", " root._bokeh_timeout = Date.now() + 5000;\n", " root._bokeh_failed_load = false;\n", " }\n", "\n", " var NB_LOAD_WARNING = {'data': {'text/html':\n", " \"
\\n\"+\n", " \"

\\n\"+\n", " \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n", " \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n", " \"

\\n\"+\n", " \"
    \\n\"+\n", " \"
  • re-rerun `output_notebook()` to attempt to load from CDN again, or
  • \\n\"+\n", " \"
  • use INLINE resources instead, as so:
  • \\n\"+\n", " \"
\\n\"+\n", " \"\\n\"+\n", " \"from bokeh.resources import INLINE\\n\"+\n", " \"output_notebook(resources=INLINE)\\n\"+\n", " \"\\n\"+\n", " \"
\"}};\n", "\n", " function display_loaded() {\n", " var el = document.getElementById(\"3ce6c613-cfe5-444f-adcb-415329272159\");\n", " if (el != null) {\n", " el.textContent = \"BokehJS is loading...\";\n", " }\n", " if (root.Bokeh !== undefined) {\n", " if (el != null) {\n", " el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n", " }\n", " } else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(display_loaded, 100)\n", " }\n", " }\n", "\n", "\n", " function run_callbacks() {\n", " try {\n", " root._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n", " }\n", " finally {\n", " delete root._bokeh_onload_callbacks\n", " }\n", " console.info(\"Bokeh: all callbacks have finished\");\n", " }\n", "\n", " function load_libs(js_urls, callback) {\n", " root._bokeh_onload_callbacks.push(callback);\n", " if (root._bokeh_is_loading > 0) {\n", " console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n", " return null;\n", " }\n", " if (js_urls == null || js_urls.length === 0) {\n", " run_callbacks();\n", " return null;\n", " }\n", " console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", " root._bokeh_is_loading = js_urls.length;\n", " for (var i = 0; i < js_urls.length; i++) {\n", " var url = js_urls[i];\n", " var s = document.createElement('script');\n", " s.src = url;\n", " s.async = false;\n", " s.onreadystatechange = s.onload = function() {\n", " root._bokeh_is_loading--;\n", " if (root._bokeh_is_loading === 0) {\n", " console.log(\"Bokeh: all BokehJS libraries loaded\");\n", " run_callbacks()\n", " }\n", " };\n", " s.onerror = function() {\n", " console.warn(\"failed to load library \" + url);\n", " };\n", " console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", " document.getElementsByTagName(\"head\")[0].appendChild(s);\n", " }\n", " };var element = document.getElementById(\"3ce6c613-cfe5-444f-adcb-415329272159\");\n", " if (element == null) {\n", " console.log(\"Bokeh: ERROR: autoload.js configured with elementid '3ce6c613-cfe5-444f-adcb-415329272159' but no matching script tag was found. \")\n", " return false;\n", " }\n", "\n", " var js_urls = [\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.13.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.13.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.13.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-gl-0.12.13.min.js\"];\n", "\n", " var inline_js = [\n", " function(Bokeh) {\n", " Bokeh.set_log_level(\"info\");\n", " },\n", " \n", " function(Bokeh) {\n", " \n", " },\n", " function(Bokeh) {\n", " console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-0.12.13.min.css\");\n", " Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.13.min.css\");\n", " console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.13.min.css\");\n", " Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.13.min.css\");\n", " console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.13.min.css\");\n", " Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.13.min.css\");\n", " }\n", " ];\n", "\n", " function run_inline_js() {\n", " \n", " if ((root.Bokeh !== undefined) || (force === true)) {\n", " for (var i = 0; i < inline_js.length; i++) {\n", " inline_js[i].call(root, root.Bokeh);\n", " }if (force === true) {\n", " display_loaded();\n", " }} else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(run_inline_js, 100);\n", " } else if (!root._bokeh_failed_load) {\n", " console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n", " root._bokeh_failed_load = true;\n", " } else if (force !== true) {\n", " var cell = $(document.getElementById(\"3ce6c613-cfe5-444f-adcb-415329272159\")).parents('.cell').data().cell;\n", " cell.output_area.append_execute_result(NB_LOAD_WARNING)\n", " }\n", "\n", " }\n", "\n", " if (root._bokeh_is_loading === 0) {\n", " console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n", " run_inline_js();\n", " } else {\n", " load_libs(js_urls, function() {\n", " console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n", " run_inline_js();\n", " });\n", " }\n", "}(window));" ], "application/vnd.bokehjs_load.v0+json": "\n(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n\n if (typeof (root._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\n \n\n \n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n var NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"
    \\n\"+\n \"
  • re-rerun `output_notebook()` to attempt to load from CDN again, or
  • \\n\"+\n \"
  • use INLINE resources instead, as so:
  • \\n\"+\n \"
\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded() {\n var el = document.getElementById(\"3ce6c613-cfe5-444f-adcb-415329272159\");\n if (el != null) {\n el.textContent = \"BokehJS is loading...\";\n }\n if (root.Bokeh !== undefined) {\n if (el != null) {\n el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(display_loaded, 100)\n }\n }\n\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n }\n finally {\n delete root._bokeh_onload_callbacks\n }\n console.info(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(js_urls, callback) {\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = js_urls.length;\n for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n var s = document.createElement('script');\n s.src = url;\n s.async = false;\n s.onreadystatechange = s.onload = function() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.log(\"Bokeh: all BokehJS libraries loaded\");\n run_callbacks()\n }\n };\n s.onerror = function() {\n console.warn(\"failed to load library \" + url);\n };\n console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.getElementsByTagName(\"head\")[0].appendChild(s);\n }\n };var element = document.getElementById(\"3ce6c613-cfe5-444f-adcb-415329272159\");\n if (element == null) {\n console.log(\"Bokeh: ERROR: autoload.js configured with elementid '3ce6c613-cfe5-444f-adcb-415329272159' but no matching script tag was found. \")\n return false;\n }\n\n var js_urls = [\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.13.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.13.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.13.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-gl-0.12.13.min.js\"];\n\n var inline_js = [\n function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\n \n function(Bokeh) {\n \n },\n function(Bokeh) {\n console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-0.12.13.min.css\");\n Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.13.min.css\");\n console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.13.min.css\");\n Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.13.min.css\");\n console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.13.min.css\");\n Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.13.min.css\");\n }\n ];\n\n function run_inline_js() {\n \n if ((root.Bokeh !== undefined) || (force === true)) {\n for (var i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }if (force === true) {\n display_loaded();\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n var cell = $(document.getElementById(\"3ce6c613-cfe5-444f-adcb-415329272159\")).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n\n }\n\n if (root._bokeh_is_loading === 0) {\n console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(js_urls, function() {\n console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import bokeh.plotting as bk\n", "bk.output_notebook()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)\n", "Model coefficient: 275.99550, and intercept: -145.41186\n", "Mean Squared Error: 23.04\n" ] }, { "data": { "text/html": [ "\n", "
\n", "
\n", "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " var docs_json = {\"0179b26f-7285-4b81-819d-021c077498bf\":{\"roots\":{\"references\":[{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"62f266b1-96da-4331-9ccc-4b8e40b5fb75\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"c05d9e46-1fa0-4c05-a396-d2effed97b79\",\"type\":\"BasicTicker\"}},\"id\":\"2e53db19-2024-429a-b665-5b8f4b343341\",\"type\":\"Grid\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"f79540e4-9073-4bad-925a-5d8eb97e752a\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"6df6be40-5626-4854-ac69-356c64c0244e\",\"type\":\"PanTool\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"09d3d1ee-aaef-4870-97c1-7708cea35577\",\"type\":\"Circle\"},{\"attributes\":{\"data_source\":{\"id\":\"f962cfc9-2b65-4389-b935-55f3c9c61c8d\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"198f1793-5fdc-473f-aafb-892c7d094c2e\",\"type\":\"Circle\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"09d3d1ee-aaef-4870-97c1-7708cea35577\",\"type\":\"Circle\"},\"selection_glyph\":null,\"view\":{\"id\":\"838752e8-0c2c-48cf-a3ed-152c6a5be127\",\"type\":\"CDSView\"}},\"id\":\"e111bfec-9286-43b1-ae7a-0c9b5b05c03a\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"items\":[{\"id\":\"fa0c1121-d1e5-47a1-b6d0-f761ab628dbb\",\"type\":\"LegendItem\"},{\"id\":\"aa504a58-f330-4917-9567-1a55faee1c2c\",\"type\":\"LegendItem\"}],\"location\":\"bottom_right\",\"plot\":{\"id\":\"62f266b1-96da-4331-9ccc-4b8e40b5fb75\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"5047347a-deea-4c94-a8fa-a2508890fc24\",\"type\":\"Legend\"},{\"attributes\":{},\"id\":\"c6b010de-a9e3-43d5-8cc7-4c0e02f87de5\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"overlay\":{\"id\":\"f79540e4-9073-4bad-925a-5d8eb97e752a\",\"type\":\"BoxAnnotation\"}},\"id\":\"2597f0f8-e93c-4d45-b128-93ca27fd2b17\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"f4e3db3a-1dab-45c9-ab56-e13b04caeb1b\",\"type\":\"SaveTool\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[2]},\"y\":{\"__ndarray__\":\"796e/C0tYsBdvJQprVJgQA==\",\"dtype\":\"float64\",\"shape\":[2]}}},\"id\":\"7c997fa7-0dac-4ee4-bc73-1347184e9b86\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"ce1d27f2-445b-476f-8bf4-d480dfe64dcf\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"2b2e049a-760c-46af-856a-2e6428f08cd4\",\"type\":\"HelpTool\"},{\"attributes\":{\"below\":[{\"id\":\"f11b0971-062d-4529-96f8-2b84f1a485d2\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"d0f423eb-9595-4164-93e4-a482035514e6\",\"type\":\"LinearAxis\"}],\"plot_height\":300,\"renderers\":[{\"id\":\"f11b0971-062d-4529-96f8-2b84f1a485d2\",\"type\":\"LinearAxis\"},{\"id\":\"8a4af655-311e-4c08-b129-946e05e46610\",\"type\":\"Grid\"},{\"id\":\"d0f423eb-9595-4164-93e4-a482035514e6\",\"type\":\"LinearAxis\"},{\"id\":\"2e53db19-2024-429a-b665-5b8f4b343341\",\"type\":\"Grid\"},{\"id\":\"f79540e4-9073-4bad-925a-5d8eb97e752a\",\"type\":\"BoxAnnotation\"},{\"id\":\"5047347a-deea-4c94-a8fa-a2508890fc24\",\"type\":\"Legend\"},{\"id\":\"e111bfec-9286-43b1-ae7a-0c9b5b05c03a\",\"type\":\"GlyphRenderer\"},{\"id\":\"ec41a18b-7b98-4722-876c-4ec4d023b587\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"2dc39332-c249-4b2e-9682-14d7a0e3e05f\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"18cf78eb-877b-443c-be40-47b1d21d0140\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"c10eb460-7315-4684-9053-d5ad68383397\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"f690ae85-12f9-4197-a182-92ef7203ac7d\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"bb618ef0-717a-4ade-98e0-f6e6fc50db35\",\"type\":\"DataRange1d\"},\"y_scale\":{\"id\":\"b9c971a6-2e54-4f46-b213-ec9a2060875c\",\"type\":\"LinearScale\"}},\"id\":\"62f266b1-96da-4331-9ccc-4b8e40b5fb75\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"b0e8c80c-ce9b-4b37-a05d-f4cc04735c0a\",\"type\":\"Line\"},{\"attributes\":{\"plot\":null,\"text\":\"Simple Regression\"},\"id\":\"2dc39332-c249-4b2e-9682-14d7a0e3e05f\",\"type\":\"Title\"},{\"attributes\":{\"callback\":null},\"id\":\"c10eb460-7315-4684-9053-d5ad68383397\",\"type\":\"DataRange1d\"},{\"attributes\":{\"label\":{\"value\":\"Predicted Values\"},\"renderers\":[{\"id\":\"ec41a18b-7b98-4722-876c-4ec4d023b587\",\"type\":\"GlyphRenderer\"}]},\"id\":\"aa504a58-f330-4917-9567-1a55faee1c2c\",\"type\":\"LegendItem\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"6df6be40-5626-4854-ac69-356c64c0244e\",\"type\":\"PanTool\"},{\"id\":\"c6b010de-a9e3-43d5-8cc7-4c0e02f87de5\",\"type\":\"WheelZoomTool\"},{\"id\":\"2597f0f8-e93c-4d45-b128-93ca27fd2b17\",\"type\":\"BoxZoomTool\"},{\"id\":\"f4e3db3a-1dab-45c9-ab56-e13b04caeb1b\",\"type\":\"SaveTool\"},{\"id\":\"ce1d27f2-445b-476f-8bf4-d480dfe64dcf\",\"type\":\"ResetTool\"},{\"id\":\"2b2e049a-760c-46af-856a-2e6428f08cd4\",\"type\":\"HelpTool\"}]},\"id\":\"18cf78eb-877b-443c-be40-47b1d21d0140\",\"type\":\"Toolbar\"},{\"attributes\":{\"data_source\":{\"id\":\"7c997fa7-0dac-4ee4-bc73-1347184e9b86\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"00317a84-2cf2-42d1-81df-fd99db4dc661\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"b0e8c80c-ce9b-4b37-a05d-f4cc04735c0a\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"d2cb92a5-aaba-41cd-8808-415eb9da2699\",\"type\":\"CDSView\"}},\"id\":\"ec41a18b-7b98-4722-876c-4ec4d023b587\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2c46540b-404b-4731-8441-079f50673834\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"b9c971a6-2e54-4f46-b213-ec9a2060875c\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"f690ae85-12f9-4197-a182-92ef7203ac7d\",\"type\":\"LinearScale\"},{\"attributes\":{\"source\":{\"id\":\"7c997fa7-0dac-4ee4-bc73-1347184e9b86\",\"type\":\"ColumnDataSource\"}},\"id\":\"d2cb92a5-aaba-41cd-8808-415eb9da2699\",\"type\":\"CDSView\"},{\"attributes\":{\"callback\":null},\"id\":\"bb618ef0-717a-4ade-98e0-f6e6fc50db35\",\"type\":\"DataRange1d\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"R5MkkUS93D++AhuVNhnmP0IKp+BWJ+M/lB0l7imM3D+4xXLJO7/hP/L5tOUJ8cU//qAOJWEO3z8Ricohsx3bP7AXcxqfG90/+Cx0VNJU7T8wkXXz7h3iP2bw0A4pHOs/////////7z9jct+qOuXhPyS8B37MB9g/SgTUBpr02D9ghjRQ//7VPzFvtO+uwOA/CCIXYuF9yD+H6oTJRz7hP87m5GXocuM/P+IpGoLi4z+3kqEPAarjP8y5GfrxEc4/DTB6M4uL1j+1gxhCFxnWP2AIxRkt4u0/V3mUiOne3z8PjbswZD7nP9biMy4DecY/cy+7LxFB0T8PGXSm5qzmPyBenibPluo/sMuoa81G5T9+5kFZIMjjPwFStvHAgeM/Xx4FOET95T/WWdkn8OroP79+0UjN1tU//cFPWA5v5z8AAAAAAAAAAKq/Gt7dENw/Zg8shcoQ3T9MJUEqVgTjP8zariDKSOE/38J5626w6j+Lpr4qwPfhPwMUxZ5W8uI/BPYxWR3e3T/M1ju4+c7vP5YrFwySKM0/ZnpyqSp22T+OSY33pALkP0XtRWrIGds/U/m6PO320z/BsXpgM2XfP51sfKGKYeE/Zc1tnyH64T+U8Ak5ouzIP5aPoiojKN8/Gm1VtESY4z9WFheMOUHgP8I3BHNs2uo/kk6aoagW1z+a5gbzODbSP2xx5TMrQ90/bKa8SwGl7D9NTAcTWRrpP0o1ZqIQ6dQ/ED0IvIBfvj8=\",\"dtype\":\"float64\",\"shape\":[70]},\"y\":{\"__ndarray__\":\"OPITuPtIM8A4mChlpmlBQPAr3nUYPTZAIogSUvv1OMCrYWZDiskhQH/SmpLaYVnAKUXFgFtbJ8BYfvMnIcM4wOgamcrj9yrAg4sGVNamWUCEbO9MiesyQK2asKkP1VRAbvt1cyoHYUD0fy6bvIMxQJzGLT6q2kTAX5nTjYM3SMB3LwmBZ0BLwCSWEkdTof2/R1URhvDKVcCZV4t8aKsWQEZjYCv/CzZAd8lqxBs2OUCrjE8k1R8zQDsmBXzsHVLAE8q3NGsPSsBr6MX0Iv1GwKpPQarktl1AEHXlTY/xLcBiJeHyxjZMQFZEDFIr9FbAKJTqR2A+U8An8dWM01NLQB4OcLyy2FZAolixNJovQkBA6nYwS+s4QPk1+voBxzdAXFyZoVBNQkBAIKPEHg1RQMveFg7G60nAMQQFWdYWSkD68xdsOcthwIdIxT5VBjrA5n+i4ejZMsDQggJBkZE2QGs9M5FHtQvALv6xn05/V0B1n557BuAeQGAMd06S2zJAKFXz/VUgOsDkBapRBF9gQMaUbcsbxFPAx/BrP59dQcAHEuuZC5A2QMNzgJfvTjzANaDSS4xiSsAycQN+QYslwGTbf8h6F+u/dNo9CnHe+D9JMVbgNCBXwKWC5k6g3R7ArAcbJzJ9OUDM9b8k/Bj1v7lwgWJZGlZAl+pCVC3vRsCZoYGhnnRQwMLJ7MLUsi/AELKZA1gkWUAouyAXdGBQQPKUZG0pmUnA6logX/cdXsA=\",\"dtype\":\"float64\",\"shape\":[70]}}},\"id\":\"f962cfc9-2b65-4389-b935-55f3c9c61c8d\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"green\"},\"line_color\":{\"value\":\"darkgreen\"},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"198f1793-5fdc-473f-aafb-892c7d094c2e\",\"type\":\"Circle\"},{\"attributes\":{\"source\":{\"id\":\"f962cfc9-2b65-4389-b935-55f3c9c61c8d\",\"type\":\"ColumnDataSource\"}},\"id\":\"838752e8-0c2c-48cf-a3ed-152c6a5be127\",\"type\":\"CDSView\"},{\"attributes\":{\"line_color\":\"blue\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"00317a84-2cf2-42d1-81df-fd99db4dc661\",\"type\":\"Line\"},{\"attributes\":{\"axis_label\":\"X scaled\",\"formatter\":{\"id\":\"af7197bd-a459-40c5-b5c5-f88a78c3086e\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"62f266b1-96da-4331-9ccc-4b8e40b5fb75\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"771d30db-f212-4889-a316-63120e7f72b6\",\"type\":\"BasicTicker\"}},\"id\":\"f11b0971-062d-4529-96f8-2b84f1a485d2\",\"type\":\"LinearAxis\"},{\"attributes\":{\"label\":{\"value\":\"Measured Data\"},\"renderers\":[{\"id\":\"e111bfec-9286-43b1-ae7a-0c9b5b05c03a\",\"type\":\"GlyphRenderer\"}]},\"id\":\"fa0c1121-d1e5-47a1-b6d0-f761ab628dbb\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"771d30db-f212-4889-a316-63120e7f72b6\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"af7197bd-a459-40c5-b5c5-f88a78c3086e\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"plot\":{\"id\":\"62f266b1-96da-4331-9ccc-4b8e40b5fb75\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"771d30db-f212-4889-a316-63120e7f72b6\",\"type\":\"BasicTicker\"}},\"id\":\"8a4af655-311e-4c08-b129-946e05e46610\",\"type\":\"Grid\"},{\"attributes\":{\"axis_label\":\"y\",\"formatter\":{\"id\":\"2c46540b-404b-4731-8441-079f50673834\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"62f266b1-96da-4331-9ccc-4b8e40b5fb75\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"c05d9e46-1fa0-4c05-a396-d2effed97b79\",\"type\":\"BasicTicker\"}},\"id\":\"d0f423eb-9595-4164-93e4-a482035514e6\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"c05d9e46-1fa0-4c05-a396-d2effed97b79\",\"type\":\"BasicTicker\"}],\"root_ids\":[\"62f266b1-96da-4331-9ccc-4b8e40b5fb75\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.13\"}};\n", " var render_items = [{\"docid\":\"0179b26f-7285-4b81-819d-021c077498bf\",\"elementid\":\"da5d880b-45f3-4a08-b609-b4e2816984e8\",\"modelid\":\"62f266b1-96da-4331-9ccc-4b8e40b5fb75\"}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " var attempts = 0;\n", " var timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " clearInterval(timer);\n", " }\n", " attempts++;\n", " if (attempts > 100) {\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\")\n", " clearInterval(timer);\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "62f266b1-96da-4331-9ccc-4b8e40b5fb75" } }, "output_type": "display_data" } ], "source": [ "from sklearn import datasets, preprocessing, metrics\n", "X, y = datasets.samples_generator.make_regression(n_samples=70,\n", " n_features=1, n_informative=1,\n", " random_state=0, noise=5)\n", "scaler = preprocessing.MinMaxScaler()\n", "X_sc = scaler.fit_transform(X)\n", "\n", "lin = linear_model.LinearRegression(fit_intercept=True)\n", "lin.fit(X_sc, y)\n", "\n", "print(lin)\n", "print(\"Model coefficient: %.5f, and intercept: %.5f\" % (lin.coef_, lin.intercept_))\n", "err = metrics.mean_squared_error(lin.predict(X_sc), y)\n", "print(\"Mean Squared Error: %.2f\" % err)\n", "\n", "# Plot the data and the model prediction\n", "X_p = np.linspace(0, 1, 2)[:, np.newaxis]\n", "y_p = lin.predict(X_p)\n", "\n", "fig = bk.figure(title='Simple Regression', \n", " x_axis_label='X scaled',\n", " y_axis_label='y',\n", " plot_width=600, plot_height=300)\n", "fig.circle(X_sc.squeeze(), y, line_color='darkgreen', size=10,\n", " fill_color='green', fill_alpha=0.5, legend='Measured Data')\n", "fig.line(X_p.ravel(), y_p, line_color='blue', legend='Predicted Values')\n", "fig.legend.location = 'bottom_right'\n", "bk.show(fig)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3 Working with MATLAB files" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "v4 (Level 1.0), v6 and v7 to 7.2 matfiles are supported.\n", "To read matlab 7.3 format mat files an HDF5 python library is required. Please check the scipy documentation for more information." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The data can be generated with the following MATLAB code:\n", "\n", " % Generate Regression Test Data\n", " X = [1 2 3\n", " 4 5 6\n", " 7 8 9\n", " 0 1 2] + 0.1;\n", " y = sum(X,2);\n", " feat_names = strvcat('Feature One', 'Feature Two', 'Feature Three');\n", " save ('matlab_test_data_01', 'X','y', 'feat_names')" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": true }, "outputs": [], "source": [ "mat_data = scipy.io.loadmat('example_data/matlab_test_data_01.mat')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Variables names included in the `.mat` file are keys of the `mat_data` dictionary. Moreover the key `'__header__'` contains the mat-file information.\n", "Here we load the two variables in Pandas varialbles:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict_keys(['__header__', '__version__', '__globals__', 'X', 'y', 'feat_names'])" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mat_data.keys()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the following code the `.strip()` method is used to remove the trailing white spaces used by MATLAB to make all the variable names of the same lenght:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Feature One Feature Two Feature Three\n", "0 1.1 2.1 3.1\n", "1 4.1 5.1 6.1\n", "2 7.1 8.1 9.1\n", "3 0.1 1.1 2.1 \n", "\n", " measured\n", "0 6.3\n", "1 15.3\n", "2 24.3\n", "3 3.3\n" ] } ], "source": [ "X = pd.DataFrame(mat_data['X'], columns=[s.strip() for s in list(mat_data['feat_names'])])\n", "y = pd.DataFrame(mat_data['y'], columns=['measured'])\n", "print(X, '\\n\\n', y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 4 Datasets available in scikit-learn" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Typical *scikit-learn* dataset are dictionary-like object that holds all the data and metadata.\n", "\n", "* **Features** are usually stored in the `.data` field in the form of a 2D array `[n_samples, n_features]`.\n", "* **Explanatory variables (targets)** are usually stored in the `.target` field in the form of a 1D array.\n", "\n", "Scikit-learn makes available a host of datasets for testing learning algorithms:\n", "\n", "- **Packaged Data:** these small datasets can be downloaded with ``sklearn.datasets.load_*``\n", "- **Downloadable Data:** larger datasets that can be fetched from the web with ``sklearn.datasets.fetch_*``\n", "- **Generated Data:** can be created with `sklearn.datasets.make_*`\n", "\n", "Try by yourself:\n", "\n", "* `datasets.load_`\n", "* `datasets.fetch_`\n", "* `datasets.make_`" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": true }, "outputs": [], "source": [ "#datasets.make_" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4.1 Example: the \"Iris\" Packaged Dataset" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Features in the Iris dataset:\n", "\n", " 1. sepal length in cm\n", " 2. sepal width in cm\n", " 3. petal length in cm\n", " 4. petal width in cm\n", "\n", "- Target classes to predict:\n", "\n", " 1. Iris Setosa\n", " 2. Iris Versicolour\n", " 3. Iris Virginica" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": true }, "outputs": [], "source": [ "d = datasets.load_iris()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Try by yourself one of the following commands where *'d'* is the variable containing the dataset:\n", "\n", " print d.keys() # Structure of the contained data\n", " print d.DESCR # A complete description of the dataset\n", " print d.data.shape # [n_samples, n_features]\n", " print d.target.shape # [n_samples,]\n", " print d.feature_names\n", " datasets.get_data_home() # This is where the datasets are stored" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "dict_keys(['data', 'target', 'target_names', 'DESCR', 'feature_names'])\n", "['setosa' 'versicolor' 'virginica']\n", "['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']\n" ] } ], "source": [ "print(d.keys())\n", "print(d.target_names)\n", "print(d.feature_names)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4.2 Example: the \"Digits\" Packaged Dataset" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The *Digits* contains 1797 samples made of 64 features: each feature represents the grey-scale value of a 8x8 digit image:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " Loading BokehJS ...\n", "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "\n", "(function(root) {\n", " function now() {\n", " return new Date();\n", " }\n", "\n", " var force = true;\n", "\n", " if (typeof (root._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n", " root._bokeh_onload_callbacks = [];\n", " root._bokeh_is_loading = undefined;\n", " }\n", "\n", " var JS_MIME_TYPE = 'application/javascript';\n", " var HTML_MIME_TYPE = 'text/html';\n", " var EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n", " var CLASS_NAME = 'output_bokeh rendered_html';\n", "\n", " /**\n", " * Render data to the DOM node\n", " */\n", " function render(props, node) {\n", " var script = document.createElement(\"script\");\n", " node.appendChild(script);\n", " }\n", "\n", " /**\n", " * Handle when an output is cleared or removed\n", " */\n", " function handleClearOutput(event, handle) {\n", " var cell = handle.cell;\n", "\n", " var id = cell.output_area._bokeh_element_id;\n", " var server_id = cell.output_area._bokeh_server_id;\n", " // Clean up Bokeh references\n", " if (id !== undefined) {\n", " Bokeh.index[id].model.document.clear();\n", " delete Bokeh.index[id];\n", " }\n", "\n", " if (server_id !== undefined) {\n", " // Clean up Bokeh references\n", " var cmd = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n", " cell.notebook.kernel.execute(cmd, {\n", " iopub: {\n", " output: function(msg) {\n", " var element_id = msg.content.text.trim();\n", " Bokeh.index[element_id].model.document.clear();\n", " delete Bokeh.index[element_id];\n", " }\n", " }\n", " });\n", " // Destroy server and session\n", " var cmd = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n", " cell.notebook.kernel.execute(cmd);\n", " }\n", " }\n", "\n", " /**\n", " * Handle when a new output is added\n", " */\n", " function handleAddOutput(event, handle) {\n", " var output_area = handle.output_area;\n", " var output = handle.output;\n", "\n", " // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n", " if ((output.output_type != \"display_data\") || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n", " return\n", " }\n", "\n", " var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n", "\n", " if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n", " toinsert[0].firstChild.textContent = output.data[JS_MIME_TYPE];\n", " // store reference to embed id on output_area\n", " output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n", " }\n", " if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n", " var bk_div = document.createElement(\"div\");\n", " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n", " var script_attrs = bk_div.children[0].attributes;\n", " for (var i = 0; i < script_attrs.length; i++) {\n", " toinsert[0].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n", " }\n", " // store reference to server id on output_area\n", " output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n", " }\n", " }\n", "\n", " function register_renderer(events, OutputArea) {\n", "\n", " function append_mime(data, metadata, element) {\n", " // create a DOM node to render to\n", " var toinsert = this.create_output_subarea(\n", " metadata,\n", " CLASS_NAME,\n", " EXEC_MIME_TYPE\n", " );\n", " this.keyboard_manager.register_events(toinsert);\n", " // Render to node\n", " var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n", " render(props, toinsert[0]);\n", " element.append(toinsert);\n", " return toinsert\n", " }\n", "\n", " /* Handle when an output is cleared or removed */\n", " events.on('clear_output.CodeCell', handleClearOutput);\n", " events.on('delete.Cell', handleClearOutput);\n", "\n", " /* Handle when a new output is added */\n", " events.on('output_added.OutputArea', handleAddOutput);\n", "\n", " /**\n", " * Register the mime type and append_mime function with output_area\n", " */\n", " OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n", " /* Is output safe? */\n", " safe: true,\n", " /* Index of renderer in `output_area.display_order` */\n", " index: 0\n", " });\n", " }\n", "\n", " // register the mime type if in Jupyter Notebook environment and previously unregistered\n", " if (root.Jupyter !== undefined) {\n", " var events = require('base/js/events');\n", " var OutputArea = require('notebook/js/outputarea').OutputArea;\n", "\n", " if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n", " register_renderer(events, OutputArea);\n", " }\n", " }\n", "\n", " \n", " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n", " root._bokeh_timeout = Date.now() + 5000;\n", " root._bokeh_failed_load = false;\n", " }\n", "\n", " var NB_LOAD_WARNING = {'data': {'text/html':\n", " \"
\\n\"+\n", " \"

\\n\"+\n", " \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n", " \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n", " \"

\\n\"+\n", " \"
    \\n\"+\n", " \"
  • re-rerun `output_notebook()` to attempt to load from CDN again, or
  • \\n\"+\n", " \"
  • use INLINE resources instead, as so:
  • \\n\"+\n", " \"
\\n\"+\n", " \"\\n\"+\n", " \"from bokeh.resources import INLINE\\n\"+\n", " \"output_notebook(resources=INLINE)\\n\"+\n", " \"\\n\"+\n", " \"
\"}};\n", "\n", " function display_loaded() {\n", " var el = document.getElementById(\"3548d94f-2f10-48c6-9f14-2c29cbd564f3\");\n", " if (el != null) {\n", " el.textContent = \"BokehJS is loading...\";\n", " }\n", " if (root.Bokeh !== undefined) {\n", " if (el != null) {\n", " el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n", " }\n", " } else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(display_loaded, 100)\n", " }\n", " }\n", "\n", "\n", " function run_callbacks() {\n", " try {\n", " root._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n", " }\n", " finally {\n", " delete root._bokeh_onload_callbacks\n", " }\n", " console.info(\"Bokeh: all callbacks have finished\");\n", " }\n", "\n", " function load_libs(js_urls, callback) {\n", " root._bokeh_onload_callbacks.push(callback);\n", " if (root._bokeh_is_loading > 0) {\n", " console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n", " return null;\n", " }\n", " if (js_urls == null || js_urls.length === 0) {\n", " run_callbacks();\n", " return null;\n", " }\n", " console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", " root._bokeh_is_loading = js_urls.length;\n", " for (var i = 0; i < js_urls.length; i++) {\n", " var url = js_urls[i];\n", " var s = document.createElement('script');\n", " s.src = url;\n", " s.async = false;\n", " s.onreadystatechange = s.onload = function() {\n", " root._bokeh_is_loading--;\n", " if (root._bokeh_is_loading === 0) {\n", " console.log(\"Bokeh: all BokehJS libraries loaded\");\n", " run_callbacks()\n", " }\n", " };\n", " s.onerror = function() {\n", " console.warn(\"failed to load library \" + url);\n", " };\n", " console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", " document.getElementsByTagName(\"head\")[0].appendChild(s);\n", " }\n", " };var element = document.getElementById(\"3548d94f-2f10-48c6-9f14-2c29cbd564f3\");\n", " if (element == null) {\n", " console.log(\"Bokeh: ERROR: autoload.js configured with elementid '3548d94f-2f10-48c6-9f14-2c29cbd564f3' but no matching script tag was found. \")\n", " return false;\n", " }\n", "\n", " var js_urls = [\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.13.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.13.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.13.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-gl-0.12.13.min.js\"];\n", "\n", " var inline_js = [\n", " function(Bokeh) {\n", " Bokeh.set_log_level(\"info\");\n", " },\n", " \n", " function(Bokeh) {\n", " \n", " },\n", " function(Bokeh) {\n", " console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-0.12.13.min.css\");\n", " Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.13.min.css\");\n", " console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.13.min.css\");\n", " Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.13.min.css\");\n", " console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.13.min.css\");\n", " Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.13.min.css\");\n", " }\n", " ];\n", "\n", " function run_inline_js() {\n", " \n", " if ((root.Bokeh !== undefined) || (force === true)) {\n", " for (var i = 0; i < inline_js.length; i++) {\n", " inline_js[i].call(root, root.Bokeh);\n", " }if (force === true) {\n", " display_loaded();\n", " }} else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(run_inline_js, 100);\n", " } else if (!root._bokeh_failed_load) {\n", " console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n", " root._bokeh_failed_load = true;\n", " } else if (force !== true) {\n", " var cell = $(document.getElementById(\"3548d94f-2f10-48c6-9f14-2c29cbd564f3\")).parents('.cell').data().cell;\n", " cell.output_area.append_execute_result(NB_LOAD_WARNING)\n", " }\n", "\n", " }\n", "\n", " if (root._bokeh_is_loading === 0) {\n", " console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n", " run_inline_js();\n", " } else {\n", " load_libs(js_urls, function() {\n", " console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n", " run_inline_js();\n", " });\n", " }\n", "}(window));" ], "application/vnd.bokehjs_load.v0+json": "\n(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n\n if (typeof (root._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\n \n\n \n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n var NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"
    \\n\"+\n \"
  • re-rerun `output_notebook()` to attempt to load from CDN again, or
  • \\n\"+\n \"
  • use INLINE resources instead, as so:
  • \\n\"+\n \"
\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded() {\n var el = document.getElementById(\"3548d94f-2f10-48c6-9f14-2c29cbd564f3\");\n if (el != null) {\n el.textContent = \"BokehJS is loading...\";\n }\n if (root.Bokeh !== undefined) {\n if (el != null) {\n el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(display_loaded, 100)\n }\n }\n\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n }\n finally {\n delete root._bokeh_onload_callbacks\n }\n console.info(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(js_urls, callback) {\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = js_urls.length;\n for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n var s = document.createElement('script');\n s.src = url;\n s.async = false;\n s.onreadystatechange = s.onload = function() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.log(\"Bokeh: all BokehJS libraries loaded\");\n run_callbacks()\n }\n };\n s.onerror = function() {\n console.warn(\"failed to load library \" + url);\n };\n console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.getElementsByTagName(\"head\")[0].appendChild(s);\n }\n };var element = document.getElementById(\"3548d94f-2f10-48c6-9f14-2c29cbd564f3\");\n if (element == null) {\n console.log(\"Bokeh: ERROR: autoload.js configured with elementid '3548d94f-2f10-48c6-9f14-2c29cbd564f3' but no matching script tag was found. \")\n return false;\n }\n\n var js_urls = [\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.13.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.13.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.13.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-gl-0.12.13.min.js\"];\n\n var inline_js = [\n function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\n \n function(Bokeh) {\n \n },\n function(Bokeh) {\n console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-0.12.13.min.css\");\n Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.13.min.css\");\n console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.13.min.css\");\n Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.13.min.css\");\n console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.13.min.css\");\n Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.13.min.css\");\n }\n ];\n\n function run_inline_js() {\n \n if ((root.Bokeh !== undefined) || (force === true)) {\n for (var i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }if (force === true) {\n display_loaded();\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n var cell = $(document.getElementById(\"3548d94f-2f10-48c6-9f14-2c29cbd564f3\")).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n\n }\n\n if (root._bokeh_is_loading === 0) {\n console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(js_urls, function() {\n console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import bokeh.plotting as bk\n", "bk.output_notebook()" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", "
\n", "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " var docs_json = {\"0760670d-c2c1-444f-8dce-0cb8d2923f22\":{\"roots\":{\"references\":[{\"attributes\":{\"source\":{\"id\":\"73f95822-2176-4002-a40c-1327cb1f94b6\",\"type\":\"ColumnDataSource\"}},\"id\":\"883eec60-845b-4258-b0e1-b03a23f2f957\",\"type\":\"CDSView\"},{\"attributes\":{\"callback\":null,\"end\":2.61},\"id\":\"6aa662fb-c527-4565-9a49-d01bcd27fd71\",\"type\":\"Range1d\"},{\"attributes\":{\"palette\":[\"#ffffff\",\"#f0f0f0\",\"#d9d9d9\",\"#bdbdbd\",\"#969696\",\"#737373\",\"#525252\",\"#252525\",\"#000000\"]},\"id\":\"46a1eeb9-dcd3-4b8a-ace3-a79b0b771822\",\"type\":\"LinearColorMapper\"},{\"attributes\":{\"source\":{\"id\":\"57c9e72b-fc1e-4371-b60a-34e6579da74d\",\"type\":\"ColumnDataSource\"}},\"id\":\"8b12bcf4-2107-4628-99f4-92a782fcf209\",\"type\":\"CDSView\"},{\"attributes\":{\"grid_line_color\":{\"value\":null},\"plot\":{\"id\":\"1187a336-4cf6-4a55-a884-71c04390e69b\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"389c2af6-438b-45b6-828a-0199bc85d217\",\"type\":\"BasicTicker\"}},\"id\":\"7b076ff4-9aa5-410f-8203-b4a724843c8e\",\"type\":\"Grid\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"60ef0f4b-d8ac-4fc0-8afd-95926e1ff499\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"5c25e3a6-6069-4d39-83bf-56651808297b\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"389c2af6-438b-45b6-828a-0199bc85d217\",\"type\":\"BasicTicker\"},{\"attributes\":{\"data_source\":{\"id\":\"e05f1e8d-8785-4531-8a1b-12e2ed56791d\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"18dce9a0-1004-4f33-b31b-66ae3370625c\",\"type\":\"Image\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"441d5f71-1dd1-4e74-b417-86f1f94a7e7c\",\"type\":\"Image\"},\"selection_glyph\":null,\"view\":{\"id\":\"dd0688d0-4c10-472e-be6a-c0d604bd46ee\",\"type\":\"CDSView\"}},\"id\":\"49090402-5124-4096-b8d3-b24ce895274b\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"641e1f2b-f17c-40a0-827e-e5fe9c46b23c\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"overlay\":{\"id\":\"60ef0f4b-d8ac-4fc0-8afd-95926e1ff499\",\"type\":\"BoxAnnotation\"}},\"id\":\"dd3c8e03-f189-4ad7-9cbc-d2bbd575183b\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"e4427a01-b057-43a5-bdae-b9054032b7fd\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"d9b4444d-641f-4602-9cf3-4cc959ecad60\",\"type\":\"SaveTool\"},{\"attributes\":{\"text_alpha\":{\"value\":0.1},\"text_color\":{\"value\":\"black\"},\"text_font_size\":{\"value\":\"9pt\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"a3347c5d-e83a-46b2-bdf6-85b1415d6f6d\",\"type\":\"Text\"},{\"attributes\":{\"axis_line_color\":{\"value\":null},\"formatter\":{\"id\":\"e8936968-d19b-4412-84c8-ce84c2ab1b4c\",\"type\":\"BasicTickFormatter\"},\"major_label_text_color\":{\"value\":null},\"major_tick_in\":0,\"major_tick_out\":0,\"minor_tick_out\":0,\"plot\":{\"id\":\"1187a336-4cf6-4a55-a884-71c04390e69b\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"389c2af6-438b-45b6-828a-0199bc85d217\",\"type\":\"BasicTicker\"}},\"id\":\"adbf8543-c3b1-47a1-8027-981a70843edb\",\"type\":\"LinearAxis\"},{\"attributes\":{\"data_source\":{\"id\":\"57c9e72b-fc1e-4371-b60a-34e6579da74d\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"a452842c-7276-4053-b9f6-6c6bddbe5051\",\"type\":\"Text\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"a3347c5d-e83a-46b2-bdf6-85b1415d6f6d\",\"type\":\"Text\"},\"selection_glyph\":null,\"view\":{\"id\":\"8b12bcf4-2107-4628-99f4-92a782fcf209\",\"type\":\"CDSView\"}},\"id\":\"6d7386c3-abb8-4601-8df8-fc8845fa1f4e\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"callback\":null,\"end\":24.21},\"id\":\"288c536b-e1f2-4f98-9199-af160dfb5086\",\"type\":\"Range1d\"},{\"attributes\":{},\"id\":\"7ae3435b-225d-43f4-994a-fe404b60f3bf\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"b781cbf1-f8cf-4f37-8a98-6dc2b569046e\",\"type\":\"HelpTool\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"left\",\"right\",\"top\",\"bottom\"],\"data\":{\"bottom\":{\"__ndarray__\":\"mpmZmZmZyT+amZmZmZnJP5qZmZmZmck/mpmZmZmZyT+amZmZmZnJP5qZmZmZmck/mpmZmZmZyT+amZmZmZnJP5qZmZmZmck/mpmZmZmZyT+amZmZmZnJP5qZmZmZmck/mpmZmZmZyT+amZmZmZnJP5qZmZmZmck/mpmZmZmZyT+amZmZmZnJP5qZmZmZmck/mpmZmZmZyT+amZmZmZnJP2ZmZmZmZvY/ZmZmZmZm9j9mZmZmZmb2P2ZmZmZmZvY/ZmZmZmZm9j9mZmZmZmb2P2ZmZmZmZvY/ZmZmZmZm9j9mZmZmZmb2P2ZmZmZmZvY/ZmZmZmZm9j9mZmZmZmb2P2ZmZmZmZvY/ZmZmZmZm9j9mZmZmZmb2P2ZmZmZmZvY/ZmZmZmZm9j9mZmZmZmb2P2ZmZmZmZvY/ZmZmZmZm9j8=\",\"dtype\":\"float64\",\"shape\":[40]},\"left\":{\"__ndarray__\":\"mpmZmZmZyT9mZmZmZmb2P83MzMzMzARAZmZmZmZmDkAAAAAAAAAUQM3MzMzMzBhAmZmZmZmZHUAzMzMzMzMhQJmZmZmZmSNA////////JUBmZmZmZmYoQMzMzMzMzCpAMjMzMzMzLUCZmZmZmZkvQAAAAAAAADFAMzMzMzMzMkBmZmZmZmYzQJmZmZmZmTRAzMzMzMzMNUAAAAAAAAA3QJqZmZmZmck/ZmZmZmZm9j/NzMzMzMwEQGZmZmZmZg5AAAAAAAAAFEDNzMzMzMwYQJmZmZmZmR1AMzMzMzMzIUCZmZmZmZkjQP///////yVAZmZmZmZmKEDMzMzMzMwqQDIzMzMzMy1AmZmZmZmZL0AAAAAAAAAxQDMzMzMzMzJAZmZmZmZmM0CZmZmZmZk0QMzMzMzMzDVAAAAAAAAAN0A=\",\"dtype\":\"float64\",\"shape\":[40]},\"right\":{\"__ndarray__\":\"MzMzMzMz8z8zMzMzMzMDQM3MzMzMzAxAMzMzMzMzE0AAAAAAAAAYQM3MzMzMzBxAzMzMzMzMIEAzMzMzMzMjQJmZmZmZmSVA////////J0BmZmZmZmYqQMzMzMzMzCxAMjMzMzMzL0DMzMzMzMwwQAAAAAAAADJAMzMzMzMzM0BmZmZmZmY0QJmZmZmZmTVAzMzMzMzMNkAAAAAAAAA4QDMzMzMzM/M/MzMzMzMzA0DNzMzMzMwMQDMzMzMzMxNAAAAAAAAAGEDNzMzMzMwcQMzMzMzMzCBAMzMzMzMzI0CZmZmZmZklQP///////ydAZmZmZmZmKkDMzMzMzMwsQDIzMzMzMy9AzMzMzMzMMEAAAAAAAAAyQDMzMzMzMzNAZmZmZmZmNECZmZmZmZk1QMzMzMzMzDZAAAAAAAAAOEA=\",\"dtype\":\"float64\",\"shape\":[40]},\"top\":{\"__ndarray__\":\"MzMzMzMz8z8zMzMzMzPzPzMzMzMzM/M/MzMzMzMz8z8zMzMzMzPzPzMzMzMzM/M/MzMzMzMz8z8zMzMzMzPzPzMzMzMzM/M/MzMzMzMz8z8zMzMzMzPzPzMzMzMzM/M/MzMzMzMz8z8zMzMzMzPzPzMzMzMzM/M/MzMzMzMz8z8zMzMzMzPzPzMzMzMzM/M/MzMzMzMz8z8zMzMzMzPzPzMzMzMzMwNAMzMzMzMzA0AzMzMzMzMDQDMzMzMzMwNAMzMzMzMzA0AzMzMzMzMDQDMzMzMzMwNAMzMzMzMzA0AzMzMzMzMDQDMzMzMzMwNAMzMzMzMzA0AzMzMzMzMDQDMzMzMzMwNAMzMzMzMzA0AzMzMzMzMDQDMzMzMzMwNAMzMzMzMzA0AzMzMzMzMDQDMzMzMzMwNAMzMzMzMzA0A=\",\"dtype\":\"float64\",\"shape\":[40]}}},\"id\":\"73f95822-2176-4002-a40c-1327cb1f94b6\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"color_mapper\":{\"id\":\"f2f42b03-b327-4455-80bc-8ca774217ac2\",\"type\":\"LinearColorMapper\"},\"dh\":{\"units\":\"data\",\"value\":1.0},\"dw\":{\"units\":\"data\",\"value\":1.0},\"image\":{\"field\":\"image\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"441d5f71-1dd1-4e74-b417-86f1f94a7e7c\",\"type\":\"Image\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"5c25e3a6-6069-4d39-83bf-56651808297b\",\"type\":\"PanTool\"},{\"id\":\"641e1f2b-f17c-40a0-827e-e5fe9c46b23c\",\"type\":\"WheelZoomTool\"},{\"id\":\"dd3c8e03-f189-4ad7-9cbc-d2bbd575183b\",\"type\":\"BoxZoomTool\"},{\"id\":\"d9b4444d-641f-4602-9cf3-4cc959ecad60\",\"type\":\"SaveTool\"},{\"id\":\"7ae3435b-225d-43f4-994a-fe404b60f3bf\",\"type\":\"ResetTool\"},{\"id\":\"b781cbf1-f8cf-4f37-8a98-6dc2b569046e\",\"type\":\"HelpTool\"}]},\"id\":\"bf114dff-dfe5-457c-809f-84418e7f17c2\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"855cfd86-7f1a-4c3e-9687-9be4cf9d9d0d\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"palette\":[\"#ffffff\",\"#f0f0f0\",\"#d9d9d9\",\"#bdbdbd\",\"#969696\",\"#737373\",\"#525252\",\"#252525\",\"#000000\"]},\"id\":\"f2f42b03-b327-4455-80bc-8ca774217ac2\",\"type\":\"LinearColorMapper\"},{\"attributes\":{},\"id\":\"72969167-b249-43a9-a85c-31c654424855\",\"type\":\"LinearScale\"},{\"attributes\":{\"below\":[{\"id\":\"adbf8543-c3b1-47a1-8027-981a70843edb\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"2a2416e0-d9f6-4568-aacb-fee732dc47fd\",\"type\":\"LinearAxis\"}],\"min_border\":0,\"plot_height\":100,\"plot_width\":760,\"renderers\":[{\"id\":\"adbf8543-c3b1-47a1-8027-981a70843edb\",\"type\":\"LinearAxis\"},{\"id\":\"7b076ff4-9aa5-410f-8203-b4a724843c8e\",\"type\":\"Grid\"},{\"id\":\"2a2416e0-d9f6-4568-aacb-fee732dc47fd\",\"type\":\"LinearAxis\"},{\"id\":\"0078770b-04c8-46c7-9ac9-bfee8495bd61\",\"type\":\"Grid\"},{\"id\":\"60ef0f4b-d8ac-4fc0-8afd-95926e1ff499\",\"type\":\"BoxAnnotation\"},{\"id\":\"49090402-5124-4096-b8d3-b24ce895274b\",\"type\":\"GlyphRenderer\"},{\"id\":\"11f7489b-ea84-40e0-a872-e6d66abf1cd6\",\"type\":\"GlyphRenderer\"},{\"id\":\"6d7386c3-abb8-4601-8df8-fc8845fa1f4e\",\"type\":\"GlyphRenderer\"}],\"title\":null,\"toolbar\":{\"id\":\"bf114dff-dfe5-457c-809f-84418e7f17c2\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"288c536b-e1f2-4f98-9199-af160dfb5086\",\"type\":\"Range1d\"},\"x_scale\":{\"id\":\"72969167-b249-43a9-a85c-31c654424855\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"6aa662fb-c527-4565-9a49-d01bcd27fd71\",\"type\":\"Range1d\"},\"y_scale\":{\"id\":\"e4427a01-b057-43a5-bdae-b9054032b7fd\",\"type\":\"LinearScale\"}},\"id\":\"1187a336-4cf6-4a55-a884-71c04390e69b\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"text_color\":{\"value\":\"red\"},\"text_font_size\":{\"value\":\"9pt\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"a452842c-7276-4053-b9f6-6c6bddbe5051\",\"type\":\"Text\"},{\"attributes\":{\"source\":{\"id\":\"e05f1e8d-8785-4531-8a1b-12e2ed56791d\",\"type\":\"ColumnDataSource\"}},\"id\":\"dd0688d0-4c10-472e-be6a-c0d604bd46ee\",\"type\":\"CDSView\"},{\"attributes\":{\"axis_line_color\":{\"value\":null},\"formatter\":{\"id\":\"855cfd86-7f1a-4c3e-9687-9be4cf9d9d0d\",\"type\":\"BasicTickFormatter\"},\"major_label_text_color\":{\"value\":null},\"major_tick_in\":0,\"major_tick_out\":0,\"minor_tick_out\":0,\"plot\":{\"id\":\"1187a336-4cf6-4a55-a884-71c04390e69b\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"de9b20fd-0c45-4bdc-8668-4b3aad9300cb\",\"type\":\"BasicTicker\"}},\"id\":\"2a2416e0-d9f6-4568-aacb-fee732dc47fd\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"e8936968-d19b-4412-84c8-ce84c2ab1b4c\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"data_source\":{\"id\":\"73f95822-2176-4002-a40c-1327cb1f94b6\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"be965c98-aed9-4e96-a5dc-37ca71524cf4\",\"type\":\"Quad\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"52f2048c-3c87-4ce8-9987-e0a2b1adfb6a\",\"type\":\"Quad\"},\"selection_glyph\":null,\"view\":{\"id\":\"883eec60-845b-4258-b0e1-b03a23f2f957\",\"type\":\"CDSView\"}},\"id\":\"11f7489b-ea84-40e0-a872-e6d66abf1cd6\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"de9b20fd-0c45-4bdc-8668-4b3aad9300cb\",\"type\":\"BasicTicker\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"image\",\"x\",\"y\"],\"data\":{\"image\":[{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAABhAAAAAAAAAKkAAAAAAAAAkQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAsQAAAAAAAABRAAAAAAAAAJEAAAAAAAAAoQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAJkAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAKEAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUQAAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACJAAAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEAAAAAAAAAoQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhAAAAAAAAALkAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAJkAAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACpAAAAAAAAALkAAAAAAAAAkQAAAAAAAAC5AAAAAAAAAFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUQAAAAAAAACpAAAAAAAAAIkAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJkAAAAAAAAAwQAAAAAAAACRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAADBAAAAAAAAAMEAAAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAAAwQAAAAAAAADBAAAAAAAAAGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAMEAAAAAAAAAwQAAAAAAAAAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEAAAAAAAAAuQAAAAAAAADBAAAAAAAAAMEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAAAAAAAuQAAAAAAAADBAAAAAAAAAGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJkAAAAAAAAAwQAAAAAAAACJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChAAAAAAAAAKkAAAAAAAAAUQAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAAAAAAAmQAAAAAAAADBAAAAAAAAAIkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAAAAAAAqQAAAAAAAADBAAAAAAAAAMEAAAAAAAAAmQAAAAAAAABRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACJAAAAAAAAAMEAAAAAAAAAwQAAAAAAAABRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAACBAAAAAAAAAKkAAAAAAAAAuQAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAABhAAAAAAAAALkAAAAAAAAAmQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAAAAqQAAAAAAAACBAAAAAAAAAMEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhAAAAAAAAAMEAAAAAAAAAuQAAAAAAAACxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAALkAAAAAAAAAoQAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAABxAAAAAAAAAKkAAAAAAAAAqQAAAAAAAACJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAABBAAAAAAAAAFEAAAAAAAAAsQAAAAAAAACJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAJEAAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAAAoQAAAAAAAAChAAAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAC5AAAAAAAAAJkAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAA8D8AAAAAAAAqQAAAAAAAACpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAACpAAAAAAAAAGEAAAAAAAAAuQAAAAAAAABBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAC5AAAAAAAAAKkAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAwQAAAAAAAABBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhAAAAAAAAALkAAAAAAAAAkQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAALkAAAAAAAAAwQAAAAAAAACpAAAAAAAAAMEAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUQAAAAAAAADBAAAAAAAAAJEAAAAAAAAAAAAAAAAAAADBAAAAAAAAAGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAC5AAAAAAAAAAAAAAAAAAAAiQAAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAAAqQAAAAAAAABhAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEAAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAJkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAACJAAAAAAAAAMEAAAAAAAAAwQAAAAAAAACRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUQAAAAAAAABBAAAAAAAAAKEAAAAAAAAAwQAAAAAAAABBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAMEAAAAAAAAAiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEAAAAAAAAAcQAAAAAAAADBAAAAAAAAAHEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmQAAAAAAAADBAAAAAAAAAMEAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKkAAAAAAAAAwQAAAAAAAAC5AAAAAAAAAJEAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACxAAAAAAAAAMEAAAAAAAAAwQAAAAAAAACxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoQAAAAAAAACRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAIkAAAAAAAAAuQAAAAAAAACZAAAAAAAAACEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAADBAAAAAAAAAJkAAAAAAAAAuQAAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKkAAAAAAAAAwQAAAAAAAACpAAAAAAAAAMEAAAAAAAAAIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5AAAAAAAAAKEAAAAAAAAAcQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsQAAAAAAAACpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKkAAAAAAAAAwQAAAAAAAAAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABRAAAAAAAAAMEAAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChAAAAAAAAAKkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAACpAAAAAAAAAFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiQAAAAAAAAC5AAAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAAAAAABRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAACZAAAAAAAAALkAAAAAAAAAuQAAAAAAAABBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEAAAAAAAAAgQAAAAAAAACBAAAAAAAAALkAAAAAAAAAuQAAAAAAAABhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAAKkAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxAAAAAAAAAHEAAAAAAAAAQQAAAAAAAACZAAAAAAAAAKEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAACBAAAAAAAAAKkAAAAAAAAAwQAAAAAAAAC5AAAAAAAAA8D8=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAACZAAAAAAAAAMEAAAAAAAAAuQAAAAAAAACZAAAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAAAuQAAAAAAAAPA/AAAAAAAACEAAAAAAAAAwQAAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhAAAAAAAAAMEAAAAAAAAAgQAAAAAAAACRAAAAAAAAAKkAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAMEAAAAAAAAAwQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAAAAADBAAAAAAAAAKEAAAAAAAAAsQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIkAAAAAAAAAkQAAAAAAAAAAAAAAAAAAALkAAAAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChAAAAAAAAALEAAAAAAAAAsQAAAAAAAAChAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiQAAAAAAAACxAAAAAAAAAIEAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAACJAAAAAAAAAKEAAAAAAAAAqQAAAAAAAAAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIkAAAAAAAAAuQAAAAAAAABBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAAAAAAAAAAAAAAAAIkAAAAAAAAAmQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACpAAAAAAAAAMEAAAAAAAAAiQAAAAAAAAC5AAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAAAwQAAAAAAAAPA/AAAAAAAAKEAAAAAAAAAuQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhAAAAAAAAAMEAAAAAAAAAoQAAAAAAAACRAAAAAAAAALEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAADBAAAAAAAAAMEAAAAAAAAAwQAAAAAAAACpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmQAAAAAAAAChAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAJEAAAAAAAAAqQAAAAAAAAAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoQAAAAAAAAChAAAAAAAAAJEAAAAAAAAAkQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAMEAAAAAAAAAUQAAAAAAAAPA/AAAAAAAAJkAAAAAAAAAIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAADBAAAAAAAAAEEAAAAAAAAAAAAAAAAAAACBAAAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAAAwQAAAAAAAABBAAAAAAAAAAAAAAAAAAAAgQAAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAMEAAAAAAAAAkQAAAAAAAAAAAAAAAAAAAIkAAAAAAAAAiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZAAAAAAAAAMEAAAAAAAAAgQAAAAAAAACxAAAAAAAAAGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAACJAAAAAAAAALkAAAAAAAAAmQAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAAAqQAAAAAAAADBAAAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAMEAAAAAAAAAsQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUQAAAAAAAADBAAAAAAAAALkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAAAAAChAAAAAAAAALEAAAAAAAAAwQAAAAAAAACJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAAAkQAAAAAAAADBAAAAAAAAAMEAAAAAAAAAoQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsQAAAAAAAADBAAAAAAAAAKEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFEAAAAAAAAAwQAAAAAAAADBAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALEAAAAAAAAAqQAAAAAAAAPA/AAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhAAAAAAAAAJkAAAAAAAAAgQAAAAAAAACpAAAAAAAAAKEAAAAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiQAAAAAAAADBAAAAAAAAALkAAAAAAAAAiQAAAAAAAACBAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAAAC5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAwQAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAkQAAAAAAAAAAAAAAAAAAALEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKkAAAAAAAADwPwAAAAAAAChAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5AAAAAAAAALEAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUQAAAAAAAAChAAAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAQAAAAAAAAChAAAAAAAAAKEAAAAAAAAAqQAAAAAAAACZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAAAUQAAAAAAAABhAAAAAAAAAKkAAAAAAAAAwQAAAAAAAABhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAALkAAAAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAuQAAAAAAAACZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZAAAAAAAAALEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAAACxAAAAAAAAALkAAAAAAAAAIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAACpAAAAAAAAAIEAAAAAAAAAiQAAAAAAAADBAAAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAiQAAAAAAAAC5AAAAAAAAALEAAAAAAAAAiQAAAAAAAAAhAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJEAAAAAAAAAuQAAAAAAAABBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAMEAAAAAAAAAkQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAJEAAAAAAAAAuQAAAAAAAADBAAAAAAAAALEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiQAAAAAAAADBAAAAAAAAAKkAAAAAAAAAsQAAAAAAAADBAAAAAAAAAFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEAAAAAAAAAwQAAAAAAAABxAAAAAAAAA8D8AAAAAAAAwQAAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJEAAAAAAAAAuQAAAAAAAAAhAAAAAAAAALkAAAAAAAAAmQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAALEAAAAAAAAAqQAAAAAAAAPA/AAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAALkAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAQQAAAAAAAAC5AAAAAAAAAMEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAAAUQAAAAAAAAC5AAAAAAAAAKkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUQAAAAAAAADBAAAAAAAAACEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAABhAAAAAAAAAGEAAAAAAAAAwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAAAAwQAAAAAAAADBAAAAAAAAALEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAALEAAAAAAAAAmQAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmQAAAAAAAADBAAAAAAAAALkAAAAAAAAAgQAAAAAAAABBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFEAAAAAAAAAoQAAAAAAAACpAAAAAAAAAMEAAAAAAAAAwQAAAAAAAAABAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEAAAAAAAAAuQAAAAAAAADBAAAAAAAAAJkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAAAAACxAAAAAAAAAIkAAAAAAAAAAQAAAAAAAADBAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALkAAAAAAAAAwQAAAAAAAACJAAAAAAAAAIkAAAAAAAAAsQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxAAAAAAAAAMEAAAAAAAAAwQAAAAAAAACpAAAAAAAAAFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAAADBAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAAAAAAAwQAAAAAAAABxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKEAAAAAAAAAsQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAALkAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJkAAAAAAAAAiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACRAAAAAAAAAKkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAIEAAAAAAAAAoQAAAAAAAACxAAAAAAAAAIEAAAAAAAAAIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBAAAAAAAAAMEAAAAAAAAAwQAAAAAAAADBAAAAAAAAAKEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAAAAABRAAAAAAAAALkAAAAAAAAAkQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABRAAAAAAAAAJEAAAAAAAAAAAAAAAAAAACRAAAAAAAAAKEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAAAAACpAAAAAAAAALkAAAAAAAAAsQAAAAAAAACxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAACBAAAAAAAAALkAAAAAAAAAkQAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAACZAAAAAAAAALEAAAAAAAAAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAAAkQAAAAAAAAABAAAAAAAAALEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKEAAAAAAAADwPwAAAAAAAChAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChAAAAAAAAAKkAAAAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAADBAAAAAAAAAJEAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEAAAAAAAAAmQAAAAAAAACRAAAAAAAAAJkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACJAAAAAAAAAJEAAAAAAAAAoQAAAAAAAAC5AAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkQAAAAAAAABxAAAAAAAAAKkAAAAAAAAAiQAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAABxAAAAAAAAAMEAAAAAAAAAwQAAAAAAAACpAAAAAAAAAJkAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAABBAAAAAAAAAEEAAAAAAAAAcQAAAAAAAADBAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFEAAAAAAAAAmQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZAAAAAAAAACEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAAChAAAAAAAAAKEAAAAAAAAAmQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAAAAsQAAAAAAAADBAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZAAAAAAAAAMEAAAAAAAAAkQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAAACxAAAAAAAAAEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAKEAAAAAAAAAqQAAAAAAAABBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiQAAAAAAAACxAAAAAAAAAIkAAAAAAAAAsQAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALkAAAAAAAAAiQAAAAAAAAAAAAAAAAAAAKkAAAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBAAAAAAAAA8D8AAAAAAAAAAAAAAAAAAChAAAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEAAAAAAAAAwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAMEAAAAAAAAAiQAAAAAAAAPA/AAAAAAAALEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZAAAAAAAAAMEAAAAAAAAAwQAAAAAAAADBAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAAAAACpAAAAAAAAAJkAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAoQAAAAAAAAC5AAAAAAAAAEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhAAAAAAAAAMEAAAAAAAAAwQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAADBAAAAAAAAAKEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhAAAAAAAAAJEAAAAAAAAAwQAAAAAAAACxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEAAAAAAAAAwQAAAAAAAADBAAAAAAAAAMEAAAAAAAAAoQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAEEAAAAAAAAAoQAAAAAAAADBAAAAAAAAAKEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEAAAAAAAAAwQAAAAAAAADBAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAMEAAAAAAAAAwQAAAAAAAAABAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAABxAAAAAAAAAKEAAAAAAAAAoQAAAAAAAAChAAAAAAAAAKkAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsQAAAAAAAAC5AAAAAAAAAIEAAAAAAAAAgQAAAAAAAAAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAAAAAAAuQAAAAAAAABRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIkAAAAAAAAAoQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAAAAAPA/AAAAAAAAMEAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJEAAAAAAAAAAAAAAAAAAACpAAAAAAAAACEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAACpAAAAAAAAAJkAAAAAAAAAwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAADBAAAAAAAAAFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAACxAAAAAAAAALkAAAAAAAAAmQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAACBAAAAAAAAALEAAAAAAAAAuQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACJAAAAAAAAAKkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqQAAAAAAAABRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAALkAAAAAAAAAoQAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAKkAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAAAAACZAAAAAAAAAIEAAAAAAAAAgQAAAAAAAAChAAAAAAAAAKEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAAAgQAAAAAAAAChAAAAAAAAALkAAAAAAAAAsQAAAAAAAABBAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoQAAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGEAAAAAAAAAwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFEAAAAAAAAAkQAAAAAAAACpAAAAAAAAAMEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAAADBAAAAAAAAAJEAAAAAAAAAmQAAAAAAAADBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqQAAAAAAAACJAAAAAAAAAAAAAAAAAAAAwQAAAAAAAABhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEAAAAAAAAAwQAAAAAAAABxAAAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGEAAAAAAAAAsQAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAACZAAAAAAAAALEAAAAAAAAAiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAACBAAAAAAAAAMEAAAAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAADBAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAC5AAAAAAAAAMEAAAAAAAAAiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFEAAAAAAAAAsQAAAAAAAABRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAALEAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAAAAADBAAAAAAAAAMEAAAAAAAAAmQAAAAAAAABxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoQAAAAAAAACBAAAAAAAAAIEAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhAAAAAAAAAKEAAAAAAAAAuQAAAAAAAACxAAAAAAAAAHEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAAAsQAAAAAAAADBAAAAAAAAAMEAAAAAAAAAwQAAAAAAAAChAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhAAAAAAAAAMEAAAAAAAAAwQAAAAAAAADBAAAAAAAAAMEAAAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUQAAAAAAAADBAAAAAAAAALEAAAAAAAAAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAAAAAAAwQAAAAAAAAChAAAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAMEAAAAAAAAAwQAAAAAAAAAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAAMEAAAAAAAAAqQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAACpAAAAAAAAALEAAAAAAAAAIQAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKEAAAAAAAAAqQAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACJAAAAAAAAAMEAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZAAAAAAAAALkAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAADBAAAAAAAAAMEAAAAAAAAAwQAAAAAAAADBAAAAAAAAAHEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAgQAAAAAAAACZAAAAAAAAAKEAAAAAAAAAwQAAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALEAAAAAAAAAkQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGEAAAAAAAAAkQAAAAAAAAC5AAAAAAAAAJkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAALEAAAAAAAAAsQAAAAAAAAABAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAALEAAAAAAAAAcQAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsQAAAAAAAABhAAAAAAAAALkAAAAAAAAAkQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAALkAAAAAAAAAIQAAAAAAAACJAAAAAAAAAJEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAACZAAAAAAAAAMEAAAAAAAAAwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACpAAAAAAAAALkAAAAAAAAAqQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAAAAmQAAAAAAAAAAAAAAAAAAALEAAAAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACRAAAAAAAAALkAAAAAAAAAqQAAAAAAAACpAAAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkQAAAAAAAACZAAAAAAAAAEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAABxAAAAAAAAAKEAAAAAAAAAoQAAAAAAAAChAAAAAAAAAJkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAAAAABxAAAAAAAAAKEAAAAAAAAAsQAAAAAAAADBAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIkAAAAAAAAAkQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAADBAAAAAAAAACEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAAADBAAAAAAAAAMEAAAAAAAAAsQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKEAAAAAAAAAqQAAAAAAAADBAAAAAAAAAGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChAAAAAAAAAMEAAAAAAAAAwQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiQAAAAAAAACpAAAAAAAAAHEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAACZAAAAAAAAAMEAAAAAAAAAoQAAAAAAAAAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEAAAAAAAAAwQAAAAAAAAPA/AAAAAAAAJkAAAAAAAAAuQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAAMEAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAMEAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAADBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACxAAAAAAAAAEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAAAAwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkQAAAAAAAABRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAMEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAJkAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAADBAAAAAAAAAKkAAAAAAAAAYQAAAAAAAACxAAAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkQAAAAAAAACxAAAAAAAAAJkAAAAAAAAAIQAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAALkAAAAAAAAAqQAAAAAAAACxAAAAAAAAAKkAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhAAAAAAAAAEEAAAAAAAAAQQAAAAAAAADBAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEAAAAAAAAAmQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACxAAAAAAAAACEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxAAAAAAAAAMEAAAAAAAAAuQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFEAAAAAAAAAuQAAAAAAAACpAAAAAAAAAJkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhAAAAAAAAAMEAAAAAAAAAwQAAAAAAAABhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAACpAAAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAQAAAAAAAADBAAAAAAAAALkAAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAACpAAAAAAAAAMEAAAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAAChAAAAAAAAALkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAAAAACBAAAAAAAAAEEAAAAAAAAAmQAAAAAAAAC5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIkAAAAAAAAAwQAAAAAAAADBAAAAAAAAAMEAAAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhAAAAAAAAAMEAAAAAAAAAcQAAAAAAAAAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUQAAAAAAAADBAAAAAAAAAJEAAAAAAAAAUQAAAAAAAABBAAAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAqQAAAAAAAADBAAAAAAAAAMEAAAAAAAAAwQAAAAAAAACZAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAQQAAAAAAAADBAAAAAAAAALkAAAAAAAAAIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAAAgQAAAAAAAACpAAAAAAAAALkAAAAAAAAAIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAAAAADBAAAAAAAAAIkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAFEAAAAAAAAAuQAAAAAAAAChAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGEAAAAAAAAAwQAAAAAAAADBAAAAAAAAALkAAAAAAAAAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhAAAAAAAAAMEAAAAAAAAAiQAAAAAAAABhAAAAAAAAAEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAADBAAAAAAAAAMEAAAAAAAAAwQAAAAAAAADBAAAAAAAAAGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGEAAAAAAAAAqQAAAAAAAABRAAAAAAAAAIEAAAAAAAAAgQAAAAAAAAPA/AAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFEAAAAAAAAAwQAAAAAAAAC5AAAAAAAAACEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAADBAAAAAAAAAHEAAAAAAAAAqQAAAAAAAACJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAKkAAAAAAAAAsQAAAAAAAAPA/AAAAAAAAKEAAAAAAAAAiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAAC5AAAAAAAAAMEAAAAAAAAAuQAAAAAAAACZAAAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAAAC5AAAAAAAAAFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFEAAAAAAAAAwQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAKkAAAAAAAAAmQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABRAAAAAAAAALEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAADwPwAAAAAAAC5AAAAAAAAALEAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUQAAAAAAAACxAAAAAAAAALkAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAACxAAAAAAAAAJEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxAAAAAAAAAGEAAAAAAAAAoQAAAAAAAACJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAwQAAAAAAAADBAAAAAAAAALkAAAAAAAAAIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhAAAAAAAAAMEAAAAAAAAAiQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAADBAAAAAAAAAMEAAAAAAAAAwQAAAAAAAACpAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAAAAAAAuQAAAAAAAACBAAAAAAAAAIEAAAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAABxAAAAAAAAAMEAAAAAAAAAmQAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAAAAAACZAAAAAAAAALEAAAAAAAAAkQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAALkAAAAAAAAAUQAAAAAAAABhAAAAAAAAAKkAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBAAAAAAAAACEAAAAAAAAAAAAAAAAAAACpAAAAAAAAAGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAAAwQAAAAAAAABRAAAAAAAAAAAAAAAAAAAAoQAAAAAAAABRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAMEAAAAAAAAAkQAAAAAAAAAAAAAAAAAAAKkAAAAAAAAAiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5AAAAAAAAALkAAAAAAAAAqQAAAAAAAAC5AAAAAAAAACEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAAACxAAAAAAAAAJEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAACpAAAAAAAAAKkAAAAAAAAAuQAAAAAAAADBAAAAAAAAAKkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUQAAAAAAAACBAAAAAAAAAFEAAAAAAAAAiQAAAAAAAACxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKkAAAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAEEAAAAAAAAAiQAAAAAAAACpAAAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAsQAAAAAAAADBAAAAAAAAAMEAAAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAMEAAAAAAAAAgQAAAAAAAACxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUQAAAAAAAADBAAAAAAAAALEAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqQAAAAAAAACRAAAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAADwPwAAAAAAACZAAAAAAAAAMEAAAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEAAAAAAAAAkQAAAAAAAACJAAAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAAIEAAAAAAAAAmQAAAAAAAABRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAAAAACxAAAAAAAAAMEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAADBAAAAAAAAAJEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJEAAAAAAAAAQQAAAAAAAACRAAAAAAAAAJkAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACpAAAAAAAAAKkAAAAAAAAAYQAAAAAAAAChAAAAAAAAAHEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAABxAAAAAAAAAKkAAAAAAAAAwQAAAAAAAABBAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAACJAAAAAAAAALEAAAAAAAAAqQAAAAAAAACRAAAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAAAAAAAqQAAAAAAAACBAAAAAAAAAFEAAAAAAAAAsQAAAAAAAABRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJkAAAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5AAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiQAAAAAAAACZAAAAAAAAAHEAAAAAAAAAsQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhAAAAAAAAALkAAAAAAAAAiQAAAAAAAADBAAAAAAAAAJkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAACxAAAAAAAAAEEAAAAAAAAAkQAAAAAAAAChAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAAAiQAAAAAAAADBAAAAAAAAAKkAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"shape\":[8,8]}],\"x\":{\"__ndarray__\":\"mpmZmZmZyT9mZmZmZmb2P83MzMzMzARAZmZmZmZmDkAAAAAAAAAUQM3MzMzMzBhAmZmZmZmZHUAzMzMzMzMhQJmZmZmZmSNA////////JUBmZmZmZmYoQMzMzMzMzCpAMjMzMzMzLUCZmZmZmZkvQAAAAAAAADFAMzMzMzMzMkBmZmZmZmYzQJmZmZmZmTRAzMzMzMzMNUAAAAAAAAA3QJqZmZmZmck/ZmZmZmZm9j/NzMzMzMwEQGZmZmZmZg5AAAAAAAAAFEDNzMzMzMwYQJmZmZmZmR1AMzMzMzMzIUCZmZmZmZkjQP///////yVAZmZmZmZmKEDMzMzMzMwqQDIzMzMzMy1AmZmZmZmZL0AAAAAAAAAxQDMzMzMzMzJAZmZmZmZmM0CZmZmZmZk0QMzMzMzMzDVAAAAAAAAAN0A=\",\"dtype\":\"float64\",\"shape\":[40]},\"y\":{\"__ndarray__\":\"mpmZmZmZyT+amZmZmZnJP5qZmZmZmck/mpmZmZmZyT+amZmZmZnJP5qZmZmZmck/mpmZmZmZyT+amZmZmZnJP5qZmZmZmck/mpmZmZmZyT+amZmZmZnJP5qZmZmZmck/mpmZmZmZyT+amZmZmZnJP5qZmZmZmck/mpmZmZmZyT+amZmZmZnJP5qZmZmZmck/mpmZmZmZyT+amZmZmZnJP2ZmZmZmZvY/ZmZmZmZm9j9mZmZmZmb2P2ZmZmZmZvY/ZmZmZmZm9j9mZmZmZmb2P2ZmZmZmZvY/ZmZmZmZm9j9mZmZmZmb2P2ZmZmZmZvY/ZmZmZmZm9j9mZmZmZmb2P2ZmZmZmZvY/ZmZmZmZm9j9mZmZmZmb2P2ZmZmZmZvY/ZmZmZmZm9j9mZmZmZmb2P2ZmZmZmZvY/ZmZmZmZm9j8=\",\"dtype\":\"float64\",\"shape\":[40]}}},\"id\":\"e05f1e8d-8785-4531-8a1b-12e2ed56791d\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"bottom\":{\"field\":\"bottom\"},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"52f2048c-3c87-4ce8-9987-e0a2b1adfb6a\",\"type\":\"Quad\"},{\"attributes\":{\"color_mapper\":{\"id\":\"46a1eeb9-dcd3-4b8a-ace3-a79b0b771822\",\"type\":\"LinearColorMapper\"},\"dh\":{\"units\":\"data\",\"value\":1.0},\"dw\":{\"units\":\"data\",\"value\":1.0},\"image\":{\"field\":\"image\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"18dce9a0-1004-4f33-b31b-66ae3370625c\",\"type\":\"Image\"},{\"attributes\":{\"bottom\":{\"field\":\"bottom\"},\"fill_color\":{\"value\":null},\"left\":{\"field\":\"left\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"be965c98-aed9-4e96-a5dc-37ca71524cf4\",\"type\":\"Quad\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\",\"text\"],\"data\":{\"text\":[\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\"],\"x\":[0.21000000000000002,1.41,2.61,3.8099999999999996,5.01,6.21,7.409999999999999,8.61,9.809999999999999,11.009999999999998,12.209999999999999,13.409999999999998,14.609999999999998,15.809999999999999,17.01,18.21,19.41,20.61,21.81,23.01,0.21000000000000002,1.41,2.61,3.8099999999999996,5.01,6.21,7.409999999999999,8.61,9.809999999999999,11.009999999999998,12.209999999999999,13.409999999999998,14.609999999999998,15.809999999999999,17.01,18.21,19.41,20.61,21.81,23.01],\"y\":[0.18000000000000002,0.18000000000000002,0.18000000000000002,0.18000000000000002,0.18000000000000002,0.18000000000000002,0.18000000000000002,0.18000000000000002,0.18000000000000002,0.18000000000000002,0.18000000000000002,0.18000000000000002,0.18000000000000002,0.18000000000000002,0.18000000000000002,0.18000000000000002,0.18000000000000002,0.18000000000000002,0.18000000000000002,0.18000000000000002,1.38,1.38,1.38,1.38,1.38,1.38,1.38,1.38,1.38,1.38,1.38,1.38,1.38,1.38,1.38,1.38,1.38,1.38,1.38,1.38]}},\"id\":\"57c9e72b-fc1e-4371-b60a-34e6579da74d\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"dimension\":1,\"grid_line_color\":{\"value\":null},\"plot\":{\"id\":\"1187a336-4cf6-4a55-a884-71c04390e69b\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"de9b20fd-0c45-4bdc-8668-4b3aad9300cb\",\"type\":\"BasicTicker\"}},\"id\":\"0078770b-04c8-46c7-9ac9-bfee8495bd61\",\"type\":\"Grid\"}],\"root_ids\":[\"1187a336-4cf6-4a55-a884-71c04390e69b\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.13\"}};\n", " var render_items = [{\"docid\":\"0760670d-c2c1-444f-8dce-0cb8d2923f22\",\"elementid\":\"9daf7d1f-bbea-4866-a42e-a9910a81c913\",\"modelid\":\"1187a336-4cf6-4a55-a884-71c04390e69b\"}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " var attempts = 0;\n", " var timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " clearInterval(timer);\n", " }\n", " attempts++;\n", " if (attempts > 100) {\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\")\n", " clearInterval(timer);\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "1187a336-4cf6-4a55-a884-71c04390e69b" } }, "output_type": "display_data" } ], "source": [ "from bokeh.palettes import Greys9\n", "from bokeh.models.ranges import Range1d\n", "import addutils.palette as pal\n", "import addutils.imagegrid as ig\n", "\n", "digits = datasets.load_digits()\n", "\n", "# plot the digits: each image is 8x8 pixels\n", "images = [ digits.images[i][::-1, :] for i in range(40) ]\n", "txt = [ str(i) for i in range(10) ] * 4\n", "\n", "fig = ig.imagegrid_figure(figure_plot_width=760, figure_plot_height=100,\n", " figure_title=None,\n", " images=images, grid_size=(20, 2), \n", " text=txt, text_font_size='9pt', text_color='red',\n", " palette=Greys9[::-1], padding=0.2)\n", "bk.show(fig)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4.3 Example: the \"Blob\" Generated Dataset" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "import seaborn as sns\n", "cat_colors = list(map(pal.to_hex, sns.color_palette('Paired', 7)))" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", "
\n", "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " var docs_json = {\"513be5cb-5511-4d5e-aeaf-f329915e3dc8\":{\"roots\":{\"references\":[{\"attributes\":{\"source\":{\"id\":\"0a301be0-f3eb-4d49-b570-b5496f18f27a\",\"type\":\"ColumnDataSource\"}},\"id\":\"a94bc535-4884-416b-abc8-8840d3c03574\",\"type\":\"CDSView\"},{\"attributes\":{\"overlay\":{\"id\":\"77b36ab4-aef5-4aee-b51a-8d90ca4eae19\",\"type\":\"BoxAnnotation\"}},\"id\":\"d027dc35-dd39-4e63-bf46-d6619df1e0ee\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"79311563-b6e2-4383-8120-718763072eaf\",\"type\":\"PanTool\"},{\"id\":\"fda0a28f-a79c-4eb5-b71d-c9f3a739b4af\",\"type\":\"WheelZoomTool\"},{\"id\":\"d027dc35-dd39-4e63-bf46-d6619df1e0ee\",\"type\":\"BoxZoomTool\"},{\"id\":\"61a9ff9b-a0ba-4fdc-9dc9-157961e3363d\",\"type\":\"SaveTool\"},{\"id\":\"2bde389d-87cd-4f33-969b-a1624c3d432a\",\"type\":\"ResetTool\"},{\"id\":\"84e67735-9e85-4bb1-8215-aaeda9e8039a\",\"type\":\"HelpTool\"}]},\"id\":\"b3e43922-924f-4ae1-bc0c-9a024dbbc8e9\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"08225bd3-87ed-4e4f-93da-5174882e6a22\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"84e67735-9e85-4bb1-8215-aaeda9e8039a\",\"type\":\"HelpTool\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":8},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"070d4ea9-1710-4bde-8d62-9d45943350cc\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"61a9ff9b-a0ba-4fdc-9dc9-157961e3363d\",\"type\":\"SaveTool\"},{\"attributes\":{\"callback\":null},\"id\":\"b35097dc-42dd-4c7f-9b78-3d357e17fd78\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"3f6098fc-d0c0-4252-aad0-dbee3ada177c\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"17a24d8f-ca19-426c-95c1-c16fa474e9e4\",\"type\":\"LinearScale\"},{\"attributes\":{\"plot\":{\"id\":\"54818e84-5795-4175-a3e3-9439de75335e\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"47d7adae-24ab-4b03-a7f6-b8912d992d66\",\"type\":\"BasicTicker\"}},\"id\":\"dca5690b-240c-4cc2-8a37-c1be0c9a7875\",\"type\":\"Grid\"},{\"attributes\":{\"formatter\":{\"id\":\"3f6098fc-d0c0-4252-aad0-dbee3ada177c\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"54818e84-5795-4175-a3e3-9439de75335e\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"47d7adae-24ab-4b03-a7f6-b8912d992d66\",\"type\":\"BasicTicker\"}},\"id\":\"1ce2d783-2ea7-4ca5-a99a-39c1a00fbcf2\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"47d7adae-24ab-4b03-a7f6-b8912d992d66\",\"type\":\"BasicTicker\"},{\"attributes\":{\"below\":[{\"id\":\"1ce2d783-2ea7-4ca5-a99a-39c1a00fbcf2\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"37a2c9a1-8208-4d2c-ae1f-809dc706e71d\",\"type\":\"LinearAxis\"}],\"renderers\":[{\"id\":\"1ce2d783-2ea7-4ca5-a99a-39c1a00fbcf2\",\"type\":\"LinearAxis\"},{\"id\":\"dca5690b-240c-4cc2-8a37-c1be0c9a7875\",\"type\":\"Grid\"},{\"id\":\"37a2c9a1-8208-4d2c-ae1f-809dc706e71d\",\"type\":\"LinearAxis\"},{\"id\":\"35c777ee-af7f-463f-9986-6b57f3b9a2e1\",\"type\":\"Grid\"},{\"id\":\"77b36ab4-aef5-4aee-b51a-8d90ca4eae19\",\"type\":\"BoxAnnotation\"},{\"id\":\"a97c873a-22e0-42b9-9cb7-253f33e17c10\",\"type\":\"GlyphRenderer\"}],\"title\":null,\"toolbar\":{\"id\":\"b3e43922-924f-4ae1-bc0c-9a024dbbc8e9\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"ff94a545-49cd-4862-a5a4-7e41b0a67aa2\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"08225bd3-87ed-4e4f-93da-5174882e6a22\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"b35097dc-42dd-4c7f-9b78-3d357e17fd78\",\"type\":\"DataRange1d\"},\"y_scale\":{\"id\":\"17a24d8f-ca19-426c-95c1-c16fa474e9e4\",\"type\":\"LinearScale\"}},\"id\":\"54818e84-5795-4175-a3e3-9439de75335e\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"formatter\":{\"id\":\"568a3a18-7987-47d9-bd64-786f0d5f2ed9\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"54818e84-5795-4175-a3e3-9439de75335e\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"61c13301-fffb-4a44-b348-fcad71cacc20\",\"type\":\"BasicTicker\"}},\"id\":\"37a2c9a1-8208-4d2c-ae1f-809dc706e71d\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"61c13301-fffb-4a44-b348-fcad71cacc20\",\"type\":\"BasicTicker\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"54818e84-5795-4175-a3e3-9439de75335e\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"61c13301-fffb-4a44-b348-fcad71cacc20\",\"type\":\"BasicTicker\"}},\"id\":\"35c777ee-af7f-463f-9986-6b57f3b9a2e1\",\"type\":\"Grid\"},{\"attributes\":{\"data_source\":{\"id\":\"0a301be0-f3eb-4d49-b570-b5496f18f27a\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1a495936-1030-49ab-a5f3-aa36e7182987\",\"type\":\"Circle\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"070d4ea9-1710-4bde-8d62-9d45943350cc\",\"type\":\"Circle\"},\"selection_glyph\":null,\"view\":{\"id\":\"a94bc535-4884-416b-abc8-8840d3c03574\",\"type\":\"CDSView\"}},\"id\":\"a97c873a-22e0-42b9-9cb7-253f33e17c10\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"568a3a18-7987-47d9-bd64-786f0d5f2ed9\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\",\"fill_color\"],\"data\":{\"fill_color\":[\"#fdbf6f\",\"#1f78b4\",\"#b2df8a\",\"#fdbf6f\",\"#a6cee3\",\"#a6cee3\",\"#e31a1c\",\"#1f78b4\",\"#33a02c\",\"#a6cee3\",\"#b2df8a\",\"#1f78b4\",\"#b2df8a\",\"#b2df8a\",\"#fdbf6f\",\"#1f78b4\",\"#1f78b4\",\"#e31a1c\",\"#33a02c\",\"#fdbf6f\",\"#fdbf6f\",\"#fb9a99\",\"#fb9a99\",\"#1f78b4\",\"#e31a1c\",\"#1f78b4\",\"#33a02c\",\"#33a02c\",\"#33a02c\",\"#b2df8a\",\"#fdbf6f\",\"#1f78b4\",\"#b2df8a\",\"#b2df8a\",\"#b2df8a\",\"#e31a1c\",\"#33a02c\",\"#fb9a99\",\"#a6cee3\",\"#1f78b4\",\"#a6cee3\",\"#e31a1c\",\"#b2df8a\",\"#fb9a99\",\"#e31a1c\",\"#fb9a99\",\"#fdbf6f\",\"#fdbf6f\",\"#b2df8a\",\"#fdbf6f\",\"#fdbf6f\",\"#33a02c\",\"#fdbf6f\",\"#b2df8a\",\"#fdbf6f\",\"#fb9a99\",\"#1f78b4\",\"#a6cee3\",\"#1f78b4\",\"#e31a1c\",\"#fb9a99\",\"#1f78b4\",\"#33a02c\",\"#b2df8a\",\"#fb9a99\",\"#1f78b4\",\"#fb9a99\",\"#e31a1c\",\"#1f78b4\",\"#e31a1c\",\"#a6cee3\",\"#a6cee3\",\"#fb9a99\",\"#fb9a99\",\"#fb9a99\",\"#33a02c\",\"#a6cee3\",\"#33a02c\",\"#33a02c\",\"#fdbf6f\",\"#fdbf6f\",\"#33a02c\",\"#33a02c\",\"#fdbf6f\",\"#33a02c\",\"#fdbf6f\",\"#b2df8a\",\"#fdbf6f\",\"#fdbf6f\",\"#b2df8a\",\"#fb9a99\",\"#1f78b4\",\"#b2df8a\",\"#e31a1c\",\"#fb9a99\",\"#a6cee3\",\"#1f78b4\",\"#fb9a99\",\"#fb9a99\",\"#1f78b4\",\"#fb9a99\",\"#b2df8a\",\"#1f78b4\",\"#fb9a99\",\"#e31a1c\",\"#e31a1c\",\"#fdbf6f\",\"#a6cee3\",\"#fb9a99\",\"#fb9a99\",\"#b2df8a\",\"#fdbf6f\",\"#fb9a99\",\"#b2df8a\",\"#1f78b4\",\"#fb9a99\",\"#a6cee3\",\"#b2df8a\",\"#b2df8a\",\"#a6cee3\",\"#e31a1c\",\"#fb9a99\",\"#a6cee3\",\"#fb9a99\",\"#fb9a99\",\"#a6cee3\",\"#33a02c\",\"#a6cee3\",\"#a6cee3\",\"#fdbf6f\",\"#fdbf6f\",\"#a6cee3\",\"#fdbf6f\",\"#fdbf6f\",\"#1f78b4\",\"#b2df8a\",\"#a6cee3\",\"#e31a1c\",\"#a6cee3\",\"#1f78b4\",\"#1f78b4\",\"#e31a1c\",\"#1f78b4\",\"#1f78b4\",\"#b2df8a\",\"#a6cee3\",\"#1f78b4\",\"#1f78b4\",\"#fb9a99\",\"#a6cee3\",\"#a6cee3\",\"#1f78b4\",\"#33a02c\",\"#33a02c\",\"#e31a1c\",\"#fb9a99\",\"#fdbf6f\",\"#1f78b4\",\"#b2df8a\",\"#fdbf6f\",\"#a6cee3\",\"#e31a1c\",\"#1f78b4\",\"#fdbf6f\",\"#e31a1c\",\"#b2df8a\",\"#1f78b4\",\"#33a02c\",\"#fdbf6f\",\"#1f78b4\",\"#b2df8a\",\"#fb9a99\",\"#b2df8a\",\"#b2df8a\",\"#fb9a99\",\"#33a02c\",\"#1f78b4\",\"#1f78b4\",\"#fdbf6f\",\"#b2df8a\",\"#fdbf6f\",\"#1f78b4\",\"#1f78b4\",\"#fb9a99\",\"#fdbf6f\",\"#1f78b4\",\"#1f78b4\",\"#e31a1c\",\"#1f78b4\",\"#e31a1c\",\"#33a02c\",\"#e31a1c\",\"#fb9a99\",\"#fb9a99\",\"#33a02c\",\"#1f78b4\",\"#a6cee3\",\"#b2df8a\",\"#33a02c\",\"#fdbf6f\",\"#1f78b4\",\"#e31a1c\",\"#a6cee3\",\"#1f78b4\",\"#fb9a99\",\"#b2df8a\",\"#b2df8a\",\"#e31a1c\",\"#e31a1c\",\"#fdbf6f\",\"#fb9a99\",\"#33a02c\",\"#1f78b4\",\"#1f78b4\",\"#fdbf6f\",\"#1f78b4\",\"#33a02c\",\"#e31a1c\",\"#b2df8a\",\"#fb9a99\",\"#fb9a99\",\"#fdbf6f\",\"#fdbf6f\",\"#b2df8a\",\"#33a02c\",\"#e31a1c\",\"#b2df8a\",\"#fdbf6f\",\"#1f78b4\",\"#a6cee3\",\"#1f78b4\",\"#e31a1c\",\"#b2df8a\",\"#e31a1c\",\"#e31a1c\",\"#fb9a99\",\"#33a02c\",\"#1f78b4\",\"#fdbf6f\",\"#33a02c\",\"#e31a1c\",\"#33a02c\",\"#a6cee3\",\"#1f78b4\",\"#e31a1c\",\"#e31a1c\",\"#e31a1c\",\"#fdbf6f\",\"#fdbf6f\",\"#e31a1c\",\"#fdbf6f\",\"#33a02c\",\"#33a02c\",\"#b2df8a\",\"#fb9a99\",\"#e31a1c\",\"#fdbf6f\",\"#1f78b4\",\"#1f78b4\",\"#33a02c\",\"#a6cee3\",\"#33a02c\",\"#fb9a99\",\"#e31a1c\",\"#a6cee3\",\"#fdbf6f\",\"#fdbf6f\",\"#fdbf6f\",\"#fb9a99\",\"#1f78b4\",\"#b2df8a\",\"#fdbf6f\",\"#1f78b4\",\"#a6cee3\",\"#33a02c\",\"#b2df8a\",\"#33a02c\",\"#b2df8a\",\"#fdbf6f\",\"#33a02c\",\"#b2df8a\",\"#33a02c\",\"#fdbf6f\",\"#fdbf6f\",\"#fb9a99\",\"#1f78b4\",\"#fb9a99\",\"#33a02c\",\"#1f78b4\",\"#b2df8a\",\"#b2df8a\",\"#33a02c\",\"#e31a1c\",\"#fb9a99\",\"#e31a1c\",\"#fb9a99\",\"#b2df8a\",\"#e31a1c\",\"#1f78b4\",\"#fdbf6f\",\"#a6cee3\",\"#1f78b4\",\"#a6cee3\",\"#e31a1c\",\"#fb9a99\",\"#fdbf6f\",\"#a6cee3\",\"#33a02c\",\"#33a02c\",\"#fdbf6f\",\"#33a02c\",\"#fdbf6f\",\"#fdbf6f\",\"#fb9a99\",\"#a6cee3\",\"#1f78b4\",\"#b2df8a\",\"#fdbf6f\",\"#fdbf6f\",\"#b2df8a\",\"#fb9a99\",\"#33a02c\",\"#33a02c\",\"#fb9a99\",\"#33a02c\",\"#fb9a99\",\"#fdbf6f\",\"#1f78b4\",\"#b2df8a\",\"#e31a1c\",\"#1f78b4\",\"#fdbf6f\",\"#33a02c\",\"#a6cee3\",\"#e31a1c\",\"#fdbf6f\",\"#e31a1c\",\"#fb9a99\",\"#1f78b4\",\"#33a02c\",\"#33a02c\",\"#33a02c\",\"#fb9a99\",\"#a6cee3\",\"#fdbf6f\",\"#33a02c\",\"#33a02c\",\"#e31a1c\",\"#e31a1c\",\"#e31a1c\",\"#a6cee3\",\"#1f78b4\",\"#fb9a99\",\"#fdbf6f\",\"#fb9a99\",\"#fdbf6f\",\"#fdbf6f\",\"#33a02c\",\"#b2df8a\",\"#a6cee3\",\"#fb9a99\",\"#e31a1c\",\"#b2df8a\",\"#b2df8a\",\"#33a02c\",\"#fb9a99\",\"#fdbf6f\",\"#fdbf6f\",\"#b2df8a\",\"#b2df8a\",\"#33a02c\",\"#fb9a99\",\"#33a02c\",\"#33a02c\",\"#b2df8a\",\"#fdbf6f\",\"#e31a1c\",\"#b2df8a\",\"#a6cee3\",\"#a6cee3\",\"#1f78b4\",\"#fdbf6f\",\"#b2df8a\",\"#b2df8a\",\"#1f78b4\",\"#a6cee3\",\"#a6cee3\",\"#e31a1c\",\"#b2df8a\",\"#fb9a99\",\"#1f78b4\",\"#1f78b4\",\"#1f78b4\",\"#fdbf6f\",\"#e31a1c\",\"#a6cee3\",\"#33a02c\",\"#b2df8a\",\"#fb9a99\",\"#e31a1c\",\"#b2df8a\",\"#e31a1c\",\"#fb9a99\",\"#e31a1c\",\"#1f78b4\",\"#e31a1c\",\"#33a02c\",\"#e31a1c\",\"#fdbf6f\",\"#b2df8a\",\"#e31a1c\",\"#e31a1c\",\"#e31a1c\",\"#fb9a99\",\"#fdbf6f\",\"#b2df8a\",\"#fdbf6f\",\"#33a02c\",\"#fdbf6f\",\"#fb9a99\",\"#fb9a99\",\"#a6cee3\",\"#1f78b4\",\"#e31a1c\",\"#fb9a99\",\"#a6cee3\",\"#33a02c\",\"#e31a1c\",\"#fdbf6f\",\"#33a02c\",\"#fdbf6f\",\"#33a02c\",\"#fdbf6f\",\"#1f78b4\",\"#1f78b4\",\"#fdbf6f\",\"#1f78b4\",\"#fb9a99\",\"#e31a1c\",\"#b2df8a\",\"#33a02c\",\"#fb9a99\",\"#33a02c\",\"#fdbf6f\",\"#e31a1c\",\"#1f78b4\",\"#fb9a99\",\"#e31a1c\",\"#a6cee3\",\"#fb9a99\",\"#fdbf6f\",\"#fb9a99\",\"#fb9a99\",\"#fb9a99\",\"#e31a1c\",\"#1f78b4\",\"#a6cee3\",\"#fdbf6f\",\"#b2df8a\",\"#fdbf6f\",\"#33a02c\",\"#fdbf6f\",\"#b2df8a\",\"#fb9a99\",\"#e31a1c\",\"#b2df8a\",\"#33a02c\",\"#a6cee3\",\"#fdbf6f\",\"#fdbf6f\",\"#e31a1c\",\"#fdbf6f\",\"#1f78b4\",\"#e31a1c\",\"#fdbf6f\",\"#e31a1c\",\"#fb9a99\",\"#a6cee3\",\"#a6cee3\",\"#b2df8a\",\"#b2df8a\",\"#fdbf6f\",\"#fb9a99\",\"#b2df8a\",\"#1f78b4\",\"#b2df8a\",\"#e31a1c\",\"#a6cee3\",\"#33a02c\",\"#33a02c\",\"#a6cee3\",\"#fb9a99\",\"#fb9a99\",\"#33a02c\",\"#33a02c\",\"#1f78b4\",\"#1f78b4\",\"#a6cee3\",\"#fb9a99\",\"#fdbf6f\",\"#1f78b4\",\"#33a02c\",\"#33a02c\",\"#a6cee3\",\"#fdbf6f\",\"#e31a1c\",\"#fdbf6f\",\"#a6cee3\",\"#e31a1c\",\"#1f78b4\",\"#33a02c\",\"#e31a1c\",\"#e31a1c\",\"#33a02c\",\"#fb9a99\",\"#b2df8a\",\"#e31a1c\",\"#a6cee3\",\"#1f78b4\",\"#e31a1c\",\"#fdbf6f\",\"#1f78b4\",\"#fdbf6f\",\"#a6cee3\",\"#b2df8a\",\"#b2df8a\",\"#a6cee3\",\"#1f78b4\",\"#b2df8a\",\"#b2df8a\",\"#1f78b4\",\"#fdbf6f\",\"#a6cee3\",\"#33a02c\",\"#e31a1c\",\"#a6cee3\",\"#33a02c\",\"#33a02c\",\"#1f78b4\",\"#e31a1c\",\"#33a02c\",\"#b2df8a\",\"#fb9a99\",\"#e31a1c\",\"#1f78b4\",\"#a6cee3\",\"#e31a1c\",\"#fdbf6f\",\"#1f78b4\",\"#fb9a99\",\"#33a02c\",\"#fdbf6f\",\"#a6cee3\",\"#a6cee3\",\"#e31a1c\",\"#e31a1c\",\"#1f78b4\",\"#b2df8a\",\"#fdbf6f\",\"#33a02c\",\"#e31a1c\",\"#a6cee3\",\"#b2df8a\",\"#b2df8a\",\"#a6cee3\",\"#fdbf6f\",\"#fb9a99\",\"#b2df8a\",\"#fdbf6f\",\"#e31a1c\",\"#e31a1c\",\"#fb9a99\",\"#fdbf6f\",\"#e31a1c\",\"#1f78b4\",\"#1f78b4\",\"#33a02c\",\"#1f78b4\",\"#e31a1c\",\"#b2df8a\",\"#1f78b4\",\"#fb9a99\",\"#b2df8a\",\"#1f78b4\",\"#a6cee3\",\"#a6cee3\",\"#e31a1c\",\"#fb9a99\",\"#b2df8a\",\"#33a02c\",\"#b2df8a\",\"#33a02c\",\"#fdbf6f\",\"#1f78b4\",\"#fdbf6f\",\"#b2df8a\",\"#e31a1c\",\"#b2df8a\",\"#1f78b4\",\"#fdbf6f\",\"#b2df8a\",\"#a6cee3\",\"#a6cee3\",\"#e31a1c\",\"#e31a1c\",\"#a6cee3\",\"#1f78b4\",\"#33a02c\",\"#fb9a99\",\"#33a02c\",\"#fb9a99\",\"#fb9a99\",\"#e31a1c\",\"#1f78b4\",\"#e31a1c\",\"#fdbf6f\",\"#fb9a99\",\"#a6cee3\",\"#e31a1c\",\"#fdbf6f\",\"#e31a1c\",\"#b2df8a\",\"#33a02c\",\"#fdbf6f\",\"#33a02c\",\"#a6cee3\",\"#fb9a99\",\"#b2df8a\",\"#e31a1c\",\"#a6cee3\",\"#a6cee3\",\"#fdbf6f\",\"#a6cee3\",\"#a6cee3\",\"#e31a1c\",\"#33a02c\",\"#fb9a99\",\"#1f78b4\",\"#fb9a99\",\"#a6cee3\",\"#b2df8a\",\"#33a02c\",\"#fb9a99\",\"#a6cee3\",\"#1f78b4\",\"#fb9a99\",\"#fb9a99\",\"#1f78b4\",\"#fdbf6f\",\"#1f78b4\",\"#1f78b4\",\"#b2df8a\",\"#a6cee3\",\"#33a02c\",\"#a6cee3\",\"#fdbf6f\",\"#1f78b4\",\"#33a02c\",\"#33a02c\",\"#b2df8a\",\"#33a02c\",\"#33a02c\",\"#fdbf6f\",\"#fdbf6f\",\"#e31a1c\",\"#b2df8a\",\"#a6cee3\",\"#fdbf6f\",\"#b2df8a\",\"#fdbf6f\",\"#fdbf6f\",\"#fb9a99\",\"#a6cee3\",\"#a6cee3\",\"#fb9a99\",\"#33a02c\",\"#b2df8a\",\"#fdbf6f\",\"#e31a1c\",\"#e31a1c\",\"#fdbf6f\",\"#33a02c\",\"#33a02c\",\"#33a02c\",\"#33a02c\",\"#1f78b4\",\"#e31a1c\",\"#a6cee3\",\"#b2df8a\",\"#33a02c\",\"#33a02c\",\"#fdbf6f\",\"#a6cee3\",\"#b2df8a\",\"#a6cee3\",\"#fdbf6f\",\"#fdbf6f\",\"#a6cee3\",\"#1f78b4\",\"#1f78b4\",\"#e31a1c\",\"#a6cee3\",\"#1f78b4\",\"#a6cee3\",\"#fdbf6f\",\"#b2df8a\",\"#1f78b4\",\"#a6cee3\",\"#e31a1c\",\"#1f78b4\",\"#a6cee3\",\"#1f78b4\",\"#fb9a99\",\"#fb9a99\",\"#b2df8a\",\"#33a02c\",\"#a6cee3\",\"#fb9a99\",\"#e31a1c\",\"#33a02c\",\"#33a02c\",\"#33a02c\",\"#e31a1c\",\"#1f78b4\",\"#e31a1c\",\"#b2df8a\",\"#33a02c\",\"#b2df8a\",\"#a6cee3\",\"#b2df8a\",\"#b2df8a\",\"#33a02c\",\"#e31a1c\",\"#33a02c\",\"#a6cee3\",\"#b2df8a\",\"#33a02c\",\"#fb9a99\",\"#e31a1c\",\"#33a02c\",\"#1f78b4\",\"#fb9a99\",\"#a6cee3\",\"#fb9a99\",\"#33a02c\",\"#a6cee3\",\"#fdbf6f\",\"#e31a1c\",\"#33a02c\",\"#b2df8a\",\"#b2df8a\",\"#fdbf6f\",\"#33a02c\",\"#33a02c\",\"#a6cee3\",\"#e31a1c\",\"#fb9a99\",\"#fb9a99\",\"#a6cee3\",\"#33a02c\",\"#fdbf6f\",\"#33a02c\",\"#fdbf6f\",\"#33a02c\",\"#fb9a99\",\"#1f78b4\",\"#fb9a99\",\"#fb9a99\",\"#fb9a99\",\"#1f78b4\",\"#fb9a99\",\"#a6cee3\",\"#a6cee3\",\"#b2df8a\",\"#33a02c\",\"#fb9a99\",\"#fb9a99\",\"#33a02c\",\"#b2df8a\",\"#1f78b4\",\"#fb9a99\",\"#a6cee3\",\"#fb9a99\",\"#b2df8a\",\"#fdbf6f\",\"#33a02c\",\"#fb9a99\",\"#fb9a99\",\"#fdbf6f\",\"#a6cee3\",\"#1f78b4\",\"#fdbf6f\",\"#fdbf6f\",\"#1f78b4\",\"#b2df8a\",\"#a6cee3\",\"#a6cee3\",\"#b2df8a\",\"#1f78b4\",\"#a6cee3\",\"#33a02c\",\"#b2df8a\",\"#fb9a99\",\"#fdbf6f\",\"#a6cee3\",\"#fdbf6f\",\"#fdbf6f\",\"#b2df8a\",\"#b2df8a\",\"#1f78b4\",\"#e31a1c\",\"#33a02c\",\"#33a02c\",\"#33a02c\",\"#b2df8a\",\"#a6cee3\",\"#fb9a99\",\"#a6cee3\",\"#b2df8a\",\"#fdbf6f\",\"#fdbf6f\",\"#a6cee3\",\"#a6cee3\",\"#33a02c\",\"#b2df8a\",\"#fdbf6f\",\"#a6cee3\",\"#1f78b4\",\"#1f78b4\",\"#e31a1c\",\"#fb9a99\",\"#fb9a99\",\"#fb9a99\",\"#fdbf6f\",\"#1f78b4\",\"#33a02c\",\"#fb9a99\",\"#1f78b4\",\"#fdbf6f\",\"#b2df8a\",\"#fb9a99\",\"#e31a1c\",\"#1f78b4\",\"#33a02c\",\"#1f78b4\",\"#a6cee3\",\"#e31a1c\",\"#b2df8a\",\"#33a02c\",\"#33a02c\",\"#fdbf6f\",\"#fdbf6f\",\"#33a02c\",\"#fb9a99\",\"#b2df8a\",\"#fb9a99\",\"#fdbf6f\",\"#fb9a99\",\"#1f78b4\",\"#33a02c\",\"#b2df8a\",\"#b2df8a\",\"#b2df8a\",\"#e31a1c\",\"#b2df8a\",\"#1f78b4\",\"#33a02c\",\"#33a02c\",\"#1f78b4\",\"#e31a1c\",\"#a6cee3\",\"#b2df8a\",\"#fb9a99\",\"#a6cee3\",\"#b2df8a\",\"#33a02c\",\"#b2df8a\",\"#b2df8a\",\"#fb9a99\",\"#e31a1c\",\"#a6cee3\",\"#fdbf6f\",\"#fb9a99\",\"#fdbf6f\",\"#1f78b4\",\"#fdbf6f\",\"#fb9a99\",\"#e31a1c\",\"#a6cee3\",\"#e31a1c\",\"#1f78b4\",\"#fdbf6f\",\"#fb9a99\",\"#1f78b4\",\"#1f78b4\",\"#33a02c\",\"#a6cee3\",\"#fb9a99\",\"#b2df8a\",\"#e31a1c\",\"#b2df8a\",\"#fdbf6f\",\"#fdbf6f\",\"#fdbf6f\",\"#a6cee3\",\"#b2df8a\",\"#1f78b4\",\"#a6cee3\",\"#a6cee3\",\"#e31a1c\",\"#fdbf6f\",\"#33a02c\",\"#b2df8a\",\"#33a02c\",\"#fb9a99\",\"#a6cee3\",\"#fb9a99\",\"#1f78b4\",\"#a6cee3\",\"#a6cee3\",\"#1f78b4\",\"#b2df8a\",\"#b2df8a\",\"#fb9a99\",\"#33a02c\",\"#33a02c\",\"#1f78b4\",\"#33a02c\",\"#fdbf6f\",\"#e31a1c\",\"#e31a1c\",\"#a6cee3\",\"#a6cee3\",\"#e31a1c\",\"#fdbf6f\",\"#33a02c\",\"#fb9a99\",\"#a6cee3\",\"#e31a1c\",\"#e31a1c\",\"#a6cee3\",\"#fb9a99\",\"#33a02c\",\"#fb9a99\",\"#1f78b4\",\"#b2df8a\",\"#e31a1c\",\"#e31a1c\",\"#33a02c\",\"#b2df8a\",\"#33a02c\",\"#a6cee3\",\"#fb9a99\",\"#e31a1c\",\"#1f78b4\",\"#e31a1c\",\"#a6cee3\",\"#a6cee3\",\"#a6cee3\",\"#1f78b4\",\"#b2df8a\",\"#fb9a99\",\"#fdbf6f\",\"#b2df8a\",\"#1f78b4\",\"#a6cee3\",\"#b2df8a\",\"#33a02c\",\"#b2df8a\",\"#e31a1c\",\"#33a02c\",\"#1f78b4\",\"#b2df8a\",\"#fb9a99\",\"#a6cee3\",\"#a6cee3\",\"#fb9a99\",\"#fb9a99\",\"#fb9a99\",\"#1f78b4\",\"#1f78b4\",\"#b2df8a\",\"#e31a1c\",\"#b2df8a\",\"#fb9a99\",\"#a6cee3\",\"#33a02c\",\"#a6cee3\",\"#1f78b4\",\"#a6cee3\",\"#e31a1c\",\"#1f78b4\",\"#fb9a99\",\"#fb9a99\",\"#1f78b4\",\"#fdbf6f\",\"#33a02c\",\"#33a02c\",\"#fb9a99\",\"#1f78b4\",\"#a6cee3\",\"#b2df8a\",\"#fdbf6f\",\"#a6cee3\",\"#fdbf6f\",\"#a6cee3\",\"#a6cee3\",\"#e31a1c\",\"#1f78b4\",\"#33a02c\",\"#33a02c\",\"#e31a1c\",\"#b2df8a\",\"#1f78b4\",\"#fb9a99\",\"#fdbf6f\",\"#1f78b4\",\"#fdbf6f\",\"#e31a1c\",\"#1f78b4\",\"#33a02c\",\"#e31a1c\",\"#33a02c\",\"#fdbf6f\",\"#b2df8a\",\"#33a02c\",\"#b2df8a\",\"#fb9a99\",\"#1f78b4\",\"#b2df8a\",\"#33a02c\",\"#e31a1c\",\"#b2df8a\",\"#b2df8a\",\"#a6cee3\",\"#b2df8a\",\"#33a02c\",\"#1f78b4\",\"#e31a1c\",\"#fb9a99\",\"#fb9a99\",\"#a6cee3\",\"#b2df8a\",\"#b2df8a\",\"#e31a1c\",\"#b2df8a\",\"#b2df8a\",\"#fb9a99\",\"#fdbf6f\",\"#1f78b4\",\"#e31a1c\",\"#fb9a99\",\"#1f78b4\",\"#1f78b4\",\"#33a02c\",\"#33a02c\",\"#fdbf6f\",\"#fdbf6f\",\"#fdbf6f\",\"#1f78b4\",\"#33a02c\",\"#a6cee3\",\"#b2df8a\",\"#fb9a99\",\"#fb9a99\",\"#fdbf6f\",\"#b2df8a\",\"#fdbf6f\",\"#fdbf6f\",\"#fdbf6f\",\"#a6cee3\",\"#fb9a99\",\"#a6cee3\",\"#1f78b4\",\"#e31a1c\",\"#fdbf6f\",\"#33a02c\",\"#1f78b4\",\"#1f78b4\",\"#fb9a99\",\"#1f78b4\",\"#fdbf6f\",\"#fb9a99\",\"#a6cee3\",\"#1f78b4\",\"#fb9a99\",\"#e31a1c\",\"#33a02c\",\"#e31a1c\",\"#1f78b4\",\"#fb9a99\",\"#b2df8a\",\"#fdbf6f\",\"#33a02c\",\"#33a02c\",\"#e31a1c\",\"#b2df8a\",\"#a6cee3\",\"#1f78b4\",\"#1f78b4\",\"#1f78b4\",\"#33a02c\",\"#33a02c\",\"#1f78b4\",\"#fb9a99\",\"#a6cee3\",\"#a6cee3\",\"#a6cee3\",\"#fdbf6f\",\"#fb9a99\",\"#33a02c\",\"#33a02c\",\"#1f78b4\",\"#a6cee3\",\"#b2df8a\",\"#e31a1c\",\"#33a02c\",\"#a6cee3\",\"#e31a1c\",\"#fdbf6f\",\"#fdbf6f\",\"#fdbf6f\",\"#fb9a99\",\"#fdbf6f\",\"#b2df8a\",\"#fb9a99\",\"#e31a1c\",\"#fb9a99\",\"#33a02c\",\"#1f78b4\",\"#fb9a99\",\"#b2df8a\",\"#a6cee3\",\"#33a02c\",\"#1f78b4\",\"#fb9a99\",\"#33a02c\",\"#1f78b4\",\"#e31a1c\",\"#1f78b4\",\"#fb9a99\",\"#a6cee3\",\"#fdbf6f\",\"#fdbf6f\",\"#e31a1c\",\"#e31a1c\",\"#e31a1c\",\"#e31a1c\",\"#b2df8a\",\"#33a02c\",\"#a6cee3\",\"#fb9a99\",\"#33a02c\",\"#1f78b4\",\"#b2df8a\",\"#1f78b4\",\"#1f78b4\",\"#fdbf6f\",\"#33a02c\",\"#fdbf6f\",\"#a6cee3\",\"#33a02c\",\"#fdbf6f\",\"#a6cee3\",\"#fdbf6f\",\"#fb9a99\",\"#fdbf6f\",\"#1f78b4\",\"#1f78b4\",\"#fdbf6f\",\"#e31a1c\",\"#fdbf6f\",\"#e31a1c\",\"#33a02c\",\"#fb9a99\",\"#fdbf6f\",\"#fb9a99\",\"#fdbf6f\",\"#e31a1c\",\"#fb9a99\",\"#33a02c\",\"#fdbf6f\",\"#33a02c\",\"#33a02c\",\"#e31a1c\",\"#b2df8a\",\"#b2df8a\",\"#fb9a99\",\"#a6cee3\",\"#a6cee3\",\"#e31a1c\",\"#fb9a99\",\"#e31a1c\",\"#33a02c\",\"#e31a1c\",\"#fdbf6f\",\"#33a02c\",\"#fdbf6f\",\"#33a02c\",\"#b2df8a\",\"#fdbf6f\",\"#fdbf6f\",\"#fdbf6f\",\"#b2df8a\",\"#33a02c\",\"#fdbf6f\",\"#fb9a99\",\"#b2df8a\",\"#a6cee3\",\"#1f78b4\",\"#e31a1c\",\"#33a02c\",\"#33a02c\",\"#e31a1c\",\"#a6cee3\",\"#e31a1c\",\"#fb9a99\",\"#1f78b4\",\"#e31a1c\",\"#1f78b4\",\"#e31a1c\",\"#a6cee3\",\"#a6cee3\",\"#b2df8a\",\"#1f78b4\",\"#fb9a99\",\"#a6cee3\",\"#b2df8a\",\"#33a02c\",\"#b2df8a\",\"#b2df8a\",\"#33a02c\",\"#e31a1c\",\"#b2df8a\",\"#fdbf6f\",\"#b2df8a\",\"#a6cee3\",\"#b2df8a\",\"#a6cee3\",\"#e31a1c\",\"#e31a1c\",\"#33a02c\",\"#a6cee3\",\"#fb9a99\",\"#fdbf6f\",\"#fb9a99\",\"#e31a1c\",\"#33a02c\",\"#fdbf6f\",\"#33a02c\",\"#e31a1c\",\"#a6cee3\",\"#33a02c\",\"#33a02c\",\"#1f78b4\",\"#fb9a99\",\"#33a02c\",\"#33a02c\",\"#1f78b4\",\"#1f78b4\",\"#e31a1c\",\"#33a02c\",\"#a6cee3\",\"#fdbf6f\",\"#b2df8a\",\"#e31a1c\",\"#1f78b4\",\"#e31a1c\",\"#e31a1c\",\"#a6cee3\",\"#fb9a99\",\"#1f78b4\",\"#fdbf6f\",\"#b2df8a\",\"#e31a1c\",\"#fdbf6f\",\"#33a02c\",\"#fdbf6f\",\"#fb9a99\",\"#b2df8a\",\"#1f78b4\",\"#fb9a99\",\"#33a02c\",\"#1f78b4\",\"#a6cee3\",\"#fdbf6f\",\"#e31a1c\",\"#1f78b4\",\"#b2df8a\",\"#1f78b4\",\"#e31a1c\",\"#33a02c\",\"#a6cee3\",\"#33a02c\",\"#b2df8a\",\"#1f78b4\",\"#b2df8a\",\"#b2df8a\",\"#1f78b4\",\"#e31a1c\",\"#a6cee3\",\"#fdbf6f\",\"#a6cee3\",\"#1f78b4\",\"#fb9a99\",\"#33a02c\",\"#b2df8a\",\"#e31a1c\",\"#fdbf6f\",\"#1f78b4\",\"#e31a1c\",\"#b2df8a\",\"#b2df8a\",\"#1f78b4\",\"#1f78b4\",\"#e31a1c\",\"#fb9a99\",\"#a6cee3\",\"#e31a1c\",\"#33a02c\",\"#fdbf6f\",\"#1f78b4\",\"#b2df8a\",\"#a6cee3\",\"#e31a1c\",\"#33a02c\",\"#1f78b4\",\"#b2df8a\",\"#33a02c\",\"#33a02c\",\"#33a02c\",\"#e31a1c\",\"#b2df8a\",\"#fb9a99\",\"#1f78b4\",\"#fdbf6f\",\"#fb9a99\",\"#33a02c\",\"#1f78b4\",\"#e31a1c\",\"#33a02c\",\"#b2df8a\",\"#33a02c\",\"#fb9a99\",\"#b2df8a\",\"#1f78b4\",\"#1f78b4\",\"#fb9a99\",\"#a6cee3\",\"#1f78b4\",\"#b2df8a\",\"#fb9a99\",\"#1f78b4\",\"#fdbf6f\",\"#fb9a99\",\"#a6cee3\",\"#b2df8a\",\"#33a02c\",\"#33a02c\",\"#e31a1c\",\"#fb9a99\",\"#fdbf6f\",\"#fdbf6f\",\"#33a02c\",\"#e31a1c\",\"#1f78b4\",\"#a6cee3\",\"#fdbf6f\",\"#1f78b4\",\"#33a02c\",\"#e31a1c\",\"#e31a1c\",\"#e31a1c\",\"#1f78b4\",\"#33a02c\",\"#b2df8a\",\"#b2df8a\",\"#fb9a99\",\"#b2df8a\",\"#b2df8a\",\"#33a02c\",\"#a6cee3\",\"#1f78b4\",\"#e31a1c\",\"#fdbf6f\",\"#b2df8a\",\"#fdbf6f\",\"#a6cee3\",\"#a6cee3\",\"#a6cee3\",\"#1f78b4\",\"#a6cee3\",\"#e31a1c\",\"#1f78b4\",\"#e31a1c\",\"#33a02c\",\"#e31a1c\",\"#a6cee3\",\"#33a02c\",\"#a6cee3\",\"#b2df8a\",\"#fb9a99\",\"#a6cee3\",\"#b2df8a\",\"#fdbf6f\",\"#b2df8a\",\"#fb9a99\",\"#fdbf6f\",\"#e31a1c\",\"#a6cee3\",\"#a6cee3\",\"#e31a1c\",\"#a6cee3\",\"#a6cee3\",\"#fdbf6f\",\"#a6cee3\",\"#fdbf6f\",\"#33a02c\",\"#e31a1c\",\"#b2df8a\",\"#a6cee3\",\"#a6cee3\",\"#a6cee3\",\"#1f78b4\",\"#e31a1c\",\"#a6cee3\",\"#fdbf6f\",\"#33a02c\",\"#33a02c\",\"#33a02c\",\"#fb9a99\",\"#fb9a99\",\"#e31a1c\",\"#b2df8a\",\"#33a02c\",\"#a6cee3\",\"#fdbf6f\",\"#fdbf6f\",\"#33a02c\",\"#e31a1c\",\"#b2df8a\",\"#fb9a99\",\"#fdbf6f\",\"#fb9a99\",\"#e31a1c\",\"#fb9a99\",\"#fdbf6f\",\"#b2df8a\",\"#fdbf6f\",\"#fb9a99\",\"#fb9a99\",\"#e31a1c\",\"#a6cee3\",\"#fdbf6f\",\"#b2df8a\",\"#1f78b4\",\"#fb9a99\",\"#a6cee3\",\"#fb9a99\",\"#fb9a99\",\"#b2df8a\",\"#a6cee3\",\"#e31a1c\",\"#b2df8a\",\"#1f78b4\",\"#b2df8a\",\"#1f78b4\",\"#a6cee3\",\"#fb9a99\",\"#b2df8a\",\"#e31a1c\",\"#e31a1c\",\"#33a02c\",\"#fdbf6f\",\"#fdbf6f\",\"#a6cee3\",\"#33a02c\",\"#b2df8a\",\"#33a02c\",\"#33a02c\",\"#fb9a99\",\"#1f78b4\",\"#1f78b4\",\"#b2df8a\",\"#fdbf6f\",\"#fdbf6f\",\"#1f78b4\",\"#b2df8a\",\"#fdbf6f\",\"#a6cee3\",\"#e31a1c\",\"#a6cee3\",\"#fdbf6f\",\"#fdbf6f\",\"#33a02c\",\"#fb9a99\",\"#fdbf6f\",\"#a6cee3\",\"#b2df8a\",\"#fb9a99\",\"#b2df8a\",\"#b2df8a\",\"#33a02c\",\"#fb9a99\",\"#e31a1c\",\"#fdbf6f\",\"#fb9a99\",\"#fdbf6f\",\"#33a02c\",\"#e31a1c\",\"#fdbf6f\",\"#e31a1c\",\"#1f78b4\",\"#33a02c\",\"#fb9a99\",\"#1f78b4\",\"#fdbf6f\",\"#a6cee3\",\"#1f78b4\",\"#b2df8a\",\"#e31a1c\",\"#fb9a99\",\"#b2df8a\",\"#e31a1c\",\"#b2df8a\",\"#fdbf6f\",\"#fb9a99\",\"#a6cee3\",\"#fb9a99\",\"#a6cee3\",\"#33a02c\",\"#1f78b4\",\"#e31a1c\",\"#fb9a99\",\"#fb9a99\",\"#1f78b4\",\"#fdbf6f\",\"#b2df8a\",\"#fb9a99\",\"#1f78b4\",\"#1f78b4\",\"#e31a1c\",\"#e31a1c\",\"#33a02c\",\"#fb9a99\",\"#b2df8a\",\"#a6cee3\",\"#a6cee3\",\"#33a02c\",\"#a6cee3\",\"#33a02c\",\"#e31a1c\",\"#b2df8a\",\"#fb9a99\",\"#fdbf6f\",\"#a6cee3\",\"#e31a1c\",\"#1f78b4\",\"#a6cee3\",\"#b2df8a\",\"#a6cee3\",\"#1f78b4\",\"#fb9a99\",\"#b2df8a\",\"#fb9a99\",\"#e31a1c\",\"#fb9a99\",\"#1f78b4\",\"#b2df8a\",\"#1f78b4\",\"#b2df8a\",\"#fdbf6f\",\"#e31a1c\",\"#fb9a99\",\"#1f78b4\",\"#33a02c\",\"#e31a1c\",\"#33a02c\",\"#a6cee3\",\"#fdbf6f\",\"#fb9a99\",\"#33a02c\",\"#1f78b4\",\"#a6cee3\",\"#1f78b4\",\"#a6cee3\",\"#fb9a99\",\"#e31a1c\",\"#b2df8a\",\"#e31a1c\",\"#e31a1c\",\"#fb9a99\",\"#a6cee3\",\"#a6cee3\",\"#fb9a99\",\"#e31a1c\",\"#a6cee3\",\"#33a02c\",\"#33a02c\",\"#fb9a99\",\"#e31a1c\",\"#fdbf6f\",\"#1f78b4\",\"#e31a1c\",\"#b2df8a\",\"#b2df8a\",\"#33a02c\",\"#1f78b4\",\"#a6cee3\",\"#a6cee3\",\"#e31a1c\",\"#33a02c\",\"#a6cee3\",\"#b2df8a\",\"#fb9a99\",\"#b2df8a\",\"#a6cee3\",\"#1f78b4\",\"#a6cee3\",\"#33a02c\",\"#fdbf6f\",\"#b2df8a\",\"#e31a1c\",\"#fb9a99\",\"#fb9a99\",\"#e31a1c\",\"#a6cee3\",\"#33a02c\",\"#1f78b4\",\"#fdbf6f\",\"#1f78b4\",\"#e31a1c\",\"#fb9a99\",\"#b2df8a\",\"#1f78b4\",\"#b2df8a\",\"#fdbf6f\",\"#a6cee3\",\"#fdbf6f\",\"#a6cee3\",\"#1f78b4\",\"#b2df8a\",\"#fb9a99\",\"#1f78b4\",\"#fdbf6f\",\"#33a02c\",\"#fdbf6f\",\"#a6cee3\",\"#a6cee3\",\"#fb9a99\",\"#a6cee3\",\"#a6cee3\",\"#e31a1c\",\"#1f78b4\",\"#33a02c\",\"#fdbf6f\",\"#33a02c\",\"#fdbf6f\",\"#33a02c\",\"#33a02c\",\"#1f78b4\",\"#a6cee3\",\"#e31a1c\",\"#e31a1c\",\"#33a02c\",\"#fdbf6f\",\"#1f78b4\",\"#a6cee3\",\"#1f78b4\",\"#e31a1c\",\"#a6cee3\",\"#fdbf6f\",\"#b2df8a\",\"#1f78b4\",\"#33a02c\",\"#b2df8a\",\"#b2df8a\",\"#a6cee3\",\"#fb9a99\",\"#e31a1c\",\"#1f78b4\",\"#fdbf6f\",\"#fdbf6f\",\"#e31a1c\",\"#e31a1c\",\"#fdbf6f\",\"#fdbf6f\",\"#e31a1c\",\"#b2df8a\",\"#b2df8a\",\"#33a02c\",\"#fb9a99\",\"#e31a1c\",\"#a6cee3\",\"#e31a1c\",\"#e31a1c\",\"#33a02c\",\"#b2df8a\",\"#b2df8a\",\"#33a02c\",\"#fdbf6f\",\"#b2df8a\",\"#a6cee3\",\"#e31a1c\",\"#a6cee3\",\"#1f78b4\",\"#1f78b4\",\"#e31a1c\",\"#fdbf6f\",\"#a6cee3\",\"#33a02c\",\"#b2df8a\",\"#1f78b4\",\"#fdbf6f\",\"#a6cee3\",\"#b2df8a\",\"#b2df8a\",\"#fdbf6f\",\"#e31a1c\",\"#e31a1c\",\"#fb9a99\",\"#1f78b4\",\"#a6cee3\",\"#33a02c\",\"#fdbf6f\",\"#e31a1c\",\"#1f78b4\",\"#a6cee3\",\"#fb9a99\",\"#b2df8a\",\"#fdbf6f\",\"#1f78b4\",\"#fb9a99\",\"#b2df8a\",\"#b2df8a\",\"#a6cee3\",\"#fb9a99\",\"#fb9a99\",\"#e31a1c\",\"#fb9a99\",\"#b2df8a\",\"#33a02c\",\"#33a02c\",\"#a6cee3\",\"#b2df8a\",\"#1f78b4\",\"#fb9a99\",\"#1f78b4\",\"#a6cee3\",\"#e31a1c\",\"#a6cee3\",\"#fb9a99\",\"#1f78b4\",\"#a6cee3\",\"#e31a1c\",\"#e31a1c\",\"#fdbf6f\",\"#e31a1c\",\"#1f78b4\",\"#1f78b4\",\"#fb9a99\",\"#a6cee3\",\"#fb9a99\",\"#e31a1c\",\"#fdbf6f\",\"#fdbf6f\",\"#a6cee3\",\"#fdbf6f\",\"#a6cee3\",\"#fb9a99\",\"#b2df8a\",\"#33a02c\",\"#b2df8a\",\"#fdbf6f\",\"#b2df8a\",\"#e31a1c\",\"#1f78b4\",\"#fdbf6f\",\"#fdbf6f\",\"#1f78b4\",\"#e31a1c\",\"#e31a1c\",\"#b2df8a\",\"#33a02c\",\"#fb9a99\",\"#a6cee3\",\"#fdbf6f\",\"#1f78b4\",\"#e31a1c\",\"#e31a1c\",\"#fb9a99\",\"#a6cee3\",\"#33a02c\",\"#fdbf6f\",\"#e31a1c\",\"#e31a1c\",\"#1f78b4\",\"#1f78b4\",\"#e31a1c\",\"#fb9a99\",\"#33a02c\",\"#a6cee3\",\"#b2df8a\",\"#e31a1c\",\"#33a02c\",\"#fdbf6f\",\"#fb9a99\",\"#fb9a99\",\"#fdbf6f\",\"#fb9a99\",\"#fb9a99\",\"#33a02c\",\"#e31a1c\",\"#fb9a99\",\"#b2df8a\",\"#b2df8a\",\"#fb9a99\",\"#fdbf6f\",\"#fb9a99\",\"#1f78b4\",\"#fdbf6f\",\"#e31a1c\",\"#1f78b4\",\"#33a02c\",\"#fdbf6f\",\"#33a02c\",\"#e31a1c\",\"#b2df8a\",\"#fb9a99\",\"#e31a1c\",\"#fb9a99\",\"#33a02c\",\"#b2df8a\",\"#fdbf6f\",\"#33a02c\",\"#b2df8a\",\"#1f78b4\",\"#fb9a99\",\"#b2df8a\",\"#1f78b4\",\"#1f78b4\",\"#e31a1c\",\"#b2df8a\",\"#b2df8a\",\"#33a02c\",\"#e31a1c\",\"#b2df8a\",\"#b2df8a\",\"#1f78b4\",\"#a6cee3\",\"#b2df8a\",\"#33a02c\",\"#33a02c\",\"#33a02c\",\"#fb9a99\",\"#a6cee3\",\"#a6cee3\",\"#e31a1c\",\"#b2df8a\",\"#b2df8a\",\"#e31a1c\",\"#1f78b4\",\"#fb9a99\",\"#a6cee3\",\"#a6cee3\",\"#a6cee3\",\"#fdbf6f\",\"#fb9a99\",\"#b2df8a\",\"#a6cee3\",\"#fb9a99\",\"#a6cee3\",\"#1f78b4\",\"#33a02c\",\"#b2df8a\",\"#33a02c\",\"#b2df8a\",\"#fdbf6f\",\"#1f78b4\",\"#a6cee3\",\"#33a02c\",\"#e31a1c\",\"#e31a1c\",\"#e31a1c\",\"#e31a1c\",\"#33a02c\",\"#fb9a99\",\"#fdbf6f\",\"#b2df8a\",\"#1f78b4\",\"#1f78b4\",\"#33a02c\",\"#33a02c\",\"#33a02c\",\"#33a02c\",\"#b2df8a\",\"#a6cee3\",\"#fdbf6f\",\"#a6cee3\",\"#e31a1c\",\"#1f78b4\",\"#33a02c\",\"#fb9a99\",\"#1f78b4\",\"#fdbf6f\",\"#b2df8a\",\"#fb9a99\",\"#1f78b4\",\"#33a02c\",\"#fb9a99\",\"#a6cee3\",\"#b2df8a\",\"#fb9a99\",\"#fb9a99\",\"#1f78b4\",\"#a6cee3\",\"#1f78b4\",\"#e31a1c\",\"#fb9a99\",\"#fdbf6f\",\"#a6cee3\",\"#1f78b4\",\"#fb9a99\",\"#fb9a99\",\"#fb9a99\",\"#a6cee3\",\"#fdbf6f\",\"#33a02c\",\"#a6cee3\",\"#b2df8a\",\"#b2df8a\",\"#1f78b4\",\"#e31a1c\",\"#1f78b4\",\"#33a02c\",\"#e31a1c\",\"#fb9a99\",\"#fdbf6f\",\"#fb9a99\",\"#a6cee3\",\"#b2df8a\",\"#33a02c\",\"#1f78b4\",\"#a6cee3\",\"#a6cee3\",\"#b2df8a\",\"#a6cee3\",\"#33a02c\",\"#e31a1c\",\"#fdbf6f\",\"#b2df8a\",\"#a6cee3\",\"#b2df8a\",\"#fb9a99\",\"#fdbf6f\",\"#fb9a99\",\"#1f78b4\",\"#e31a1c\",\"#a6cee3\",\"#e31a1c\",\"#fb9a99\",\"#b2df8a\",\"#fb9a99\",\"#1f78b4\",\"#fb9a99\",\"#a6cee3\",\"#e31a1c\",\"#fdbf6f\",\"#a6cee3\",\"#fb9a99\",\"#b2df8a\",\"#e31a1c\",\"#33a02c\",\"#1f78b4\",\"#b2df8a\",\"#a6cee3\",\"#a6cee3\",\"#a6cee3\",\"#e31a1c\",\"#fdbf6f\",\"#fb9a99\",\"#33a02c\",\"#fdbf6f\",\"#b2df8a\",\"#a6cee3\",\"#b2df8a\",\"#e31a1c\",\"#e31a1c\",\"#1f78b4\",\"#fb9a99\",\"#a6cee3\",\"#1f78b4\",\"#fdbf6f\",\"#fdbf6f\",\"#b2df8a\",\"#e31a1c\",\"#1f78b4\",\"#a6cee3\",\"#e31a1c\",\"#fb9a99\"],\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[2000]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[2000]}}},\"id\":\"0a301be0-f3eb-4d49-b570-b5496f18f27a\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"77b36ab4-aef5-4aee-b51a-8d90ca4eae19\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"79311563-b6e2-4383-8120-718763072eaf\",\"type\":\"PanTool\"},{\"attributes\":{\"callback\":null},\"id\":\"ff94a545-49cd-4862-a5a4-7e41b0a67aa2\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"2bde389d-87cd-4f33-969b-a1624c3d432a\",\"type\":\"ResetTool\"},{\"attributes\":{\"fill_color\":{\"field\":\"fill_color\"},\"line_alpha\":{\"value\":0.5},\"size\":{\"units\":\"screen\",\"value\":8},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1a495936-1030-49ab-a5f3-aa36e7182987\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"fda0a28f-a79c-4eb5-b71d-c9f3a739b4af\",\"type\":\"WheelZoomTool\"}],\"root_ids\":[\"54818e84-5795-4175-a3e3-9439de75335e\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.13\"}};\n", " var render_items = [{\"docid\":\"513be5cb-5511-4d5e-aeaf-f329915e3dc8\",\"elementid\":\"542f30bc-56c7-4841-bd06-1faf248d7109\",\"modelid\":\"54818e84-5795-4175-a3e3-9439de75335e\"}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " var attempts = 0;\n", " var timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " clearInterval(timer);\n", " }\n", " attempts++;\n", " if (attempts > 100) {\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\")\n", " clearInterval(timer);\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "54818e84-5795-4175-a3e3-9439de75335e" } }, "output_type": "display_data" } ], "source": [ "data, color_indices = datasets.make_blobs(n_samples=2000, n_features=2, centers=7,\n", " center_box=(-4.0, 6.0), cluster_std=0.5)\n", "\n", "fig = bk.figure(title=None)\n", "fig.circle(data[:,0], data[:,1],\n", " line_color='black', line_alpha=0.5, size=8,\n", " fill_color=pal.linear_map(color_indices, cat_colors,\n", " low=0, high=6))\n", "bk.show(fig)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "\n", "Visit [www.add-for.com]() for more tutorials and updates.\n", "\n", "This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License." ] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python [conda env:addfor_tutorials]", "language": "python", "name": "conda-env-addfor_tutorials-py" }, "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.6.4" } }, "nbformat": 4, "nbformat_minor": 1 }