{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Making plots with Bokeh {#sec-plotting-with-bokeh}\n", "\n", "
" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "nbsphinx": "hidden", "tags": [] }, "outputs": [], "source": [ "#| code-fold: true\n", "\n", "# Colab setup ------------------\n", "import os, sys, subprocess\n", "if \"google.colab\" in sys.modules:\n", " cmd = \"pip install --upgrade polars watermark\"\n", " process = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE)\n", " stdout, stderr = process.communicate()\n", " data_path = \"https://s3.amazonaws.com/bebi103.caltech.edu/data/\"\n", "else:\n", " data_path = \"../data/\"" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", "
\n", " \n", " Loading BokehJS ...\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "'use strict';\n", "(function(root) {\n", " function now() {\n", " return new Date();\n", " }\n", "\n", " const 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", "const JS_MIME_TYPE = 'application/javascript';\n", " const HTML_MIME_TYPE = 'text/html';\n", " const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n", " const CLASS_NAME = 'output_bokeh rendered_html';\n", "\n", " /**\n", " * Render data to the DOM node\n", " */\n", " function render(props, node) {\n", " const 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", " function drop(id) {\n", " const view = Bokeh.index.get_by_id(id)\n", " if (view != null) {\n", " view.model.document.clear()\n", " Bokeh.index.delete(view)\n", " }\n", " }\n", "\n", " const cell = handle.cell;\n", "\n", " const id = cell.output_area._bokeh_element_id;\n", " const server_id = cell.output_area._bokeh_server_id;\n", "\n", " // Clean up Bokeh references\n", " if (id != null) {\n", " drop(id)\n", " }\n", "\n", " if (server_id !== undefined) {\n", " // Clean up Bokeh references\n", " const cmd_clean = \"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_clean, {\n", " iopub: {\n", " output: function(msg) {\n", " const id = msg.content.text.trim()\n", " drop(id)\n", " }\n", " }\n", " });\n", " // Destroy server and session\n", " const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n", " cell.notebook.kernel.execute(cmd_destroy);\n", " }\n", " }\n", "\n", " /**\n", " * Handle when a new output is added\n", " */\n", " function handleAddOutput(event, handle) {\n", " const output_area = handle.output_area;\n", " const output = handle.output;\n", "\n", " // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n", " if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n", " return\n", " }\n", "\n", " const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n", "\n", " if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n", " toinsert[toinsert.length - 1].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", " const bk_div = document.createElement(\"div\");\n", " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n", " const script_attrs = bk_div.children[0].attributes;\n", " for (let i = 0; i < script_attrs.length; i++) {\n", " toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n", " toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\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", " const 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", " const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n", " render(props, toinsert[toinsert.length - 1]);\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", " const events = require('base/js/events');\n", " const 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", " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n", " root._bokeh_timeout = Date.now() + 5000;\n", " root._bokeh_failed_load = false;\n", " }\n", "\n", " const 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", " \"\\n\"+\n", " \"from bokeh.resources import INLINE\\n\"+\n", " \"output_notebook(resources=INLINE)\\n\"+\n", " \"\\n\"+\n", " \"
\"}};\n", "\n", " function display_loaded(error = null) {\n", " const el = document.getElementById(\"fbe46e42-976c-4c3e-b9be-67e16a4856cb\");\n", " if (el != null) {\n", " const html = (() => {\n", " if (typeof root.Bokeh === \"undefined\") {\n", " if (error == null) {\n", " return \"BokehJS is loading ...\";\n", " } else {\n", " return \"BokehJS failed to load.\";\n", " }\n", " } else {\n", " const prefix = `BokehJS ${root.Bokeh.version}`;\n", " if (error == null) {\n", " return `${prefix} successfully loaded.`;\n", " } else {\n", " return `${prefix} encountered errors while loading and may not function as expected.`;\n", " }\n", " }\n", " })();\n", " el.innerHTML = html;\n", "\n", " if (error != null) {\n", " const wrapper = document.createElement(\"div\");\n", " wrapper.style.overflow = \"auto\";\n", " wrapper.style.height = \"5em\";\n", " wrapper.style.resize = \"vertical\";\n", " const content = document.createElement(\"div\");\n", " content.style.fontFamily = \"monospace\";\n", " content.style.whiteSpace = \"pre-wrap\";\n", " content.style.backgroundColor = \"rgb(255, 221, 221)\";\n", " content.textContent = error.stack ?? error.toString();\n", " wrapper.append(content);\n", " el.append(wrapper);\n", " }\n", " } else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(() => display_loaded(error), 100);\n", " }\n", " }\n", "\n", " function run_callbacks() {\n", " try {\n", " root._bokeh_onload_callbacks.forEach(function(callback) {\n", " if (callback != null)\n", " callback();\n", " });\n", " } finally {\n", " delete root._bokeh_onload_callbacks\n", " }\n", " console.debug(\"Bokeh: all callbacks have finished\");\n", " }\n", "\n", " function load_libs(css_urls, js_urls, callback) {\n", " if (css_urls == null) css_urls = [];\n", " if (js_urls == null) js_urls = [];\n", "\n", " root._bokeh_onload_callbacks.push(callback);\n", " if (root._bokeh_is_loading > 0) {\n", " console.debug(\"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.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", " root._bokeh_is_loading = css_urls.length + js_urls.length;\n", "\n", " function on_load() {\n", " root._bokeh_is_loading--;\n", " if (root._bokeh_is_loading === 0) {\n", " console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n", " run_callbacks()\n", " }\n", " }\n", "\n", " function on_error(url) {\n", " console.error(\"failed to load \" + url);\n", " }\n", "\n", " for (let i = 0; i < css_urls.length; i++) {\n", " const url = css_urls[i];\n", " const element = document.createElement(\"link\");\n", " element.onload = on_load;\n", " element.onerror = on_error.bind(null, url);\n", " element.rel = \"stylesheet\";\n", " element.type = \"text/css\";\n", " element.href = url;\n", " console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n", " document.body.appendChild(element);\n", " }\n", "\n", " for (let i = 0; i < js_urls.length; i++) {\n", " const url = js_urls[i];\n", " const element = document.createElement('script');\n", " element.onload = on_load;\n", " element.onerror = on_error.bind(null, url);\n", " element.async = false;\n", " element.src = url;\n", " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", " document.head.appendChild(element);\n", " }\n", " };\n", "\n", " function inject_raw_css(css) {\n", " const element = document.createElement(\"style\");\n", " element.appendChild(document.createTextNode(css));\n", " document.body.appendChild(element);\n", " }\n", "\n", " const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.6.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.6.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.6.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.6.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.6.2.min.js\"];\n", " const css_urls = [];\n", "\n", " const inline_js = [ function(Bokeh) {\n", " Bokeh.set_log_level(\"info\");\n", " },\n", "function(Bokeh) {\n", " }\n", " ];\n", "\n", " function run_inline_js() {\n", " if (root.Bokeh !== undefined || force === true) {\n", " try {\n", " for (let i = 0; i < inline_js.length; i++) {\n", " inline_js[i].call(root, root.Bokeh);\n", " }\n", "\n", " } catch (error) {display_loaded(error);throw error;\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", " const cell = $(document.getElementById(\"fbe46e42-976c-4c3e-b9be-67e16a4856cb\")).parents('.cell').data().cell;\n", " cell.output_area.append_execute_result(NB_LOAD_WARNING)\n", " }\n", " }\n", "\n", " if (root._bokeh_is_loading === 0) {\n", " console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n", " run_inline_js();\n", " } else {\n", " load_libs(css_urls, js_urls, function() {\n", " console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n", " run_inline_js();\n", " });\n", " }\n", "}(window));" ], "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import scipy.special\n", "import polars as pl\n", "\n", "# Our main plotting package (must have explicit import of submodules)\n", "import bokeh.io\n", "import bokeh.plotting\n", "\n", "# Enable viewing Bokeh plots in the notebook\n", "bokeh.io.output_notebook()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\n", "## High-level and low-level plotting packages\n", "\n", "As a demonstration of what I mean by high-level and low-level plotting packages, let us first think about one of our tasks we did with Polars with the facial matching data set. We computed the median percent correct for those with and without insomnia. Here's the code to do it." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (2, 2)
insomniapercent correct
boolf64
false85.0
true75.0
" ], "text/plain": [ "shape: (2, 2)\n", "┌──────────┬─────────────────┐\n", "│ insomnia ┆ percent correct │\n", "│ --- ┆ --- │\n", "│ bool ┆ f64 │\n", "╞══════════╪═════════════════╡\n", "│ false ┆ 85.0 │\n", "│ true ┆ 75.0 │\n", "└──────────┴─────────────────┘" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fname = os.path.join(data_path, \"gfmt_sleep.csv\")\n", "df = pl.read_csv(fname, null_values=\"*\")\n", "df = df.with_columns((pl.col('sci') <= 16).alias(\"insomnia\"))\n", "\n", "df.group_by(\"insomnia\").agg(pl.col('percent correct').median())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Literally just a few lines of code. Now what if we tried to do it without Polars? I won't even go through the many lines of code necessary to read in the data. Consider just this one line.\n", "\n", "```python\n", "df.group_by(\"insomnia\").agg(pl.col('percent correct').median())\n", "```\n", "\n", "There are elementary tasks that go into it if we were to code it up without using Polars's delicious functionality. We can loop over the rows in the data frame with a `for` loop, check to see what the value of the `insomnia` column is with an `if` statement, put the value in the `percent correct` field into an appropriate array based on whether or not the subject suffers from insomnia, and then, given those arrays, sort them and pull out the middle value. Under the hood, all of those steps take place, but because we use Polars's **high-level functionality**, those details are invisible to us, and glad we are of that.\n", "\n", "Now, say we want to make a plot of some data. You can imagine that there are many many steps to building that. One way you could build a plot is to hand-generate an [SVG file](https://en.wikipedia.org/wiki/Scalable_Vector_Graphics) that is a set of specifications for lines and circles and text and whatnot that comprises a plot. (I have actually done this before, writing a C program that hand-generated SVG, and it was paaaaainful.) That would be a very **low-level** way of generating a plot. Plotting libraries in Python usually take care of the rendering part for you, either rendering the plot as SVG, PDF, PNG, or other formats, including interactive ones that use [JavaScript](https://en.wikipedia.org/wiki/JavaScript) and [HTML Canvas](https://en.wikipedia.org/wiki/Canvas_element) that can be viewed in a browser. The plotting libraries then vary in their level of abstraction from the data set.\n", "\n", "Lower-level plotting libraries typically are more customizable, but require more [boilerplate code](https://en.wikipedia.org/wiki/Boilerplate_code) to get your data plotted and are therefore more cumbersome. Higher-level plotting libraries aim to make it easier to move directly from a data frame to a plot. Because of this streamlining, though, they are often more difficult to customize.\n", "\n", "The developers of [HoloViz](http://holoviz.org/) made a nice graphic for this concept (Copyright PyViz authors, downloaded [here](https://holoviz.org/background.html)).\n", "\n", "![Routes to making a plot, copyright PyViz authors.](shortcuts.png){#fig-pyviz-maze width=80% fig-alt=\"Routes to making a plot.\"}\n", "\n", "Using a low-level plotting library, you can get to any graphic you like, but it takes many steps to do so. Using a high level library, you can rapidly get to many, if not most, of the graphics you like in very few steps. However, you cannot get to *all* graphics. In a layered approach, in which the higher level libraries give you access to the lower level customizations, you can get to any graphic, and can do so quickly. The layered approach requires proficiency in using the low-level and high-level libraries." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Bokeh and the summer school\n", "\n", "One debate I have every time I teach data visualization is what plotting packages, high-level or low-level, to use. I decided to almost exclusively [Bokeh](https://bokeh.pydata.org/), a low-level plotting library first for a few reasons.\n", "\n", "1. Though low-level, generating plot you might like to construct is fairly straightforward. (Read: it's not that bad for quickly making plots.)\n", "2. By being familiar with a lower-level plotting package, you can then take a layered approach as you learn a higher-level package.\n", "3. We will discuss at least one higher-level package, [iqplot](https://iqplot.github.io/), in short order, discussed in the [next part of this lesson](iqplot.ipynb).\n", "\n", "Importantly, note that Bokeh's submodules often have to be explicitly imported, as we did in the code cell at the top of this notebook. Not also that if you want your plots to be viewable (and interactive) in the notebook, you need to execute\n", "\n", "```python\n", "bokeh.io.output_notebook()\n", "```\n", "\n", "at the top of the notebook (as we have done). Finally, note that we also have to have installed the Bokeh JupyterLab extension." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Bokeh's grammar and our first plot with Bokeh\n", "\n", "Constructing a plot with Bokeh consists of four main steps.\n", "\n", "1. Creating a figure on which to populate **glyphs** (symbols that represent data, e.g., dots for a scatter plot). Think of this figure as a \"canvas\" which sets the space on which you will \"paint\" your glyphs.\n", "2. Defining a data source that is the reference used to place the glyphs.\n", "3. Choose the kind of glyph you would like.\n", "4. Annotate the columns of data source to determine how they are used to place (and possibly color, scale, etc.) the glyph.\n", "\n", "After completing these steps, you need to render the graphic.\n", "\n", "Let's go through these steps in generating a scatter plot of confidence when incorrect versus confidence when correct for the face matching under sleep deprivation study. So you have the concrete example in mind, the final graphic will look like this" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "tags": [ "hide-input" ] }, "outputs": [ { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " const docs_json = {\"1085016e-685a-40c9-960f-c0e2a3c68b07\":{\"version\":\"3.6.2\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1001\",\"attributes\":{\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1002\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1003\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1010\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1011\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1008\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1044\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1035\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1036\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1037\"},\"data\":{\"type\":\"map\",\"entries\":[[\"participant number\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CAAAABAAAAASAAAAFgAAABsAAAAcAAAAHgAAACEAAAAiAAAAIwAAACYAAAApAAAALgAAADEAAAA3AAAARwAAAEwAAABNAAAATgAAAFAAAABZAAAAWgAAAF0AAABkAAAAZQAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEQAAABMAAAAUAAAAFQAAABcAAAAYAAAAGQAAABoAAAAdAAAAHwAAACAAAAAkAAAAJQAAACcAAAAoAAAAKgAAACsAAAAsAAAALQAAADAAAAAyAAAAMwAAADQAAAA1AAAANgAAADgAAAA5AAAAOgAAADsAAAA8AAAAPQAAAD4AAAA/AAAAQAAAAEEAAABCAAAAQwAAAEQAAABFAAAARgAAAEgAAABJAAAASgAAAEsAAABPAAAAUQAAAFIAAABTAAAAVAAAAFUAAABWAAAAVwAAAFgAAABbAAAAXAAAAF4AAABfAAAAYAAAAGEAAABiAAAAYwAAAGYAAABnAAAA\"},\"shape\":[102],\"dtype\":\"int32\",\"order\":\"little\"}],[\"gender\",{\"type\":\"ndarray\",\"array\":[\"f\",\"m\",\"f\",\"f\",\"f\",\"f\",\"m\",\"m\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"m\",\"m\",\"f\",\"m\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"m\",\"f\",\"f\",\"m\",\"m\",\"m\",\"f\",\"m\",\"f\",\"f\",\"m\",\"m\",\"f\",\"f\",\"m\",\"f\",\"m\",\"f\",\"m\",\"f\",\"f\",\"m\",\"m\",\"f\",\"f\",\"f\",\"f\",\"m\",\"f\",\"f\",\"f\",\"f\",\"m\",\"f\",\"f\",\"f\",\"m\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"m\",\"f\",\"f\",\"m\",\"f\",\"f\",\"f\",\"f\",\"f\",\"m\",\"m\",\"m\",\"m\",\"f\",\"m\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\"],\"shape\":[102],\"dtype\":\"object\",\"order\":\"little\"}],[\"age\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"JwAAACoAAAAfAAAAIwAAAEoAAAA9AAAAIAAAAD4AAAAhAAAANQAAACkAAAAkAAAAKAAAABgAAAAgAAAAKAAAAD0AAAAqAAAAHwAAABwAAAAaAAAALQAAABwAAAAsAAAAHAAAACoAAAAtAAAAEAAAABUAAAASAAAAHAAAACYAAAARAAAAGQAAABYAAAApAAAANQAAACsAAAAXAAAAEwAAAC0AAAArAAAAIwAAABgAAABAAAAAJAAAACMAAAArAAAALAAAAB0AAAAWAAAALgAAACMAAAA1AAAAHQAAAB8AAAAVAAAAKgAAABcAAAA2AAAAGAAAABUAAAAVAAAAKwAAADIAAAA1AAAAEAAAAEMAAAAkAAAAIgAAACoAAAAuAAAARQAAAB8AAAAsAAAAGQAAAC0AAAAvAAAAIQAAABIAAABKAAAAFQAAAC0AAAAlAAAAKQAAACkAAAAiAAAAJwAAABIAAAAfAAAAGgAAAEIAAAA+AAAAFgAAACkAAAAuAAAAOAAAABcAAABGAAAAGAAAACgAAAAhAAAA\"},\"shape\":[102],\"dtype\":\"int32\",\"order\":\"little\"}],[\"correct hit percentage\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QQAAAFoAAABaAAAAZAAAADwAAABQAAAAWgAAAC0AAABQAAAAZAAAAEYAAABaAAAAXwAAAFUAAABLAAAAKAAAAGQAAABGAAAAZAAAAGQAAAA8AAAAZAAAAGQAAABBAAAAZAAAAFAAAABQAAAARgAAAEYAAABaAAAAXwAAAFoAAABaAAAAZAAAAFAAAABaAAAAXwAAAF8AAABaAAAANwAAAGQAAABBAAAAWgAAADcAAABLAAAAZAAAAEYAAABaAAAAXwAAAF8AAABGAAAAUAAAADIAAABBAAAAZAAAAFUAAABVAAAAWgAAAFoAAABaAAAAVQAAAFUAAABaAAAAXwAAAEYAAABfAAAAVQAAAF8AAABaAAAAWgAAAGQAAABQAAAAXwAAAGQAAABaAAAAZAAAAEYAAABaAAAAVQAAAFAAAABVAAAAKAAAAFAAAABaAAAAWgAAAFAAAABaAAAASwAAAFUAAABkAAAAXwAAADwAAABkAAAAVQAAACMAAABfAAAARgAAAEYAAABaAAAARgAAAEsAAABVAAAA\"},\"shape\":[102],\"dtype\":\"int32\",\"order\":\"little\"}],[\"correct reject percentage\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UAAAAFoAAABfAAAASwAAAEEAAAAUAAAASwAAAFoAAABkAAAAMgAAADcAAABkAAAAQQAAAEsAAAA3AAAAZAAAACgAAABaAAAARgAAADIAAABQAAAAXwAAAEsAAAAZAAAAKAAAAEEAAABaAAAAUAAAAEEAAABkAAAAUAAAAF8AAABaAAAAZAAAADwAAABQAAAAPAAAAFoAAABQAAAAPAAAAFUAAABBAAAAZAAAAGQAAABVAAAAUAAAAFoAAABVAAAAWgAAADcAAABBAAAASwAAAF8AAABQAAAARgAAAFoAAABaAAAAWgAAAFUAAABGAAAAXwAAAEsAAABQAAAASwAAAFUAAABLAAAAVQAAAEsAAABBAAAAWgAAAGQAAABaAAAAUAAAAF8AAABfAAAAZAAAADIAAABkAAAARgAAAEsAAABQAAAAKAAAAF8AAABQAAAAVQAAAEsAAAAjAAAARgAAAFUAAABVAAAASwAAAFUAAABQAAAAXwAAAEsAAABQAAAAMgAAAFUAAABVAAAAUAAAAEEAAAAoAAAA\"},\"shape\":[102],\"dtype\":\"int32\",\"order\":\"little\"}],[\"percent correct\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAgUkAAAAAAAIBWQAAAAAAAIFdAAAAAAADgVUAAAAAAAEBPQAAAAAAAAElAAAAAAACgVEAAAAAAAOBQQAAAAAAAgFZAAAAAAADAUkAAAAAAAEBPQAAAAAAAwFdAAAAAAAAAVEAAAAAAAABUQAAAAAAAQFBAAAAAAACAUUAAAAAAAIBRQAAAAAAAAFRAAAAAAABAVUAAAAAAAMBSQAAAAAAAgFFAAAAAAABgWEAAAAAAAOBVQAAAAAAAgEZAAAAAAACAUUAAAAAAACBSQAAAAAAAQFVAAAAAAADAUkAAAAAAAOBQQAAAAAAAwFdAAAAAAADgVUAAAAAAACBXQAAAAAAAgFZAAAAAAAAAWUAAAAAAAIBRQAAAAAAAQFVAAAAAAABgU0AAAAAAACBXQAAAAAAAQFVAAAAAAADATEAAAAAAACBXQAAAAAAAQFBAAAAAAADAV0AAAAAAAGBTQAAAAAAAAFRAAAAAAACAVkAAAAAAAABUQAAAAAAA4FVAAAAAAAAgV0AAAAAAAMBSQAAAAAAA4FBAAAAAAABgU0AAAAAAACBSQAAAAAAAIFJAAAAAAABAVUAAAAAAAOBVQAAAAAAA4FVAAAAAAACAVkAAAAAAAOBVQAAAAAAAAFRAAAAAAACAVkAAAAAAAABUQAAAAAAAQFVAAAAAAABAVUAAAAAAAGBTQAAAAAAAQFVAAAAAAABAVUAAAAAAAEBVQAAAAAAAYFNAAAAAAACAVkAAAAAAAABZQAAAAAAAQFVAAAAAAADgVUAAAAAAAGBYQAAAAAAAIFdAAAAAAAAAWUAAAAAAAABOQAAAAAAAwFdAAAAAAABgU0AAAAAAAGBTQAAAAAAAoFRAAAAAAAAAREAAAAAAAOBVQAAAAAAAQFVAAAAAAADgVUAAAAAAAGBTQAAAAAAAQE9AAAAAAAAgUkAAAAAAAEBVQAAAAAAAIFdAAAAAAABAVUAAAAAAACBSQAAAAAAAgFZAAAAAAACAVkAAAAAAAIBLQAAAAAAA4FVAAAAAAAAATkAAAAAAAGBTQAAAAAAA4FVAAAAAAADAUkAAAAAAAIBRQAAAAAAAQE9A\"},\"shape\":[102],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence when correct hit\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAADAVkAAAAAAAOBSQAAAAAAAYFZAAAAAAABgVkAAAAAAACBRQAAAAAAAwFFAAAAAAADAUEAAAAAAAABLQAAAAAAAoFFAAAAAAACgUkAAAAAAAIBUQAAAAAAAIFNAAAAAAAAAVEAAAAAAAABNQAAAAAAAQFVAAAAAAABAUUAAAAAAAGBRQAAAAAAAwFVAAAAAAAAAV0AAAAAAAABZQAAAAAAAgFFAAAAAAAAAWUAAAAAAAGBWQAAAAAAAAE9AAAAAAADAVUAAAAAAAMBJQAAAAAAAwFJAAAAAAACAUUAAAAAAAMBPQAAAAAAAIFNAAAAAAAAAWUAAAAAAAEBTQAAAAAAAIFRAAAAAAACAVkAAAAAAAIBRQAAAAAAAIFNAAAAAAAAAREAAAAAAAABKQAAAAAAAAFZAAAAAAAAAT0AAAAAAAABRQAAAAAAAgE1AAAAAAADgUkAAAAAAAABRQAAAAAAAAElAAAAAAAAAVkAAAAAAAIA9QAAAAAAAYFBAAAAAAADAVEAAAAAAAMBQQAAAAAAAgFNAAAAAAAAgUkAAAAAAAEBPQAAAAAAAAEtAAAAAAADAUkAAAAAAAIBUQAAAAAAAgFBAAAAAAADAVEAAAAAAAMBQQAAAAAAAgFZAAAAAAABAWEAAAAAAAEBQQAAAAAAAAFVAAAAAAACAUkAAAAAAACBXQAAAAAAAAFVAAAAAAACAS0AAAAAAAIBRQAAAAAAA4FBAAAAAAABATUAAAAAAAKBSQAAAAAAAAFdAAAAAAAAAVEAAAAAAAIBYQAAAAAAAwFVAAAAAAADATkAAAAAAACBUQAAAAAAAAFlAAAAAAACAUUAAAAAAAOBQQAAAAAAAgFBAAAAAAACgVkAAAAAAAIBSQAAAAAAA4FdAAAAAAAAAVEAAAAAAAKBXQAAAAAAAQFRAAAAAAACATEAAAAAAAEBXQAAAAAAAAFlAAAAAAABAVUAAAAAAAOBQQAAAAAAAQFRAAAAAAACAUEAAAAAAAIBLQAAAAAAAgFZAAAAAAACAT0AAAAAAAEBTQAAAAAAAYFBAAAAAAADATkAAAAAAAIBKQAAAAAAAAFRA\"},\"shape\":[102],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence incorrect hit\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAACAVkAAAAAAAMBLQAAAAAAAgFZAAAAAAAAA+H8AAAAAAIBIQAAAAAAAgE9AAAAAAABATEAAAAAAAIBCQAAAAAAAIFNAAAAAAAAA+H8AAAAAAMBOQAAAAAAA4FJAAAAAAABAVkAAAAAAAABJQAAAAAAAQFRAAAAAAAAATEAAAAAAAAD4fwAAAAAAAFJAAAAAAAAA+H8AAAAAAAD4fwAAAAAAQFNAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAFJAAAAAAAAA+H8AAAAAAEBGQAAAAAAAwEtAAAAAAACATEAAAAAAAABQQAAAAAAAwFRAAAAAAABAVUAAAAAAAMBFQAAAAAAA4FVAAAAAAAAA+H8AAAAAAIBRQAAAAAAAwEtAAAAAAACAQEAAAAAAAAA9QAAAAAAAAERAAAAAAAAASUAAAAAAAAD4fwAAAAAAgEtAAAAAAADAQUAAAAAAAMBQQAAAAAAAADlAAAAAAAAA+H8AAAAAAIA8QAAAAAAAADtAAAAAAAAATEAAAAAAAIBKQAAAAAAAAFZAAAAAAAAAUkAAAAAAAAA9QAAAAAAAAEBAAAAAAAAA+H8AAAAAAIBIQAAAAAAAAD1AAAAAAADAVEAAAAAAAIBHQAAAAAAA4FRAAAAAAACAREAAAAAAAEBSQAAAAAAAwEtAAAAAAABAVkAAAAAAACBSQAAAAAAAgEtAAAAAAAAAPkAAAAAAAAAcQAAAAAAAgDxAAAAAAACARUAAAAAAAAD4fwAAAAAA4FJAAAAAAABAUEAAAAAAAAD4fwAAAAAAwEdAAAAAAAAA+H8AAAAAAMBJQAAAAAAAAPh/AAAAAAAAQ0AAAAAAAMBJQAAAAAAAgEtAAAAAAAAAVEAAAAAAAMBQQAAAAAAAAFFAAAAAAADATUAAAAAAAMBOQAAAAAAAAEpAAAAAAACATEAAAAAAAABXQAAAAAAAAPh/AAAAAAAAVkAAAAAAAIBQQAAAAAAAAPh/AAAAAAAATEAAAAAAAIBOQAAAAAAAwFJAAAAAAABASkAAAAAAAKBQQAAAAAAAYFVAAAAAAABAVEAAAAAAAIBCQAAAAAAAADtA\"},\"shape\":[102],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence correct reject\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAABAV0AAAAAAAKBRQAAAAAAAgFVAAAAAAADAUUAAAAAAAIBOQAAAAAAAAD9AAAAAAACAUEAAAAAAAEBQQAAAAAAAIFBAAAAAAABATkAAAAAAAEBSQAAAAAAAwFJAAAAAAADAU0AAAAAAAIBIQAAAAAAAQFVAAAAAAACAUUAAAAAAAEBGQAAAAAAAoFZAAAAAAABAVEAAAAAAAABZQAAAAAAAgFRAAAAAAAAAWUAAAAAAAMBQQAAAAAAAwFVAAAAAAAAAUUAAAAAAAIBFQAAAAAAAAFRAAAAAAAAAS0AAAAAAAABJQAAAAAAAAFRAAAAAAACAV0AAAAAAAMBTQAAAAAAAIFNAAAAAAABAVUAAAAAAAIBRQAAAAAAA4FBAAAAAAAAATEAAAAAAAIBIQAAAAAAAoFFAAAAAAACAUEAAAAAAAIBOQAAAAAAAAFBAAAAAAACgUkAAAAAAAABUQAAAAAAAgFBAAAAAAACAUEAAAAAAAAAzQAAAAAAAgERAAAAAAADAU0AAAAAAAEBQQAAAAAAAQFNAAAAAAAAAWUAAAAAAAEBTQAAAAAAAwEdAAAAAAAAgUEAAAAAAAEBUQAAAAAAAgFFAAAAAAAAgVEAAAAAAAEBRQAAAAAAAYFNAAAAAAACAUkAAAAAAAABMQAAAAAAAYFJAAAAAAAAAUUAAAAAAAMBXQAAAAAAAAFFAAAAAAAAASUAAAAAAAEBRQAAAAAAAgEtAAAAAAABgUkAAAAAAAIBSQAAAAAAAAFdAAAAAAACgU0AAAAAAAIBWQAAAAAAAQFFAAAAAAABATUAAAAAAAIBPQAAAAAAA4FFAAAAAAABATUAAAAAAAIBQQAAAAAAAgE9AAAAAAACgUkAAAAAAAABTQAAAAAAA4FRAAAAAAACAUUAAAAAAAIBVQAAAAAAAwFFAAAAAAADATUAAAAAAAMBWQAAAAAAAAFlAAAAAAACAVEAAAAAAAIBSQAAAAAAAoFJAAAAAAAAAUkAAAAAAAABUQAAAAAAAAFRAAAAAAADgUEAAAAAAAEBTQAAAAAAAwFVAAAAAAACAUUAAAAAAAABVQAAAAAAAAD9A\"},\"shape\":[102],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence incorrect reject\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAADgVEAAAAAAAABJQAAAAAAAQFRAAAAAAAAAVEAAAAAAAIBIQAAAAAAAIFJAAAAAAABAUEAAAAAAAGBUQAAAAAAAAPh/AAAAAABAUEAAAAAAAEBRQAAAAAAAAPh/AAAAAABATUAAAAAAAABRQAAAAAAAgFVAAAAAAAAA+H8AAAAAAEBSQAAAAAAAwEVAAAAAAAAATkAAAAAAAABZQAAAAAAA4FBAAAAAAAAAWUAAAAAAAABOQAAAAAAAQFNAAAAAAAAAS0AAAAAAAIBIQAAAAAAAwFJAAAAAAACASkAAAAAAAABJQAAAAAAAAPh/AAAAAACATkAAAAAAAAA1QAAAAAAAADtAAAAAAAAA+H8AAAAAAEBQQAAAAAAAQEpAAAAAAACASEAAAAAAAABCQAAAAAAAoFBAAAAAAABASUAAAAAAAABLQAAAAAAAgE1AAAAAAAAA+H8AAAAAAAD4fwAAAAAAADhAAAAAAADAT0AAAAAAAMBEQAAAAAAAgEZAAAAAAABARUAAAAAAAIBKQAAAAAAAAFRAAAAAAADAVkAAAAAAAABAQAAAAAAAoFNAAAAAAACARUAAAAAAAABCQAAAAAAAAD1AAAAAAAAAQkAAAAAAAABEQAAAAAAAQFFAAAAAAABAUkAAAAAAAABRQAAAAAAAgFFAAAAAAABAUEAAAAAAAEBQQAAAAAAAgE5AAAAAAAAAREAAAAAAAABOQAAAAAAAAEpAAAAAAADASkAAAAAAAAD4fwAAAAAAgE9AAAAAAACgUUAAAAAAAABEQAAAAAAAwFVAAAAAAAAA+H8AAAAAAEBRQAAAAAAAwFRAAAAAAABAUEAAAAAAAIBMQAAAAAAAQElAAAAAAADAVEAAAAAAAAAxQAAAAAAAwFRAAAAAAACAREAAAAAAAIBSQAAAAAAAAE1AAAAAAAAASUAAAAAAAEBWQAAAAAAAAElAAAAAAACAVEAAAAAAAIBMQAAAAAAAgFRAAAAAAACAT0AAAAAAAIBMQAAAAAAAAFRAAAAAAABgUEAAAAAAAGBTQAAAAAAAAFRAAAAAAACATkAAAAAAAABKQAAAAAAAoFRA\"},\"shape\":[102],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence when correct\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAABAV0AAAAAAAMBSQAAAAAAAQFZAAAAAAAAAVkAAAAAAAEBQQAAAAAAAIFBAAAAAAACAUEAAAAAAAABPQAAAAAAAAFFAAAAAAADAUUAAAAAAAIBUQAAAAAAAAFNAAAAAAADgU0AAAAAAAIBLQAAAAAAAQFVAAAAAAACAUUAAAAAAAEBLQAAAAAAAIFZAAAAAAADgVUAAAAAAAABZQAAAAAAAQFNAAAAAAAAAWUAAAAAAAABUQAAAAAAAYFFAAAAAAABAVEAAAAAAAIBJQAAAAAAAoFNAAAAAAACATEAAAAAAAABOQAAAAAAAAFRAAAAAAADAWEAAAAAAAIBTQAAAAAAAoFNAAAAAAACAVkAAAAAAAIBRQAAAAAAAgFJAAAAAAACAR0AAAAAAAABKQAAAAAAAAFVAAAAAAACAT0AAAAAAAABPQAAAAAAAwE1AAAAAAADgUkAAAAAAAIBTQAAAAAAAgE9AAAAAAABAVEAAAAAAAAA4QAAAAAAAAElAAAAAAABAVEAAAAAAAMBQQAAAAAAAQFNAAAAAAAAAWUAAAAAAAABRQAAAAAAAAEhAAAAAAACAUkAAAAAAAIBUQAAAAAAAwFBAAAAAAACgVEAAAAAAAMBQQAAAAAAAAFZAAAAAAADAVEAAAAAAAMBPQAAAAAAAIFRAAAAAAADAUUAAAAAAAMBXQAAAAAAAoFNAAAAAAABASkAAAAAAAEBRQAAAAAAAgE5AAAAAAACAUEAAAAAAAIBSQAAAAAAAAFdAAAAAAAAAVEAAAAAAAABXQAAAAAAAwFRAAAAAAABATkAAAAAAACBSQAAAAAAAYFhAAAAAAAAAUUAAAAAAAMBQQAAAAAAAQFBAAAAAAACAVEAAAAAAAMBSQAAAAAAAgFdAAAAAAABAU0AAAAAAAABXQAAAAAAAQFRAAAAAAAAATUAAAAAAAOBWQAAAAAAAAFlAAAAAAABAVUAAAAAAAIBSQAAAAAAA4FNAAAAAAACgUUAAAAAAAABSQAAAAAAAQFVAAAAAAAAAUEAAAAAAAEBTQAAAAAAAgFJAAAAAAABAUEAAAAAAAEBUQAAAAAAAQFRA\"},\"shape\":[102],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence when incorrect\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAACAVkAAAAAAAABJQAAAAAAAAFZAAAAAAAAAVEAAAAAAAIBIQAAAAAAAoFFAAAAAAAAAUEAAAAAAAIBOQAAAAAAAIFNAAAAAAABAUEAAAAAAAABQQAAAAAAA4FJAAAAAAACAT0AAAAAAAIBNQAAAAAAA4FRAAAAAAAAATEAAAAAAAEBSQAAAAAAAAFBAAAAAAAAATkAAAAAAAABZQAAAAAAAoFFAAAAAAAAAWUAAAAAAAABOQAAAAAAAYFJAAAAAAAAAS0AAAAAAAIBIQAAAAAAAwFBAAAAAAABAS0AAAAAAAABJQAAAAAAAwFRAAAAAAABAUEAAAAAAAABCQAAAAAAA4FBAAAAAAAAA+H8AAAAAAIBRQAAAAAAAwEtAAAAAAAAARkAAAAAAAAA9QAAAAAAAQEtAAAAAAAAASUAAAAAAAABLQAAAAAAAgExAAAAAAADAQUAAAAAAAMBQQAAAAAAAgDhAAAAAAADAT0AAAAAAAIBBQAAAAAAAgEZAAAAAAAAAS0AAAAAAAIBKQAAAAAAAAFVAAAAAAADAVkAAAAAAAAA/QAAAAAAAgElAAAAAAACARUAAAAAAAIBIQAAAAAAAAD1AAAAAAAAAU0AAAAAAAABEQAAAAAAAwFNAAAAAAADAS0AAAAAAAABRQAAAAAAAQFBAAAAAAAAAUUAAAAAAAEBQQAAAAAAAAE1AAAAAAACAQUAAAAAAAMBNQAAAAAAAAElAAAAAAADAR0AAAAAAAAD4fwAAAAAAYFJAAAAAAACAUUAAAAAAAABEQAAAAAAAwFBAAAAAAAAA+H8AAAAAAMBOQAAAAAAAwFRAAAAAAAAAREAAAAAAAIBKQAAAAAAAgEtAAAAAAABAVEAAAAAAAABQQAAAAAAAwFFAAAAAAACATUAAAAAAAMBQQAAAAAAAAE1AAAAAAAAASUAAAAAAAMBWQAAAAAAAAElAAAAAAABAVUAAAAAAAABQQAAAAAAAgFRAAAAAAADATUAAAAAAAABOQAAAAAAAwFJAAAAAAADATUAAAAAAAIBSQAAAAAAAAFRAAAAAAABAVEAAAAAAAIBJQAAAAAAAQFJA\"},\"shape\":[102],\"dtype\":\"float64\",\"order\":\"little\"}],[\"sci\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CQAAAAQAAAAKAAAADQAAAA0AAAAPAAAAEAAAAA4AAAAOAAAADgAAAA4AAAAPAAAACgAAAA4AAAAFAAAAAAAAABAAAAALAAAADgAAAAwAAAAOAAAADgAAABAAAAABAAAADgAAAB0AAAATAAAAFwAAABoAAAAVAAAAEwAAABwAAAAdAAAAEQAAABYAAAAcAAAAHwAAAB8AAAAgAAAAGQAAAB4AAAAcAAAAHgAAABYAAAAUAAAAGgAAACAAAAAgAAAAGAAAABoAAAAeAAAAHAAAABUAAAAdAAAAIAAAABoAAAAaAAAAFwAAABIAAAAWAAAAHQAAABQAAAAbAAAAEwAAAB0AAAAYAAAAHQAAABEAAAAaAAAAHgAAABEAAAAZAAAAHwAAABsAAAAgAAAAHAAAABkAAAAeAAAAFQAAAB0AAAAUAAAAFgAAABcAAAAUAAAAEQAAABsAAAAbAAAAFgAAABkAAAAeAAAAIAAAAB4AAAAgAAAAHAAAAB8AAAAdAAAAGgAAABQAAAATAAAAHwAAABYAAAAYAAAA\"},\"shape\":[102],\"dtype\":\"int32\",\"order\":\"little\"}],[\"psqi\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DQAAAAsAAAAJAAAACAAAAAkAAAAOAAAACQAAAAkAAAAMAAAACAAAAAUAAAAHAAAADAAAAA0AAAANAAAACwAAAAQAAAAKAAAABgAAAAcAAAAIAAAACQAAAAcAAAAPAAAABwAAAAEAAAAFAAAAAQAAAAUAAAAHAAAABwAAAAMAAAADAAAACgAAAAQAAAAFAAAAAgAAAAIAAAACAAAABQAAAAIAAAADAAAAAwAAAAQAAAAJAAAABQAAAAIAAAABAAAABAAAAAgAAAACAAAAAgAAAAYAAAADAAAAAQAAAAUAAAAHAAAAAwAAAAYAAAAGAAAAAQAAAAYAAAAEAAAABAAAAAMAAAAFAAAAAgAAAAcAAAAEAAAAAAAAAAUAAAABAAAAAQAAAAQAAAABAAAACAAAAAQAAAACAAAABwAAAAQAAAABAAAABwAAAAQAAAAFAAAABgAAAAQAAAACAAAAAwAAAAQAAAADAAAAAQAAAAUAAAACAAAAAQAAAAEAAAADAAAABgAAAAgAAAAIAAAAAgAAAAQAAAAFAAAA\"},\"shape\":[102],\"dtype\":\"int32\",\"order\":\"little\"}],[\"ess\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AgAAAAcAAAADAAAAFAAAAAwAAAACAAAAAwAAAAkAAAAKAAAABwAAABMAAAAAAAAACAAAAAQAAAAHAAAADgAAAAwAAAAKAAAACwAAAAwAAAABAAAABgAAAAQAAAAGAAAAAgAAAAUAAAABAAAAAwAAAAQAAAAFAAAADAAAAAQAAAAEAAAACwAAAAYAAAADAAAACwAAAAoAAAAMAAAABgAAAA0AAAAMAAAABQAAAAoAAAAEAAAABAAAAAYAAAADAAAAAAAAAAwAAAAGAAAABQAAAAkAAAAHAAAABgAAAAoAAAASAAAACwAAAAgAAAAQAAAABwAAAAkAAAALAAAABAAAAAcAAAAEAAAACwAAAAwAAAADAAAAAwAAAAQAAAALAAAAAQAAAAQAAAACAAAACQAAAAEAAAACAAAADAAAAAYAAAAFAAAABQAAAAQAAAAJAAAAAwAAAAgAAAAGAAAACgAAABUAAAAFAAAABQAAAAkAAAABAAAACAAAAAsAAAAFAAAABwAAAAoAAAAHAAAADwAAAAcAAAAHAAAA\"},\"shape\":[102],\"dtype\":\"int32\",\"order\":\"little\"}],[\"insomnia\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},\"shape\":[102],\"dtype\":\"bool\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1045\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1046\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1041\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"confidence when correct\"},\"y\":{\"type\":\"field\",\"field\":\"confidence when incorrect\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1042\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"confidence when correct\"},\"y\":{\"type\":\"field\",\"field\":\"confidence when incorrect\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1043\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"confidence when correct\"},\"y\":{\"type\":\"field\",\"field\":\"confidence when incorrect\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1009\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1022\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1023\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1024\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1025\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p1031\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p1030\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p1032\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1033\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1034\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1017\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1018\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1019\"},\"axis_label\":\"condifence when incorrect\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1020\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1012\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1013\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1014\"},\"axis_label\":\"confidence when correct\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1015\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1016\",\"attributes\":{\"axis\":{\"id\":\"p1012\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1021\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1017\"}}}],\"frame_width\":400,\"frame_height\":300}}]}};\n", " const render_items = [{\"docid\":\"1085016e-685a-40c9-960f-c0e2a3c68b07\",\"roots\":{\"p1001\":\"f04f91c8-5e37-4c9b-a5ea-10609fc66c0f\"},\"root_ids\":[\"p1001\"]}];\n", " void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " let attempts = 0;\n", " const timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p1001" } }, "output_type": "display_data" } ], "source": [ "#| echo: false\n", "\n", "# Create the figure, stored in variable `p`\n", "p = bokeh.plotting.figure(\n", " frame_width=400,\n", " frame_height=300,\n", " x_axis_label='confidence when correct',\n", " y_axis_label='condifence when incorrect'\n", ")\n", "\n", "p.scatter(\n", " source=df.to_dict(),\n", " x='confidence when correct',\n", " y='confidence when incorrect'\n", ")\n", "\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1. Our first step is creating a figure, our \"canvas.\" In creating the figure, we are implicitly thinking about what kind of representation for our data we want. That is, we have to specify axes and their labels. We might also want to specify the title of the figure, whether or not to have grid lines, and all sorts of other customizations. Naturally, we also want to specify the shape of the figure.\n", "\n", "(Almost) all of this is accomplished in Bokeh by making a call to `bokeh.plotting.figure()` with the appropriate keyword arguments." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# Create the figure, stored in variable `p`\n", "p = bokeh.plotting.figure(\n", " frame_width=400,\n", " frame_height=300,\n", " x_axis_label='confidence when correct',\n", " y_axis_label='condifence when incorrect'\n", ")" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "There are many more keyword attributes you can assign, including [all of those listed in the Bokeh Plot class](https://bokeh.pydata.org/en/latest/docs/reference/models/plots.html#bokeh.models.plots.Plot) and [the additional ones listed in the Bokeh Figure class](https://bokeh.pydata.org/en/latest/docs/reference/plotting.html#bokeh.plotting.figure.Figure).\n", "\n", "2. Now that we have set up our canvas, we can decide on the data source. We will use the data frame, `df` as our data source.\n", "\n", "3. We will choose dots (or circles) as our glyph. This kind of glyph requires that we specify which column of the data source will serve to place the glyphs along the $x$-axis and which will serve to place the glyphs along the $y$-axis.\n", "\n", "4. We choose the `'confidence when correct'` column to specify the $x$-coordinate of the glyph and the `'confidence when incorrect'` column to specify the $y$-coordinate. We already made this decision when we set up our axis labels, but we did not necessarily have to make that decision at that point.\n", "\n", "Steps 3 and 4 are accomplished by calling one of the **glyph methods** of the Bokeh `Figure` instance, `p`. Since we are choosing dots, the appropriate method is `p.scatter()`, and we use the `source`, `x`, and `y` kwargs to specify the positions of the glyphs." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "p.scatter(\n", " source=df.to_dict(),\n", " x='confidence when correct',\n", " y='confidence when incorrect'\n", ");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that the source must be a `ColumnDataSource`, a special Bokeh class. If we pass in a dictionary (or Polars data frame) for the source keyword argument, Bokeh converts it to a `ColumnDataSource`. Therefore, we use the `to_dict()` method to convert the Polars data frame to a dictionary.\n", "\n", "Now that we have built the plot, we can render it in the notebook using `bokeh.io.show()`." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " const docs_json = {\"7188f9cc-d4e4-41b2-8c67-fe92bc9a3dc9\":{\"version\":\"3.6.2\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1062\",\"attributes\":{\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1063\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1064\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1071\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1072\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1069\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1105\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1096\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1097\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1098\"},\"data\":{\"type\":\"map\",\"entries\":[[\"participant number\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CAAAABAAAAASAAAAFgAAABsAAAAcAAAAHgAAACEAAAAiAAAAIwAAACYAAAApAAAALgAAADEAAAA3AAAARwAAAEwAAABNAAAATgAAAFAAAABZAAAAWgAAAF0AAABkAAAAZQAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEQAAABMAAAAUAAAAFQAAABcAAAAYAAAAGQAAABoAAAAdAAAAHwAAACAAAAAkAAAAJQAAACcAAAAoAAAAKgAAACsAAAAsAAAALQAAADAAAAAyAAAAMwAAADQAAAA1AAAANgAAADgAAAA5AAAAOgAAADsAAAA8AAAAPQAAAD4AAAA/AAAAQAAAAEEAAABCAAAAQwAAAEQAAABFAAAARgAAAEgAAABJAAAASgAAAEsAAABPAAAAUQAAAFIAAABTAAAAVAAAAFUAAABWAAAAVwAAAFgAAABbAAAAXAAAAF4AAABfAAAAYAAAAGEAAABiAAAAYwAAAGYAAABnAAAA\"},\"shape\":[102],\"dtype\":\"int32\",\"order\":\"little\"}],[\"gender\",{\"type\":\"ndarray\",\"array\":[\"f\",\"m\",\"f\",\"f\",\"f\",\"f\",\"m\",\"m\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"m\",\"m\",\"f\",\"m\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"m\",\"f\",\"f\",\"m\",\"m\",\"m\",\"f\",\"m\",\"f\",\"f\",\"m\",\"m\",\"f\",\"f\",\"m\",\"f\",\"m\",\"f\",\"m\",\"f\",\"f\",\"m\",\"m\",\"f\",\"f\",\"f\",\"f\",\"m\",\"f\",\"f\",\"f\",\"f\",\"m\",\"f\",\"f\",\"f\",\"m\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"m\",\"f\",\"f\",\"m\",\"f\",\"f\",\"f\",\"f\",\"f\",\"m\",\"m\",\"m\",\"m\",\"f\",\"m\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\"],\"shape\":[102],\"dtype\":\"object\",\"order\":\"little\"}],[\"age\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"JwAAACoAAAAfAAAAIwAAAEoAAAA9AAAAIAAAAD4AAAAhAAAANQAAACkAAAAkAAAAKAAAABgAAAAgAAAAKAAAAD0AAAAqAAAAHwAAABwAAAAaAAAALQAAABwAAAAsAAAAHAAAACoAAAAtAAAAEAAAABUAAAASAAAAHAAAACYAAAARAAAAGQAAABYAAAApAAAANQAAACsAAAAXAAAAEwAAAC0AAAArAAAAIwAAABgAAABAAAAAJAAAACMAAAArAAAALAAAAB0AAAAWAAAALgAAACMAAAA1AAAAHQAAAB8AAAAVAAAAKgAAABcAAAA2AAAAGAAAABUAAAAVAAAAKwAAADIAAAA1AAAAEAAAAEMAAAAkAAAAIgAAACoAAAAuAAAARQAAAB8AAAAsAAAAGQAAAC0AAAAvAAAAIQAAABIAAABKAAAAFQAAAC0AAAAlAAAAKQAAACkAAAAiAAAAJwAAABIAAAAfAAAAGgAAAEIAAAA+AAAAFgAAACkAAAAuAAAAOAAAABcAAABGAAAAGAAAACgAAAAhAAAA\"},\"shape\":[102],\"dtype\":\"int32\",\"order\":\"little\"}],[\"correct hit percentage\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QQAAAFoAAABaAAAAZAAAADwAAABQAAAAWgAAAC0AAABQAAAAZAAAAEYAAABaAAAAXwAAAFUAAABLAAAAKAAAAGQAAABGAAAAZAAAAGQAAAA8AAAAZAAAAGQAAABBAAAAZAAAAFAAAABQAAAARgAAAEYAAABaAAAAXwAAAFoAAABaAAAAZAAAAFAAAABaAAAAXwAAAF8AAABaAAAANwAAAGQAAABBAAAAWgAAADcAAABLAAAAZAAAAEYAAABaAAAAXwAAAF8AAABGAAAAUAAAADIAAABBAAAAZAAAAFUAAABVAAAAWgAAAFoAAABaAAAAVQAAAFUAAABaAAAAXwAAAEYAAABfAAAAVQAAAF8AAABaAAAAWgAAAGQAAABQAAAAXwAAAGQAAABaAAAAZAAAAEYAAABaAAAAVQAAAFAAAABVAAAAKAAAAFAAAABaAAAAWgAAAFAAAABaAAAASwAAAFUAAABkAAAAXwAAADwAAABkAAAAVQAAACMAAABfAAAARgAAAEYAAABaAAAARgAAAEsAAABVAAAA\"},\"shape\":[102],\"dtype\":\"int32\",\"order\":\"little\"}],[\"correct reject percentage\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UAAAAFoAAABfAAAASwAAAEEAAAAUAAAASwAAAFoAAABkAAAAMgAAADcAAABkAAAAQQAAAEsAAAA3AAAAZAAAACgAAABaAAAARgAAADIAAABQAAAAXwAAAEsAAAAZAAAAKAAAAEEAAABaAAAAUAAAAEEAAABkAAAAUAAAAF8AAABaAAAAZAAAADwAAABQAAAAPAAAAFoAAABQAAAAPAAAAFUAAABBAAAAZAAAAGQAAABVAAAAUAAAAFoAAABVAAAAWgAAADcAAABBAAAASwAAAF8AAABQAAAARgAAAFoAAABaAAAAWgAAAFUAAABGAAAAXwAAAEsAAABQAAAASwAAAFUAAABLAAAAVQAAAEsAAABBAAAAWgAAAGQAAABaAAAAUAAAAF8AAABfAAAAZAAAADIAAABkAAAARgAAAEsAAABQAAAAKAAAAF8AAABQAAAAVQAAAEsAAAAjAAAARgAAAFUAAABVAAAASwAAAFUAAABQAAAAXwAAAEsAAABQAAAAMgAAAFUAAABVAAAAUAAAAEEAAAAoAAAA\"},\"shape\":[102],\"dtype\":\"int32\",\"order\":\"little\"}],[\"percent correct\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAgUkAAAAAAAIBWQAAAAAAAIFdAAAAAAADgVUAAAAAAAEBPQAAAAAAAAElAAAAAAACgVEAAAAAAAOBQQAAAAAAAgFZAAAAAAADAUkAAAAAAAEBPQAAAAAAAwFdAAAAAAAAAVEAAAAAAAABUQAAAAAAAQFBAAAAAAACAUUAAAAAAAIBRQAAAAAAAAFRAAAAAAABAVUAAAAAAAMBSQAAAAAAAgFFAAAAAAABgWEAAAAAAAOBVQAAAAAAAgEZAAAAAAACAUUAAAAAAACBSQAAAAAAAQFVAAAAAAADAUkAAAAAAAOBQQAAAAAAAwFdAAAAAAADgVUAAAAAAACBXQAAAAAAAgFZAAAAAAAAAWUAAAAAAAIBRQAAAAAAAQFVAAAAAAABgU0AAAAAAACBXQAAAAAAAQFVAAAAAAADATEAAAAAAACBXQAAAAAAAQFBAAAAAAADAV0AAAAAAAGBTQAAAAAAAAFRAAAAAAACAVkAAAAAAAABUQAAAAAAA4FVAAAAAAAAgV0AAAAAAAMBSQAAAAAAA4FBAAAAAAABgU0AAAAAAACBSQAAAAAAAIFJAAAAAAABAVUAAAAAAAOBVQAAAAAAA4FVAAAAAAACAVkAAAAAAAOBVQAAAAAAAAFRAAAAAAACAVkAAAAAAAABUQAAAAAAAQFVAAAAAAABAVUAAAAAAAGBTQAAAAAAAQFVAAAAAAABAVUAAAAAAAEBVQAAAAAAAYFNAAAAAAACAVkAAAAAAAABZQAAAAAAAQFVAAAAAAADgVUAAAAAAAGBYQAAAAAAAIFdAAAAAAAAAWUAAAAAAAABOQAAAAAAAwFdAAAAAAABgU0AAAAAAAGBTQAAAAAAAoFRAAAAAAAAAREAAAAAAAOBVQAAAAAAAQFVAAAAAAADgVUAAAAAAAGBTQAAAAAAAQE9AAAAAAAAgUkAAAAAAAEBVQAAAAAAAIFdAAAAAAABAVUAAAAAAACBSQAAAAAAAgFZAAAAAAACAVkAAAAAAAIBLQAAAAAAA4FVAAAAAAAAATkAAAAAAAGBTQAAAAAAA4FVAAAAAAADAUkAAAAAAAIBRQAAAAAAAQE9A\"},\"shape\":[102],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence when correct hit\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAADAVkAAAAAAAOBSQAAAAAAAYFZAAAAAAABgVkAAAAAAACBRQAAAAAAAwFFAAAAAAADAUEAAAAAAAABLQAAAAAAAoFFAAAAAAACgUkAAAAAAAIBUQAAAAAAAIFNAAAAAAAAAVEAAAAAAAABNQAAAAAAAQFVAAAAAAABAUUAAAAAAAGBRQAAAAAAAwFVAAAAAAAAAV0AAAAAAAABZQAAAAAAAgFFAAAAAAAAAWUAAAAAAAGBWQAAAAAAAAE9AAAAAAADAVUAAAAAAAMBJQAAAAAAAwFJAAAAAAACAUUAAAAAAAMBPQAAAAAAAIFNAAAAAAAAAWUAAAAAAAEBTQAAAAAAAIFRAAAAAAACAVkAAAAAAAIBRQAAAAAAAIFNAAAAAAAAAREAAAAAAAABKQAAAAAAAAFZAAAAAAAAAT0AAAAAAAABRQAAAAAAAgE1AAAAAAADgUkAAAAAAAABRQAAAAAAAAElAAAAAAAAAVkAAAAAAAIA9QAAAAAAAYFBAAAAAAADAVEAAAAAAAMBQQAAAAAAAgFNAAAAAAAAgUkAAAAAAAEBPQAAAAAAAAEtAAAAAAADAUkAAAAAAAIBUQAAAAAAAgFBAAAAAAADAVEAAAAAAAMBQQAAAAAAAgFZAAAAAAABAWEAAAAAAAEBQQAAAAAAAAFVAAAAAAACAUkAAAAAAACBXQAAAAAAAAFVAAAAAAACAS0AAAAAAAIBRQAAAAAAA4FBAAAAAAABATUAAAAAAAKBSQAAAAAAAAFdAAAAAAAAAVEAAAAAAAIBYQAAAAAAAwFVAAAAAAADATkAAAAAAACBUQAAAAAAAAFlAAAAAAACAUUAAAAAAAOBQQAAAAAAAgFBAAAAAAACgVkAAAAAAAIBSQAAAAAAA4FdAAAAAAAAAVEAAAAAAAKBXQAAAAAAAQFRAAAAAAACATEAAAAAAAEBXQAAAAAAAAFlAAAAAAABAVUAAAAAAAOBQQAAAAAAAQFRAAAAAAACAUEAAAAAAAIBLQAAAAAAAgFZAAAAAAACAT0AAAAAAAEBTQAAAAAAAYFBAAAAAAADATkAAAAAAAIBKQAAAAAAAAFRA\"},\"shape\":[102],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence incorrect hit\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAACAVkAAAAAAAMBLQAAAAAAAgFZAAAAAAAAA+H8AAAAAAIBIQAAAAAAAgE9AAAAAAABATEAAAAAAAIBCQAAAAAAAIFNAAAAAAAAA+H8AAAAAAMBOQAAAAAAA4FJAAAAAAABAVkAAAAAAAABJQAAAAAAAQFRAAAAAAAAATEAAAAAAAAD4fwAAAAAAAFJAAAAAAAAA+H8AAAAAAAD4fwAAAAAAQFNAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAFJAAAAAAAAA+H8AAAAAAEBGQAAAAAAAwEtAAAAAAACATEAAAAAAAABQQAAAAAAAwFRAAAAAAABAVUAAAAAAAMBFQAAAAAAA4FVAAAAAAAAA+H8AAAAAAIBRQAAAAAAAwEtAAAAAAACAQEAAAAAAAAA9QAAAAAAAAERAAAAAAAAASUAAAAAAAAD4fwAAAAAAgEtAAAAAAADAQUAAAAAAAMBQQAAAAAAAADlAAAAAAAAA+H8AAAAAAIA8QAAAAAAAADtAAAAAAAAATEAAAAAAAIBKQAAAAAAAAFZAAAAAAAAAUkAAAAAAAAA9QAAAAAAAAEBAAAAAAAAA+H8AAAAAAIBIQAAAAAAAAD1AAAAAAADAVEAAAAAAAIBHQAAAAAAA4FRAAAAAAACAREAAAAAAAEBSQAAAAAAAwEtAAAAAAABAVkAAAAAAACBSQAAAAAAAgEtAAAAAAAAAPkAAAAAAAAAcQAAAAAAAgDxAAAAAAACARUAAAAAAAAD4fwAAAAAA4FJAAAAAAABAUEAAAAAAAAD4fwAAAAAAwEdAAAAAAAAA+H8AAAAAAMBJQAAAAAAAAPh/AAAAAAAAQ0AAAAAAAMBJQAAAAAAAgEtAAAAAAAAAVEAAAAAAAMBQQAAAAAAAAFFAAAAAAADATUAAAAAAAMBOQAAAAAAAAEpAAAAAAACATEAAAAAAAABXQAAAAAAAAPh/AAAAAAAAVkAAAAAAAIBQQAAAAAAAAPh/AAAAAAAATEAAAAAAAIBOQAAAAAAAwFJAAAAAAABASkAAAAAAAKBQQAAAAAAAYFVAAAAAAABAVEAAAAAAAIBCQAAAAAAAADtA\"},\"shape\":[102],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence correct reject\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAABAV0AAAAAAAKBRQAAAAAAAgFVAAAAAAADAUUAAAAAAAIBOQAAAAAAAAD9AAAAAAACAUEAAAAAAAEBQQAAAAAAAIFBAAAAAAABATkAAAAAAAEBSQAAAAAAAwFJAAAAAAADAU0AAAAAAAIBIQAAAAAAAQFVAAAAAAACAUUAAAAAAAEBGQAAAAAAAoFZAAAAAAABAVEAAAAAAAABZQAAAAAAAgFRAAAAAAAAAWUAAAAAAAMBQQAAAAAAAwFVAAAAAAAAAUUAAAAAAAIBFQAAAAAAAAFRAAAAAAAAAS0AAAAAAAABJQAAAAAAAAFRAAAAAAACAV0AAAAAAAMBTQAAAAAAAIFNAAAAAAABAVUAAAAAAAIBRQAAAAAAA4FBAAAAAAAAATEAAAAAAAIBIQAAAAAAAoFFAAAAAAACAUEAAAAAAAIBOQAAAAAAAAFBAAAAAAACgUkAAAAAAAABUQAAAAAAAgFBAAAAAAACAUEAAAAAAAAAzQAAAAAAAgERAAAAAAADAU0AAAAAAAEBQQAAAAAAAQFNAAAAAAAAAWUAAAAAAAEBTQAAAAAAAwEdAAAAAAAAgUEAAAAAAAEBUQAAAAAAAgFFAAAAAAAAgVEAAAAAAAEBRQAAAAAAAYFNAAAAAAACAUkAAAAAAAABMQAAAAAAAYFJAAAAAAAAAUUAAAAAAAMBXQAAAAAAAAFFAAAAAAAAASUAAAAAAAEBRQAAAAAAAgEtAAAAAAABgUkAAAAAAAIBSQAAAAAAAAFdAAAAAAACgU0AAAAAAAIBWQAAAAAAAQFFAAAAAAABATUAAAAAAAIBPQAAAAAAA4FFAAAAAAABATUAAAAAAAIBQQAAAAAAAgE9AAAAAAACgUkAAAAAAAABTQAAAAAAA4FRAAAAAAACAUUAAAAAAAIBVQAAAAAAAwFFAAAAAAADATUAAAAAAAMBWQAAAAAAAAFlAAAAAAACAVEAAAAAAAIBSQAAAAAAAoFJAAAAAAAAAUkAAAAAAAABUQAAAAAAAAFRAAAAAAADgUEAAAAAAAEBTQAAAAAAAwFVAAAAAAACAUUAAAAAAAABVQAAAAAAAAD9A\"},\"shape\":[102],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence incorrect reject\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAADgVEAAAAAAAABJQAAAAAAAQFRAAAAAAAAAVEAAAAAAAIBIQAAAAAAAIFJAAAAAAABAUEAAAAAAAGBUQAAAAAAAAPh/AAAAAABAUEAAAAAAAEBRQAAAAAAAAPh/AAAAAABATUAAAAAAAABRQAAAAAAAgFVAAAAAAAAA+H8AAAAAAEBSQAAAAAAAwEVAAAAAAAAATkAAAAAAAABZQAAAAAAA4FBAAAAAAAAAWUAAAAAAAABOQAAAAAAAQFNAAAAAAAAAS0AAAAAAAIBIQAAAAAAAwFJAAAAAAACASkAAAAAAAABJQAAAAAAAAPh/AAAAAACATkAAAAAAAAA1QAAAAAAAADtAAAAAAAAA+H8AAAAAAEBQQAAAAAAAQEpAAAAAAACASEAAAAAAAABCQAAAAAAAoFBAAAAAAABASUAAAAAAAABLQAAAAAAAgE1AAAAAAAAA+H8AAAAAAAD4fwAAAAAAADhAAAAAAADAT0AAAAAAAMBEQAAAAAAAgEZAAAAAAABARUAAAAAAAIBKQAAAAAAAAFRAAAAAAADAVkAAAAAAAABAQAAAAAAAoFNAAAAAAACARUAAAAAAAABCQAAAAAAAAD1AAAAAAAAAQkAAAAAAAABEQAAAAAAAQFFAAAAAAABAUkAAAAAAAABRQAAAAAAAgFFAAAAAAABAUEAAAAAAAEBQQAAAAAAAgE5AAAAAAAAAREAAAAAAAABOQAAAAAAAAEpAAAAAAADASkAAAAAAAAD4fwAAAAAAgE9AAAAAAACgUUAAAAAAAABEQAAAAAAAwFVAAAAAAAAA+H8AAAAAAEBRQAAAAAAAwFRAAAAAAABAUEAAAAAAAIBMQAAAAAAAQElAAAAAAADAVEAAAAAAAAAxQAAAAAAAwFRAAAAAAACAREAAAAAAAIBSQAAAAAAAAE1AAAAAAAAASUAAAAAAAEBWQAAAAAAAAElAAAAAAACAVEAAAAAAAIBMQAAAAAAAgFRAAAAAAACAT0AAAAAAAIBMQAAAAAAAAFRAAAAAAABgUEAAAAAAAGBTQAAAAAAAAFRAAAAAAACATkAAAAAAAABKQAAAAAAAoFRA\"},\"shape\":[102],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence when correct\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAABAV0AAAAAAAMBSQAAAAAAAQFZAAAAAAAAAVkAAAAAAAEBQQAAAAAAAIFBAAAAAAACAUEAAAAAAAABPQAAAAAAAAFFAAAAAAADAUUAAAAAAAIBUQAAAAAAAAFNAAAAAAADgU0AAAAAAAIBLQAAAAAAAQFVAAAAAAACAUUAAAAAAAEBLQAAAAAAAIFZAAAAAAADgVUAAAAAAAABZQAAAAAAAQFNAAAAAAAAAWUAAAAAAAABUQAAAAAAAYFFAAAAAAABAVEAAAAAAAIBJQAAAAAAAoFNAAAAAAACATEAAAAAAAABOQAAAAAAAAFRAAAAAAADAWEAAAAAAAIBTQAAAAAAAoFNAAAAAAACAVkAAAAAAAIBRQAAAAAAAgFJAAAAAAACAR0AAAAAAAABKQAAAAAAAAFVAAAAAAACAT0AAAAAAAABPQAAAAAAAwE1AAAAAAADgUkAAAAAAAIBTQAAAAAAAgE9AAAAAAABAVEAAAAAAAAA4QAAAAAAAAElAAAAAAABAVEAAAAAAAMBQQAAAAAAAQFNAAAAAAAAAWUAAAAAAAABRQAAAAAAAAEhAAAAAAACAUkAAAAAAAIBUQAAAAAAAwFBAAAAAAACgVEAAAAAAAMBQQAAAAAAAAFZAAAAAAADAVEAAAAAAAMBPQAAAAAAAIFRAAAAAAADAUUAAAAAAAMBXQAAAAAAAoFNAAAAAAABASkAAAAAAAEBRQAAAAAAAgE5AAAAAAACAUEAAAAAAAIBSQAAAAAAAAFdAAAAAAAAAVEAAAAAAAABXQAAAAAAAwFRAAAAAAABATkAAAAAAACBSQAAAAAAAYFhAAAAAAAAAUUAAAAAAAMBQQAAAAAAAQFBAAAAAAACAVEAAAAAAAMBSQAAAAAAAgFdAAAAAAABAU0AAAAAAAABXQAAAAAAAQFRAAAAAAAAATUAAAAAAAOBWQAAAAAAAAFlAAAAAAABAVUAAAAAAAIBSQAAAAAAA4FNAAAAAAACgUUAAAAAAAABSQAAAAAAAQFVAAAAAAAAAUEAAAAAAAEBTQAAAAAAAgFJAAAAAAABAUEAAAAAAAEBUQAAAAAAAQFRA\"},\"shape\":[102],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence when incorrect\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAACAVkAAAAAAAABJQAAAAAAAAFZAAAAAAAAAVEAAAAAAAIBIQAAAAAAAoFFAAAAAAAAAUEAAAAAAAIBOQAAAAAAAIFNAAAAAAABAUEAAAAAAAABQQAAAAAAA4FJAAAAAAACAT0AAAAAAAIBNQAAAAAAA4FRAAAAAAAAATEAAAAAAAEBSQAAAAAAAAFBAAAAAAAAATkAAAAAAAABZQAAAAAAAoFFAAAAAAAAAWUAAAAAAAABOQAAAAAAAYFJAAAAAAAAAS0AAAAAAAIBIQAAAAAAAwFBAAAAAAABAS0AAAAAAAABJQAAAAAAAwFRAAAAAAABAUEAAAAAAAABCQAAAAAAA4FBAAAAAAAAA+H8AAAAAAIBRQAAAAAAAwEtAAAAAAAAARkAAAAAAAAA9QAAAAAAAQEtAAAAAAAAASUAAAAAAAABLQAAAAAAAgExAAAAAAADAQUAAAAAAAMBQQAAAAAAAgDhAAAAAAADAT0AAAAAAAIBBQAAAAAAAgEZAAAAAAAAAS0AAAAAAAIBKQAAAAAAAAFVAAAAAAADAVkAAAAAAAAA/QAAAAAAAgElAAAAAAACARUAAAAAAAIBIQAAAAAAAAD1AAAAAAAAAU0AAAAAAAABEQAAAAAAAwFNAAAAAAADAS0AAAAAAAABRQAAAAAAAQFBAAAAAAAAAUUAAAAAAAEBQQAAAAAAAAE1AAAAAAACAQUAAAAAAAMBNQAAAAAAAAElAAAAAAADAR0AAAAAAAAD4fwAAAAAAYFJAAAAAAACAUUAAAAAAAABEQAAAAAAAwFBAAAAAAAAA+H8AAAAAAMBOQAAAAAAAwFRAAAAAAAAAREAAAAAAAIBKQAAAAAAAgEtAAAAAAABAVEAAAAAAAABQQAAAAAAAwFFAAAAAAACATUAAAAAAAMBQQAAAAAAAAE1AAAAAAAAASUAAAAAAAMBWQAAAAAAAAElAAAAAAABAVUAAAAAAAABQQAAAAAAAgFRAAAAAAADATUAAAAAAAABOQAAAAAAAwFJAAAAAAADATUAAAAAAAIBSQAAAAAAAAFRAAAAAAABAVEAAAAAAAIBJQAAAAAAAQFJA\"},\"shape\":[102],\"dtype\":\"float64\",\"order\":\"little\"}],[\"sci\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CQAAAAQAAAAKAAAADQAAAA0AAAAPAAAAEAAAAA4AAAAOAAAADgAAAA4AAAAPAAAACgAAAA4AAAAFAAAAAAAAABAAAAALAAAADgAAAAwAAAAOAAAADgAAABAAAAABAAAADgAAAB0AAAATAAAAFwAAABoAAAAVAAAAEwAAABwAAAAdAAAAEQAAABYAAAAcAAAAHwAAAB8AAAAgAAAAGQAAAB4AAAAcAAAAHgAAABYAAAAUAAAAGgAAACAAAAAgAAAAGAAAABoAAAAeAAAAHAAAABUAAAAdAAAAIAAAABoAAAAaAAAAFwAAABIAAAAWAAAAHQAAABQAAAAbAAAAEwAAAB0AAAAYAAAAHQAAABEAAAAaAAAAHgAAABEAAAAZAAAAHwAAABsAAAAgAAAAHAAAABkAAAAeAAAAFQAAAB0AAAAUAAAAFgAAABcAAAAUAAAAEQAAABsAAAAbAAAAFgAAABkAAAAeAAAAIAAAAB4AAAAgAAAAHAAAAB8AAAAdAAAAGgAAABQAAAATAAAAHwAAABYAAAAYAAAA\"},\"shape\":[102],\"dtype\":\"int32\",\"order\":\"little\"}],[\"psqi\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DQAAAAsAAAAJAAAACAAAAAkAAAAOAAAACQAAAAkAAAAMAAAACAAAAAUAAAAHAAAADAAAAA0AAAANAAAACwAAAAQAAAAKAAAABgAAAAcAAAAIAAAACQAAAAcAAAAPAAAABwAAAAEAAAAFAAAAAQAAAAUAAAAHAAAABwAAAAMAAAADAAAACgAAAAQAAAAFAAAAAgAAAAIAAAACAAAABQAAAAIAAAADAAAAAwAAAAQAAAAJAAAABQAAAAIAAAABAAAABAAAAAgAAAACAAAAAgAAAAYAAAADAAAAAQAAAAUAAAAHAAAAAwAAAAYAAAAGAAAAAQAAAAYAAAAEAAAABAAAAAMAAAAFAAAAAgAAAAcAAAAEAAAAAAAAAAUAAAABAAAAAQAAAAQAAAABAAAACAAAAAQAAAACAAAABwAAAAQAAAABAAAABwAAAAQAAAAFAAAABgAAAAQAAAACAAAAAwAAAAQAAAADAAAAAQAAAAUAAAACAAAAAQAAAAEAAAADAAAABgAAAAgAAAAIAAAAAgAAAAQAAAAFAAAA\"},\"shape\":[102],\"dtype\":\"int32\",\"order\":\"little\"}],[\"ess\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AgAAAAcAAAADAAAAFAAAAAwAAAACAAAAAwAAAAkAAAAKAAAABwAAABMAAAAAAAAACAAAAAQAAAAHAAAADgAAAAwAAAAKAAAACwAAAAwAAAABAAAABgAAAAQAAAAGAAAAAgAAAAUAAAABAAAAAwAAAAQAAAAFAAAADAAAAAQAAAAEAAAACwAAAAYAAAADAAAACwAAAAoAAAAMAAAABgAAAA0AAAAMAAAABQAAAAoAAAAEAAAABAAAAAYAAAADAAAAAAAAAAwAAAAGAAAABQAAAAkAAAAHAAAABgAAAAoAAAASAAAACwAAAAgAAAAQAAAABwAAAAkAAAALAAAABAAAAAcAAAAEAAAACwAAAAwAAAADAAAAAwAAAAQAAAALAAAAAQAAAAQAAAACAAAACQAAAAEAAAACAAAADAAAAAYAAAAFAAAABQAAAAQAAAAJAAAAAwAAAAgAAAAGAAAACgAAABUAAAAFAAAABQAAAAkAAAABAAAACAAAAAsAAAAFAAAABwAAAAoAAAAHAAAADwAAAAcAAAAHAAAA\"},\"shape\":[102],\"dtype\":\"int32\",\"order\":\"little\"}],[\"insomnia\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},\"shape\":[102],\"dtype\":\"bool\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1106\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1107\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1102\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"confidence when correct\"},\"y\":{\"type\":\"field\",\"field\":\"confidence when incorrect\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1103\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"confidence when correct\"},\"y\":{\"type\":\"field\",\"field\":\"confidence when incorrect\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1104\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"confidence when correct\"},\"y\":{\"type\":\"field\",\"field\":\"confidence when incorrect\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1070\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1083\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1084\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1085\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1086\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p1092\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p1091\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p1093\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1094\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1095\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1078\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1079\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1080\"},\"axis_label\":\"condifence when incorrect\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1081\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1073\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1074\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1075\"},\"axis_label\":\"confidence when correct\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1076\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1077\",\"attributes\":{\"axis\":{\"id\":\"p1073\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1082\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1078\"}}}],\"frame_width\":400,\"frame_height\":300}}]}};\n", " const render_items = [{\"docid\":\"7188f9cc-d4e4-41b2-8c67-fe92bc9a3dc9\",\"roots\":{\"p1062\":\"a8136f3c-c9fe-420f-8a0d-a03fe4373d36\"},\"root_ids\":[\"p1062\"]}];\n", " void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " let attempts = 0;\n", " const timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p1062" } }, "output_type": "display_data" } ], "source": [ "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In looking at the plot, notice a toolbar to right of the plot that enables you to zoom and pan within the plot." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The importance of tidy data frames\n", "\n", "It might be clear for you now that building a plot in this way requires that the data frame you use be tidy. The organization of tidy data is really what enables this and high level plotting functionality. There is a well-specified organization of the data." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Code style in plot specifications\n", "\n", "Specifications of plots often involves calls to functions with lots of keyword arguments to specify the plot, and this can get unwieldy without a clear style. You can develop your own style, maybe reading [Trey Hunner's blog post again](http://treyhunner.com/2017/07/craft-your-python-like-poetry/). I like to do the following.\n", "\n", "1. Put the function call, like `p.scatter(` or `p = bokeh.plotting.figure(` on the first line.\n", "2. The closed parenthesis for the function call is on its own line, unindented.\n", "3. Any arguments are given as kwargs (even if they can also be specified as positional arguments) at one level of indentation.\n", "\n", "Note that you *cannot* use method chaining when instantiating figures or populating glyphs.\n", "\n", "If you adhere to a style (which is roughly the style imposed by [Black](https://black.readthedocs.io/en/stable/)), it makes your code cleaner and easier to read." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Coloring with other dimensions\n", "\n", "Let's say we wanted to make the same plot, but with orange circles for insomniacs and blue circles for normal sleepers. To do this, we take advantage of two features of Bokeh.\n", "\n", "1. We can make multiple calls to `p.scatter()` to populate more and more glyphs.\n", "2. `p.scatter()`, like all of the glyph methods, has many keyword arguments, including `color` and `legend_label`, which will enable us to color the glyphs and include a legend.\n", "\n", "We can loop through the data frame grouped by `'insomnia'` and populate the glyphs as we go along." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " const docs_json = {\"681bc828-29fe-4e42-b082-78d0e2785659\":{\"version\":\"3.6.2\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1123\",\"attributes\":{\"width\":400,\"height\":300,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1124\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1125\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1132\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1133\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1130\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1166\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1157\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1158\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1159\"},\"data\":{\"type\":\"map\",\"entries\":[[\"participant number\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CAAAABAAAAASAAAAFgAAABsAAAAcAAAAHgAAACEAAAAiAAAAIwAAACYAAAApAAAALgAAADEAAAA3AAAARwAAAEwAAABNAAAATgAAAFAAAABZAAAAWgAAAF0AAABkAAAAZQAAAA==\"},\"shape\":[25],\"dtype\":\"int32\",\"order\":\"little\"}],[\"gender\",{\"type\":\"ndarray\",\"array\":[\"f\",\"m\",\"f\",\"f\",\"f\",\"f\",\"m\",\"m\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"m\",\"m\",\"f\",\"m\",\"f\",\"f\",\"f\"],\"shape\":[25],\"dtype\":\"object\",\"order\":\"little\"}],[\"age\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"JwAAACoAAAAfAAAAIwAAAEoAAAA9AAAAIAAAAD4AAAAhAAAANQAAACkAAAAkAAAAKAAAABgAAAAgAAAAKAAAAD0AAAAqAAAAHwAAABwAAAAaAAAALQAAABwAAAAsAAAAHAAAAA==\"},\"shape\":[25],\"dtype\":\"int32\",\"order\":\"little\"}],[\"correct hit percentage\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QQAAAFoAAABaAAAAZAAAADwAAABQAAAAWgAAAC0AAABQAAAAZAAAAEYAAABaAAAAXwAAAFUAAABLAAAAKAAAAGQAAABGAAAAZAAAAGQAAAA8AAAAZAAAAGQAAABBAAAAZAAAAA==\"},\"shape\":[25],\"dtype\":\"int32\",\"order\":\"little\"}],[\"correct reject percentage\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UAAAAFoAAABfAAAASwAAAEEAAAAUAAAASwAAAFoAAABkAAAAMgAAADcAAABkAAAAQQAAAEsAAAA3AAAAZAAAACgAAABaAAAARgAAADIAAABQAAAAXwAAAEsAAAAZAAAAKAAAAA==\"},\"shape\":[25],\"dtype\":\"int32\",\"order\":\"little\"}],[\"percent correct\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAgUkAAAAAAAIBWQAAAAAAAIFdAAAAAAADgVUAAAAAAAEBPQAAAAAAAAElAAAAAAACgVEAAAAAAAOBQQAAAAAAAgFZAAAAAAADAUkAAAAAAAEBPQAAAAAAAwFdAAAAAAAAAVEAAAAAAAABUQAAAAAAAQFBAAAAAAACAUUAAAAAAAIBRQAAAAAAAAFRAAAAAAABAVUAAAAAAAMBSQAAAAAAAgFFAAAAAAABgWEAAAAAAAOBVQAAAAAAAgEZAAAAAAACAUUA=\"},\"shape\":[25],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence when correct hit\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAADAVkAAAAAAAOBSQAAAAAAAYFZAAAAAAABgVkAAAAAAACBRQAAAAAAAwFFAAAAAAADAUEAAAAAAAABLQAAAAAAAoFFAAAAAAACgUkAAAAAAAIBUQAAAAAAAIFNAAAAAAAAAVEAAAAAAAABNQAAAAAAAQFVAAAAAAABAUUAAAAAAAGBRQAAAAAAAwFVAAAAAAAAAV0AAAAAAAABZQAAAAAAAgFFAAAAAAAAAWUAAAAAAAGBWQAAAAAAAAE9AAAAAAADAVUA=\"},\"shape\":[25],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence incorrect hit\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAACAVkAAAAAAAMBLQAAAAAAAgFZAAAAAAAAA+H8AAAAAAIBIQAAAAAAAgE9AAAAAAABATEAAAAAAAIBCQAAAAAAAIFNAAAAAAAAA+H8AAAAAAMBOQAAAAAAA4FJAAAAAAABAVkAAAAAAAABJQAAAAAAAQFRAAAAAAAAATEAAAAAAAAD4fwAAAAAAAFJAAAAAAAAA+H8AAAAAAAD4fwAAAAAAQFNAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAFJAAAAAAAAA+H8=\"},\"shape\":[25],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence correct reject\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAABAV0AAAAAAAKBRQAAAAAAAgFVAAAAAAADAUUAAAAAAAIBOQAAAAAAAAD9AAAAAAACAUEAAAAAAAEBQQAAAAAAAIFBAAAAAAABATkAAAAAAAEBSQAAAAAAAwFJAAAAAAADAU0AAAAAAAIBIQAAAAAAAQFVAAAAAAACAUUAAAAAAAEBGQAAAAAAAoFZAAAAAAABAVEAAAAAAAABZQAAAAAAAgFRAAAAAAAAAWUAAAAAAAMBQQAAAAAAAwFVAAAAAAAAAUUA=\"},\"shape\":[25],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence incorrect reject\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAADgVEAAAAAAAABJQAAAAAAAQFRAAAAAAAAAVEAAAAAAAIBIQAAAAAAAIFJAAAAAAABAUEAAAAAAAGBUQAAAAAAAAPh/AAAAAABAUEAAAAAAAEBRQAAAAAAAAPh/AAAAAABATUAAAAAAAABRQAAAAAAAgFVAAAAAAAAA+H8AAAAAAEBSQAAAAAAAwEVAAAAAAAAATkAAAAAAAABZQAAAAAAA4FBAAAAAAAAAWUAAAAAAAABOQAAAAAAAQFNAAAAAAAAAS0A=\"},\"shape\":[25],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence when correct\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAABAV0AAAAAAAMBSQAAAAAAAQFZAAAAAAAAAVkAAAAAAAEBQQAAAAAAAIFBAAAAAAACAUEAAAAAAAABPQAAAAAAAAFFAAAAAAADAUUAAAAAAAIBUQAAAAAAAAFNAAAAAAADgU0AAAAAAAIBLQAAAAAAAQFVAAAAAAACAUUAAAAAAAEBLQAAAAAAAIFZAAAAAAADgVUAAAAAAAABZQAAAAAAAQFNAAAAAAAAAWUAAAAAAAABUQAAAAAAAYFFAAAAAAABAVEA=\"},\"shape\":[25],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence when incorrect\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAACAVkAAAAAAAABJQAAAAAAAAFZAAAAAAAAAVEAAAAAAAIBIQAAAAAAAoFFAAAAAAAAAUEAAAAAAAIBOQAAAAAAAIFNAAAAAAABAUEAAAAAAAABQQAAAAAAA4FJAAAAAAACAT0AAAAAAAIBNQAAAAAAA4FRAAAAAAAAATEAAAAAAAEBSQAAAAAAAAFBAAAAAAAAATkAAAAAAAABZQAAAAAAAoFFAAAAAAAAAWUAAAAAAAABOQAAAAAAAYFJAAAAAAAAAS0A=\"},\"shape\":[25],\"dtype\":\"float64\",\"order\":\"little\"}],[\"sci\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CQAAAAQAAAAKAAAADQAAAA0AAAAPAAAAEAAAAA4AAAAOAAAADgAAAA4AAAAPAAAACgAAAA4AAAAFAAAAAAAAABAAAAALAAAADgAAAAwAAAAOAAAADgAAABAAAAABAAAADgAAAA==\"},\"shape\":[25],\"dtype\":\"int32\",\"order\":\"little\"}],[\"psqi\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DQAAAAsAAAAJAAAACAAAAAkAAAAOAAAACQAAAAkAAAAMAAAACAAAAAUAAAAHAAAADAAAAA0AAAANAAAACwAAAAQAAAAKAAAABgAAAAcAAAAIAAAACQAAAAcAAAAPAAAABwAAAA==\"},\"shape\":[25],\"dtype\":\"int32\",\"order\":\"little\"}],[\"ess\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AgAAAAcAAAADAAAAFAAAAAwAAAACAAAAAwAAAAkAAAAKAAAABwAAABMAAAAAAAAACAAAAAQAAAAHAAAADgAAAAwAAAAKAAAACwAAAAwAAAABAAAABgAAAAQAAAAGAAAAAgAAAA==\"},\"shape\":[25],\"dtype\":\"int32\",\"order\":\"little\"}],[\"insomnia\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ==\"},\"shape\":[25],\"dtype\":\"bool\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1167\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1168\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1163\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"confidence when correct\"},\"y\":{\"type\":\"field\",\"field\":\"confidence when incorrect\"},\"line_color\":{\"type\":\"value\",\"value\":\"orange\"},\"fill_color\":{\"type\":\"value\",\"value\":\"orange\"},\"hatch_color\":{\"type\":\"value\",\"value\":\"orange\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1164\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"confidence when correct\"},\"y\":{\"type\":\"field\",\"field\":\"confidence when incorrect\"},\"line_color\":{\"type\":\"value\",\"value\":\"orange\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"orange\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_color\":{\"type\":\"value\",\"value\":\"orange\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1165\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"confidence when correct\"},\"y\":{\"type\":\"field\",\"field\":\"confidence when incorrect\"},\"line_color\":{\"type\":\"value\",\"value\":\"orange\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"orange\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_color\":{\"type\":\"value\",\"value\":\"orange\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1180\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1171\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1172\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1173\"},\"data\":{\"type\":\"map\",\"entries\":[[\"participant number\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAARAAAAEwAAABQAAAAVAAAAFwAAABgAAAAZAAAAGgAAAB0AAAAfAAAAIAAAACQAAAAlAAAAJwAAACgAAAAqAAAAKwAAACwAAAAtAAAAMAAAADIAAAAzAAAANAAAADUAAAA2AAAAOAAAADkAAAA6AAAAOwAAADwAAAA9AAAAPgAAAD8AAABAAAAAQQAAAEIAAABDAAAARAAAAEUAAABGAAAASAAAAEkAAABKAAAASwAAAE8AAABRAAAAUgAAAFMAAABUAAAAVQAAAFYAAABXAAAAWAAAAFsAAABcAAAAXgAAAF8AAABgAAAAYQAAAGIAAABjAAAAZgAAAGcAAAA=\"},\"shape\":[77],\"dtype\":\"int32\",\"order\":\"little\"}],[\"gender\",{\"type\":\"ndarray\",\"array\":[\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"m\",\"f\",\"f\",\"m\",\"m\",\"m\",\"f\",\"m\",\"f\",\"f\",\"m\",\"m\",\"f\",\"f\",\"m\",\"f\",\"m\",\"f\",\"m\",\"f\",\"f\",\"m\",\"m\",\"f\",\"f\",\"f\",\"f\",\"m\",\"f\",\"f\",\"f\",\"f\",\"m\",\"f\",\"f\",\"f\",\"m\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"m\",\"f\",\"f\",\"m\",\"f\",\"f\",\"f\",\"f\",\"f\",\"m\",\"m\",\"m\",\"m\",\"f\",\"m\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\"],\"shape\":[77],\"dtype\":\"object\",\"order\":\"little\"}],[\"age\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"KgAAAC0AAAAQAAAAFQAAABIAAAAcAAAAJgAAABEAAAAZAAAAFgAAACkAAAA1AAAAKwAAABcAAAATAAAALQAAACsAAAAjAAAAGAAAAEAAAAAkAAAAIwAAACsAAAAsAAAAHQAAABYAAAAuAAAAIwAAADUAAAAdAAAAHwAAABUAAAAqAAAAFwAAADYAAAAYAAAAFQAAABUAAAArAAAAMgAAADUAAAAQAAAAQwAAACQAAAAiAAAAKgAAAC4AAABFAAAAHwAAACwAAAAZAAAALQAAAC8AAAAhAAAAEgAAAEoAAAAVAAAALQAAACUAAAApAAAAKQAAACIAAAAnAAAAEgAAAB8AAAAaAAAAQgAAAD4AAAAWAAAAKQAAAC4AAAA4AAAAFwAAAEYAAAAYAAAAKAAAACEAAAA=\"},\"shape\":[77],\"dtype\":\"int32\",\"order\":\"little\"}],[\"correct hit percentage\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UAAAAFAAAABGAAAARgAAAFoAAABfAAAAWgAAAFoAAABkAAAAUAAAAFoAAABfAAAAXwAAAFoAAAA3AAAAZAAAAEEAAABaAAAANwAAAEsAAABkAAAARgAAAFoAAABfAAAAXwAAAEYAAABQAAAAMgAAAEEAAABkAAAAVQAAAFUAAABaAAAAWgAAAFoAAABVAAAAVQAAAFoAAABfAAAARgAAAF8AAABVAAAAXwAAAFoAAABaAAAAZAAAAFAAAABfAAAAZAAAAFoAAABkAAAARgAAAFoAAABVAAAAUAAAAFUAAAAoAAAAUAAAAFoAAABaAAAAUAAAAFoAAABLAAAAVQAAAGQAAABfAAAAPAAAAGQAAABVAAAAIwAAAF8AAABGAAAARgAAAFoAAABGAAAASwAAAFUAAAA=\"},\"shape\":[77],\"dtype\":\"int32\",\"order\":\"little\"}],[\"correct reject percentage\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QQAAAFoAAABQAAAAQQAAAGQAAABQAAAAXwAAAFoAAABkAAAAPAAAAFAAAAA8AAAAWgAAAFAAAAA8AAAAVQAAAEEAAABkAAAAZAAAAFUAAABQAAAAWgAAAFUAAABaAAAANwAAAEEAAABLAAAAXwAAAFAAAABGAAAAWgAAAFoAAABaAAAAVQAAAEYAAABfAAAASwAAAFAAAABLAAAAVQAAAEsAAABVAAAASwAAAEEAAABaAAAAZAAAAFoAAABQAAAAXwAAAF8AAABkAAAAMgAAAGQAAABGAAAASwAAAFAAAAAoAAAAXwAAAFAAAABVAAAASwAAACMAAABGAAAAVQAAAFUAAABLAAAAVQAAAFAAAABfAAAASwAAAFAAAAAyAAAAVQAAAFUAAABQAAAAQQAAACgAAAA=\"},\"shape\":[77],\"dtype\":\"int32\",\"order\":\"little\"}],[\"percent correct\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAgUkAAAAAAAEBVQAAAAAAAwFJAAAAAAADgUEAAAAAAAMBXQAAAAAAA4FVAAAAAAAAgV0AAAAAAAIBWQAAAAAAAAFlAAAAAAACAUUAAAAAAAEBVQAAAAAAAYFNAAAAAAAAgV0AAAAAAAEBVQAAAAAAAwExAAAAAAAAgV0AAAAAAAEBQQAAAAAAAwFdAAAAAAABgU0AAAAAAAABUQAAAAAAAgFZAAAAAAAAAVEAAAAAAAOBVQAAAAAAAIFdAAAAAAADAUkAAAAAAAOBQQAAAAAAAYFNAAAAAAAAgUkAAAAAAACBSQAAAAAAAQFVAAAAAAADgVUAAAAAAAOBVQAAAAAAAgFZAAAAAAADgVUAAAAAAAABUQAAAAAAAgFZAAAAAAAAAVEAAAAAAAEBVQAAAAAAAQFVAAAAAAABgU0AAAAAAAEBVQAAAAAAAQFVAAAAAAABAVUAAAAAAAGBTQAAAAAAAgFZAAAAAAAAAWUAAAAAAAEBVQAAAAAAA4FVAAAAAAABgWEAAAAAAACBXQAAAAAAAAFlAAAAAAAAATkAAAAAAAMBXQAAAAAAAYFNAAAAAAABgU0AAAAAAAKBUQAAAAAAAAERAAAAAAADgVUAAAAAAAEBVQAAAAAAA4FVAAAAAAABgU0AAAAAAAEBPQAAAAAAAIFJAAAAAAABAVUAAAAAAACBXQAAAAAAAQFVAAAAAAAAgUkAAAAAAAIBWQAAAAAAAgFZAAAAAAACAS0AAAAAAAOBVQAAAAAAAAE5AAAAAAABgU0AAAAAAAOBVQAAAAAAAwFJAAAAAAACAUUAAAAAAAEBPQA==\"},\"shape\":[77],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence when correct hit\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAADASUAAAAAAAMBSQAAAAAAAgFFAAAAAAADAT0AAAAAAACBTQAAAAAAAAFlAAAAAAABAU0AAAAAAACBUQAAAAAAAgFZAAAAAAACAUUAAAAAAACBTQAAAAAAAAERAAAAAAAAASkAAAAAAAABWQAAAAAAAAE9AAAAAAAAAUUAAAAAAAIBNQAAAAAAA4FJAAAAAAAAAUUAAAAAAAABJQAAAAAAAAFZAAAAAAACAPUAAAAAAAGBQQAAAAAAAwFRAAAAAAADAUEAAAAAAAIBTQAAAAAAAIFJAAAAAAABAT0AAAAAAAABLQAAAAAAAwFJAAAAAAACAVEAAAAAAAIBQQAAAAAAAwFRAAAAAAADAUEAAAAAAAIBWQAAAAAAAQFhAAAAAAABAUEAAAAAAAABVQAAAAAAAgFJAAAAAAAAgV0AAAAAAAABVQAAAAAAAgEtAAAAAAACAUUAAAAAAAOBQQAAAAAAAQE1AAAAAAACgUkAAAAAAAABXQAAAAAAAAFRAAAAAAACAWEAAAAAAAMBVQAAAAAAAwE5AAAAAAAAgVEAAAAAAAABZQAAAAAAAgFFAAAAAAADgUEAAAAAAAIBQQAAAAAAAoFZAAAAAAACAUkAAAAAAAOBXQAAAAAAAAFRAAAAAAACgV0AAAAAAAEBUQAAAAAAAgExAAAAAAABAV0AAAAAAAABZQAAAAAAAQFVAAAAAAADgUEAAAAAAAEBUQAAAAAAAgFBAAAAAAACAS0AAAAAAAIBWQAAAAAAAgE9AAAAAAABAU0AAAAAAAGBQQAAAAAAAwE5AAAAAAACASkAAAAAAAABUQA==\"},\"shape\":[77],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence incorrect hit\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAABARkAAAAAAAMBLQAAAAAAAgExAAAAAAAAAUEAAAAAAAMBUQAAAAAAAQFVAAAAAAADARUAAAAAAAOBVQAAAAAAAAPh/AAAAAACAUUAAAAAAAMBLQAAAAAAAgEBAAAAAAAAAPUAAAAAAAABEQAAAAAAAAElAAAAAAAAA+H8AAAAAAIBLQAAAAAAAwEFAAAAAAADAUEAAAAAAAAA5QAAAAAAAAPh/AAAAAACAPEAAAAAAAAA7QAAAAAAAAExAAAAAAACASkAAAAAAAABWQAAAAAAAAFJAAAAAAAAAPUAAAAAAAABAQAAAAAAAAPh/AAAAAACASEAAAAAAAAA9QAAAAAAAwFRAAAAAAACAR0AAAAAAAOBUQAAAAAAAgERAAAAAAABAUkAAAAAAAMBLQAAAAAAAQFZAAAAAAAAgUkAAAAAAAIBLQAAAAAAAAD5AAAAAAAAAHEAAAAAAAIA8QAAAAAAAgEVAAAAAAAAA+H8AAAAAAOBSQAAAAAAAQFBAAAAAAAAA+H8AAAAAAMBHQAAAAAAAAPh/AAAAAADASUAAAAAAAAD4fwAAAAAAAENAAAAAAADASUAAAAAAAIBLQAAAAAAAAFRAAAAAAADAUEAAAAAAAABRQAAAAAAAwE1AAAAAAADATkAAAAAAAABKQAAAAAAAgExAAAAAAAAAV0AAAAAAAAD4fwAAAAAAAFZAAAAAAACAUEAAAAAAAAD4fwAAAAAAAExAAAAAAACATkAAAAAAAMBSQAAAAAAAQEpAAAAAAACgUEAAAAAAAGBVQAAAAAAAQFRAAAAAAACAQkAAAAAAAAA7QA==\"},\"shape\":[77],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence correct reject\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAACARUAAAAAAAABUQAAAAAAAAEtAAAAAAAAASUAAAAAAAABUQAAAAAAAgFdAAAAAAADAU0AAAAAAACBTQAAAAAAAQFVAAAAAAACAUUAAAAAAAOBQQAAAAAAAAExAAAAAAACASEAAAAAAAKBRQAAAAAAAgFBAAAAAAACATkAAAAAAAABQQAAAAAAAoFJAAAAAAAAAVEAAAAAAAIBQQAAAAAAAgFBAAAAAAAAAM0AAAAAAAIBEQAAAAAAAwFNAAAAAAABAUEAAAAAAAEBTQAAAAAAAAFlAAAAAAABAU0AAAAAAAMBHQAAAAAAAIFBAAAAAAABAVEAAAAAAAIBRQAAAAAAAIFRAAAAAAABAUUAAAAAAAGBTQAAAAAAAgFJAAAAAAAAATEAAAAAAAGBSQAAAAAAAAFFAAAAAAADAV0AAAAAAAABRQAAAAAAAAElAAAAAAABAUUAAAAAAAIBLQAAAAAAAYFJAAAAAAACAUkAAAAAAAABXQAAAAAAAoFNAAAAAAACAVkAAAAAAAEBRQAAAAAAAQE1AAAAAAACAT0AAAAAAAOBRQAAAAAAAQE1AAAAAAACAUEAAAAAAAIBPQAAAAAAAoFJAAAAAAAAAU0AAAAAAAOBUQAAAAAAAgFFAAAAAAACAVUAAAAAAAMBRQAAAAAAAwE1AAAAAAADAVkAAAAAAAABZQAAAAAAAgFRAAAAAAACAUkAAAAAAAKBSQAAAAAAAAFJAAAAAAAAAVEAAAAAAAABUQAAAAAAA4FBAAAAAAABAU0AAAAAAAMBVQAAAAAAAgFFAAAAAAAAAVUAAAAAAAAA/QA==\"},\"shape\":[77],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence incorrect reject\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAACASEAAAAAAAMBSQAAAAAAAgEpAAAAAAAAASUAAAAAAAAD4fwAAAAAAgE5AAAAAAAAANUAAAAAAAAA7QAAAAAAAAPh/AAAAAABAUEAAAAAAAEBKQAAAAAAAgEhAAAAAAAAAQkAAAAAAAKBQQAAAAAAAQElAAAAAAAAAS0AAAAAAAIBNQAAAAAAAAPh/AAAAAAAA+H8AAAAAAAA4QAAAAAAAwE9AAAAAAADAREAAAAAAAIBGQAAAAAAAQEVAAAAAAACASkAAAAAAAABUQAAAAAAAwFZAAAAAAAAAQEAAAAAAAKBTQAAAAAAAgEVAAAAAAAAAQkAAAAAAAAA9QAAAAAAAAEJAAAAAAAAAREAAAAAAAEBRQAAAAAAAQFJAAAAAAAAAUUAAAAAAAIBRQAAAAAAAQFBAAAAAAABAUEAAAAAAAIBOQAAAAAAAAERAAAAAAAAATkAAAAAAAABKQAAAAAAAwEpAAAAAAAAA+H8AAAAAAIBPQAAAAAAAoFFAAAAAAAAAREAAAAAAAMBVQAAAAAAAAPh/AAAAAABAUUAAAAAAAMBUQAAAAAAAQFBAAAAAAACATEAAAAAAAEBJQAAAAAAAwFRAAAAAAAAAMUAAAAAAAMBUQAAAAAAAgERAAAAAAACAUkAAAAAAAABNQAAAAAAAAElAAAAAAABAVkAAAAAAAABJQAAAAAAAgFRAAAAAAACATEAAAAAAAIBUQAAAAAAAgE9AAAAAAACATEAAAAAAAABUQAAAAAAAYFBAAAAAAABgU0AAAAAAAABUQAAAAAAAgE5AAAAAAAAASkAAAAAAAKBUQA==\"},\"shape\":[77],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence when correct\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAACASUAAAAAAAKBTQAAAAAAAgExAAAAAAAAATkAAAAAAAABUQAAAAAAAwFhAAAAAAACAU0AAAAAAAKBTQAAAAAAAgFZAAAAAAACAUUAAAAAAAIBSQAAAAAAAgEdAAAAAAAAASkAAAAAAAABVQAAAAAAAgE9AAAAAAAAAT0AAAAAAAMBNQAAAAAAA4FJAAAAAAACAU0AAAAAAAIBPQAAAAAAAQFRAAAAAAAAAOEAAAAAAAABJQAAAAAAAQFRAAAAAAADAUEAAAAAAAEBTQAAAAAAAAFlAAAAAAAAAUUAAAAAAAABIQAAAAAAAgFJAAAAAAACAVEAAAAAAAMBQQAAAAAAAoFRAAAAAAADAUEAAAAAAAABWQAAAAAAAwFRAAAAAAADAT0AAAAAAACBUQAAAAAAAwFFAAAAAAADAV0AAAAAAAKBTQAAAAAAAQEpAAAAAAABAUUAAAAAAAIBOQAAAAAAAgFBAAAAAAACAUkAAAAAAAABXQAAAAAAAAFRAAAAAAAAAV0AAAAAAAMBUQAAAAAAAQE5AAAAAAAAgUkAAAAAAAGBYQAAAAAAAAFFAAAAAAADAUEAAAAAAAEBQQAAAAAAAgFRAAAAAAADAUkAAAAAAAIBXQAAAAAAAQFNAAAAAAAAAV0AAAAAAAEBUQAAAAAAAAE1AAAAAAADgVkAAAAAAAABZQAAAAAAAQFVAAAAAAACAUkAAAAAAAOBTQAAAAAAAoFFAAAAAAAAAUkAAAAAAAEBVQAAAAAAAAFBAAAAAAABAU0AAAAAAAIBSQAAAAAAAQFBAAAAAAABAVEAAAAAAAEBUQA==\"},\"shape\":[77],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence when incorrect\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAACASEAAAAAAAMBQQAAAAAAAQEtAAAAAAAAASUAAAAAAAMBUQAAAAAAAQFBAAAAAAAAAQkAAAAAAAOBQQAAAAAAAAPh/AAAAAACAUUAAAAAAAMBLQAAAAAAAAEZAAAAAAAAAPUAAAAAAAEBLQAAAAAAAAElAAAAAAAAAS0AAAAAAAIBMQAAAAAAAwEFAAAAAAADAUEAAAAAAAIA4QAAAAAAAwE9AAAAAAACAQUAAAAAAAIBGQAAAAAAAAEtAAAAAAACASkAAAAAAAABVQAAAAAAAwFZAAAAAAAAAP0AAAAAAAIBJQAAAAAAAgEVAAAAAAACASEAAAAAAAAA9QAAAAAAAAFNAAAAAAAAAREAAAAAAAMBTQAAAAAAAwEtAAAAAAAAAUUAAAAAAAEBQQAAAAAAAAFFAAAAAAABAUEAAAAAAAABNQAAAAAAAgEFAAAAAAADATUAAAAAAAABJQAAAAAAAwEdAAAAAAAAA+H8AAAAAAGBSQAAAAAAAgFFAAAAAAAAAREAAAAAAAMBQQAAAAAAAAPh/AAAAAADATkAAAAAAAMBUQAAAAAAAAERAAAAAAACASkAAAAAAAIBLQAAAAAAAQFRAAAAAAAAAUEAAAAAAAMBRQAAAAAAAgE1AAAAAAADAUEAAAAAAAABNQAAAAAAAAElAAAAAAADAVkAAAAAAAABJQAAAAAAAQFVAAAAAAAAAUEAAAAAAAIBUQAAAAAAAwE1AAAAAAAAATkAAAAAAAMBSQAAAAAAAwE1AAAAAAACAUkAAAAAAAABUQAAAAAAAQFRAAAAAAACASUAAAAAAAEBSQA==\"},\"shape\":[77],\"dtype\":\"float64\",\"order\":\"little\"}],[\"sci\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HQAAABMAAAAXAAAAGgAAABUAAAATAAAAHAAAAB0AAAARAAAAFgAAABwAAAAfAAAAHwAAACAAAAAZAAAAHgAAABwAAAAeAAAAFgAAABQAAAAaAAAAIAAAACAAAAAYAAAAGgAAAB4AAAAcAAAAFQAAAB0AAAAgAAAAGgAAABoAAAAXAAAAEgAAABYAAAAdAAAAFAAAABsAAAATAAAAHQAAABgAAAAdAAAAEQAAABoAAAAeAAAAEQAAABkAAAAfAAAAGwAAACAAAAAcAAAAGQAAAB4AAAAVAAAAHQAAABQAAAAWAAAAFwAAABQAAAARAAAAGwAAABsAAAAWAAAAGQAAAB4AAAAgAAAAHgAAACAAAAAcAAAAHwAAAB0AAAAaAAAAFAAAABMAAAAfAAAAFgAAABgAAAA=\"},\"shape\":[77],\"dtype\":\"int32\",\"order\":\"little\"}],[\"psqi\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AQAAAAUAAAABAAAABQAAAAcAAAAHAAAAAwAAAAMAAAAKAAAABAAAAAUAAAACAAAAAgAAAAIAAAAFAAAAAgAAAAMAAAADAAAABAAAAAkAAAAFAAAAAgAAAAEAAAAEAAAACAAAAAIAAAACAAAABgAAAAMAAAABAAAABQAAAAcAAAADAAAABgAAAAYAAAABAAAABgAAAAQAAAAEAAAAAwAAAAUAAAACAAAABwAAAAQAAAAAAAAABQAAAAEAAAABAAAABAAAAAEAAAAIAAAABAAAAAIAAAAHAAAABAAAAAEAAAAHAAAABAAAAAUAAAAGAAAABAAAAAIAAAADAAAABAAAAAMAAAABAAAABQAAAAIAAAABAAAAAQAAAAMAAAAGAAAACAAAAAgAAAACAAAABAAAAAUAAAA=\"},\"shape\":[77],\"dtype\":\"int32\",\"order\":\"little\"}],[\"ess\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BQAAAAEAAAADAAAABAAAAAUAAAAMAAAABAAAAAQAAAALAAAABgAAAAMAAAALAAAACgAAAAwAAAAGAAAADQAAAAwAAAAFAAAACgAAAAQAAAAEAAAABgAAAAMAAAAAAAAADAAAAAYAAAAFAAAACQAAAAcAAAAGAAAACgAAABIAAAALAAAACAAAABAAAAAHAAAACQAAAAsAAAAEAAAABwAAAAQAAAALAAAADAAAAAMAAAADAAAABAAAAAsAAAABAAAABAAAAAIAAAAJAAAAAQAAAAIAAAAMAAAABgAAAAUAAAAFAAAABAAAAAkAAAADAAAACAAAAAYAAAAKAAAAFQAAAAUAAAAFAAAACQAAAAEAAAAIAAAACwAAAAUAAAAHAAAACgAAAAcAAAAPAAAABwAAAAcAAAA=\"},\"shape\":[77],\"dtype\":\"int32\",\"order\":\"little\"}],[\"insomnia\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\"},\"shape\":[77],\"dtype\":\"bool\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1181\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1182\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1177\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"confidence when correct\"},\"y\":{\"type\":\"field\",\"field\":\"confidence when incorrect\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"hatch_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1178\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"confidence when correct\"},\"y\":{\"type\":\"field\",\"field\":\"confidence when incorrect\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1179\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"confidence when correct\"},\"y\":{\"type\":\"field\",\"field\":\"confidence when incorrect\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1131\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1144\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1145\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1146\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1147\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p1153\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p1152\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p1154\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1155\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1156\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1139\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1140\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1141\"},\"axis_label\":\"confidence when incorrect\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1142\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1134\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1135\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1136\"},\"axis_label\":\"confidence when correct\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1137\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1138\",\"attributes\":{\"axis\":{\"id\":\"p1134\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1143\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1139\"}}},{\"type\":\"object\",\"name\":\"Legend\",\"id\":\"p1169\",\"attributes\":{\"items\":[{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p1170\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"insomniacs\"},\"renderers\":[{\"id\":\"p1166\"}]}},{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p1183\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"normal sleepers\"},\"renderers\":[{\"id\":\"p1180\"}]}}]}}]}}]}};\n", " const render_items = [{\"docid\":\"681bc828-29fe-4e42-b082-78d0e2785659\",\"roots\":{\"p1123\":\"aff3cef4-e6a5-4ade-ad17-ec24737f7070\"},\"root_ids\":[\"p1123\"]}];\n", " void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " let attempts = 0;\n", " const timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p1123" } }, "output_type": "display_data" } ], "source": [ "# For convenience\n", "x = \"confidence when correct\"\n", "y = \"confidence when incorrect\"\n", "\n", "# Make figure\n", "p = bokeh.plotting.figure(\n", " width=400,\n", " height=300,\n", " x_axis_label=x,\n", " y_axis_label=y,\n", ")\n", "\n", "# Add glyphs\n", "colors = {'normal sleepers': '#1f77b4', 'insomniacs': 'orange'}\n", "for (insom,), sub_df in df.group_by('insomnia'):\n", " category = \"insomniacs\" if insom else \"normal sleepers\"\n", " p.scatter(\n", " source=sub_df.to_dict(),\n", " x=x,\n", " y=y,\n", " color=colors[category],\n", " legend_label=category,\n", " )\n", "\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We got the plot we wanted, but the legend is clashing with the data. Fortunately, Bokeh allows us to set attributes of the figure whenever we like. (We will further discuss styling Bokeh plots in a future lesson.) We can therefore set the legend position to be in the upper left corner. We will also set the `click_policy` for the legend to be `'hide'`, which will hide glyphs if you click the legend, which can be convenient for viewing cluttered plots (though this one is not cluttered, really)." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " const docs_json = {\"e14b4d8b-9f40-43f6-8f20-11a3d795d52b\":{\"version\":\"3.6.2\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1123\",\"attributes\":{\"width\":400,\"height\":300,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1124\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1125\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1132\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1133\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1130\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1166\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1157\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1158\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1159\"},\"data\":{\"type\":\"map\",\"entries\":[[\"participant number\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CAAAABAAAAASAAAAFgAAABsAAAAcAAAAHgAAACEAAAAiAAAAIwAAACYAAAApAAAALgAAADEAAAA3AAAARwAAAEwAAABNAAAATgAAAFAAAABZAAAAWgAAAF0AAABkAAAAZQAAAA==\"},\"shape\":[25],\"dtype\":\"int32\",\"order\":\"little\"}],[\"gender\",{\"type\":\"ndarray\",\"array\":[\"f\",\"m\",\"f\",\"f\",\"f\",\"f\",\"m\",\"m\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"m\",\"m\",\"f\",\"m\",\"f\",\"f\",\"f\"],\"shape\":[25],\"dtype\":\"object\",\"order\":\"little\"}],[\"age\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"JwAAACoAAAAfAAAAIwAAAEoAAAA9AAAAIAAAAD4AAAAhAAAANQAAACkAAAAkAAAAKAAAABgAAAAgAAAAKAAAAD0AAAAqAAAAHwAAABwAAAAaAAAALQAAABwAAAAsAAAAHAAAAA==\"},\"shape\":[25],\"dtype\":\"int32\",\"order\":\"little\"}],[\"correct hit percentage\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QQAAAFoAAABaAAAAZAAAADwAAABQAAAAWgAAAC0AAABQAAAAZAAAAEYAAABaAAAAXwAAAFUAAABLAAAAKAAAAGQAAABGAAAAZAAAAGQAAAA8AAAAZAAAAGQAAABBAAAAZAAAAA==\"},\"shape\":[25],\"dtype\":\"int32\",\"order\":\"little\"}],[\"correct reject percentage\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UAAAAFoAAABfAAAASwAAAEEAAAAUAAAASwAAAFoAAABkAAAAMgAAADcAAABkAAAAQQAAAEsAAAA3AAAAZAAAACgAAABaAAAARgAAADIAAABQAAAAXwAAAEsAAAAZAAAAKAAAAA==\"},\"shape\":[25],\"dtype\":\"int32\",\"order\":\"little\"}],[\"percent correct\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAgUkAAAAAAAIBWQAAAAAAAIFdAAAAAAADgVUAAAAAAAEBPQAAAAAAAAElAAAAAAACgVEAAAAAAAOBQQAAAAAAAgFZAAAAAAADAUkAAAAAAAEBPQAAAAAAAwFdAAAAAAAAAVEAAAAAAAABUQAAAAAAAQFBAAAAAAACAUUAAAAAAAIBRQAAAAAAAAFRAAAAAAABAVUAAAAAAAMBSQAAAAAAAgFFAAAAAAABgWEAAAAAAAOBVQAAAAAAAgEZAAAAAAACAUUA=\"},\"shape\":[25],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence when correct hit\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAADAVkAAAAAAAOBSQAAAAAAAYFZAAAAAAABgVkAAAAAAACBRQAAAAAAAwFFAAAAAAADAUEAAAAAAAABLQAAAAAAAoFFAAAAAAACgUkAAAAAAAIBUQAAAAAAAIFNAAAAAAAAAVEAAAAAAAABNQAAAAAAAQFVAAAAAAABAUUAAAAAAAGBRQAAAAAAAwFVAAAAAAAAAV0AAAAAAAABZQAAAAAAAgFFAAAAAAAAAWUAAAAAAAGBWQAAAAAAAAE9AAAAAAADAVUA=\"},\"shape\":[25],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence incorrect hit\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAACAVkAAAAAAAMBLQAAAAAAAgFZAAAAAAAAA+H8AAAAAAIBIQAAAAAAAgE9AAAAAAABATEAAAAAAAIBCQAAAAAAAIFNAAAAAAAAA+H8AAAAAAMBOQAAAAAAA4FJAAAAAAABAVkAAAAAAAABJQAAAAAAAQFRAAAAAAAAATEAAAAAAAAD4fwAAAAAAAFJAAAAAAAAA+H8AAAAAAAD4fwAAAAAAQFNAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAFJAAAAAAAAA+H8=\"},\"shape\":[25],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence correct reject\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAABAV0AAAAAAAKBRQAAAAAAAgFVAAAAAAADAUUAAAAAAAIBOQAAAAAAAAD9AAAAAAACAUEAAAAAAAEBQQAAAAAAAIFBAAAAAAABATkAAAAAAAEBSQAAAAAAAwFJAAAAAAADAU0AAAAAAAIBIQAAAAAAAQFVAAAAAAACAUUAAAAAAAEBGQAAAAAAAoFZAAAAAAABAVEAAAAAAAABZQAAAAAAAgFRAAAAAAAAAWUAAAAAAAMBQQAAAAAAAwFVAAAAAAAAAUUA=\"},\"shape\":[25],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence incorrect reject\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAADgVEAAAAAAAABJQAAAAAAAQFRAAAAAAAAAVEAAAAAAAIBIQAAAAAAAIFJAAAAAAABAUEAAAAAAAGBUQAAAAAAAAPh/AAAAAABAUEAAAAAAAEBRQAAAAAAAAPh/AAAAAABATUAAAAAAAABRQAAAAAAAgFVAAAAAAAAA+H8AAAAAAEBSQAAAAAAAwEVAAAAAAAAATkAAAAAAAABZQAAAAAAA4FBAAAAAAAAAWUAAAAAAAABOQAAAAAAAQFNAAAAAAAAAS0A=\"},\"shape\":[25],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence when correct\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAABAV0AAAAAAAMBSQAAAAAAAQFZAAAAAAAAAVkAAAAAAAEBQQAAAAAAAIFBAAAAAAACAUEAAAAAAAABPQAAAAAAAAFFAAAAAAADAUUAAAAAAAIBUQAAAAAAAAFNAAAAAAADgU0AAAAAAAIBLQAAAAAAAQFVAAAAAAACAUUAAAAAAAEBLQAAAAAAAIFZAAAAAAADgVUAAAAAAAABZQAAAAAAAQFNAAAAAAAAAWUAAAAAAAABUQAAAAAAAYFFAAAAAAABAVEA=\"},\"shape\":[25],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence when incorrect\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAACAVkAAAAAAAABJQAAAAAAAAFZAAAAAAAAAVEAAAAAAAIBIQAAAAAAAoFFAAAAAAAAAUEAAAAAAAIBOQAAAAAAAIFNAAAAAAABAUEAAAAAAAABQQAAAAAAA4FJAAAAAAACAT0AAAAAAAIBNQAAAAAAA4FRAAAAAAAAATEAAAAAAAEBSQAAAAAAAAFBAAAAAAAAATkAAAAAAAABZQAAAAAAAoFFAAAAAAAAAWUAAAAAAAABOQAAAAAAAYFJAAAAAAAAAS0A=\"},\"shape\":[25],\"dtype\":\"float64\",\"order\":\"little\"}],[\"sci\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CQAAAAQAAAAKAAAADQAAAA0AAAAPAAAAEAAAAA4AAAAOAAAADgAAAA4AAAAPAAAACgAAAA4AAAAFAAAAAAAAABAAAAALAAAADgAAAAwAAAAOAAAADgAAABAAAAABAAAADgAAAA==\"},\"shape\":[25],\"dtype\":\"int32\",\"order\":\"little\"}],[\"psqi\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DQAAAAsAAAAJAAAACAAAAAkAAAAOAAAACQAAAAkAAAAMAAAACAAAAAUAAAAHAAAADAAAAA0AAAANAAAACwAAAAQAAAAKAAAABgAAAAcAAAAIAAAACQAAAAcAAAAPAAAABwAAAA==\"},\"shape\":[25],\"dtype\":\"int32\",\"order\":\"little\"}],[\"ess\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AgAAAAcAAAADAAAAFAAAAAwAAAACAAAAAwAAAAkAAAAKAAAABwAAABMAAAAAAAAACAAAAAQAAAAHAAAADgAAAAwAAAAKAAAACwAAAAwAAAABAAAABgAAAAQAAAAGAAAAAgAAAA==\"},\"shape\":[25],\"dtype\":\"int32\",\"order\":\"little\"}],[\"insomnia\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ==\"},\"shape\":[25],\"dtype\":\"bool\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1167\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1168\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1163\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"confidence when correct\"},\"y\":{\"type\":\"field\",\"field\":\"confidence when incorrect\"},\"line_color\":{\"type\":\"value\",\"value\":\"orange\"},\"fill_color\":{\"type\":\"value\",\"value\":\"orange\"},\"hatch_color\":{\"type\":\"value\",\"value\":\"orange\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1164\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"confidence when correct\"},\"y\":{\"type\":\"field\",\"field\":\"confidence when incorrect\"},\"line_color\":{\"type\":\"value\",\"value\":\"orange\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"orange\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_color\":{\"type\":\"value\",\"value\":\"orange\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1165\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"confidence when correct\"},\"y\":{\"type\":\"field\",\"field\":\"confidence when incorrect\"},\"line_color\":{\"type\":\"value\",\"value\":\"orange\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"orange\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_color\":{\"type\":\"value\",\"value\":\"orange\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1180\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1171\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1172\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1173\"},\"data\":{\"type\":\"map\",\"entries\":[[\"participant number\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAARAAAAEwAAABQAAAAVAAAAFwAAABgAAAAZAAAAGgAAAB0AAAAfAAAAIAAAACQAAAAlAAAAJwAAACgAAAAqAAAAKwAAACwAAAAtAAAAMAAAADIAAAAzAAAANAAAADUAAAA2AAAAOAAAADkAAAA6AAAAOwAAADwAAAA9AAAAPgAAAD8AAABAAAAAQQAAAEIAAABDAAAARAAAAEUAAABGAAAASAAAAEkAAABKAAAASwAAAE8AAABRAAAAUgAAAFMAAABUAAAAVQAAAFYAAABXAAAAWAAAAFsAAABcAAAAXgAAAF8AAABgAAAAYQAAAGIAAABjAAAAZgAAAGcAAAA=\"},\"shape\":[77],\"dtype\":\"int32\",\"order\":\"little\"}],[\"gender\",{\"type\":\"ndarray\",\"array\":[\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"m\",\"f\",\"f\",\"m\",\"m\",\"m\",\"f\",\"m\",\"f\",\"f\",\"m\",\"m\",\"f\",\"f\",\"m\",\"f\",\"m\",\"f\",\"m\",\"f\",\"f\",\"m\",\"m\",\"f\",\"f\",\"f\",\"f\",\"m\",\"f\",\"f\",\"f\",\"f\",\"m\",\"f\",\"f\",\"f\",\"m\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"m\",\"f\",\"f\",\"m\",\"f\",\"f\",\"f\",\"f\",\"f\",\"m\",\"m\",\"m\",\"m\",\"f\",\"m\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\"],\"shape\":[77],\"dtype\":\"object\",\"order\":\"little\"}],[\"age\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"KgAAAC0AAAAQAAAAFQAAABIAAAAcAAAAJgAAABEAAAAZAAAAFgAAACkAAAA1AAAAKwAAABcAAAATAAAALQAAACsAAAAjAAAAGAAAAEAAAAAkAAAAIwAAACsAAAAsAAAAHQAAABYAAAAuAAAAIwAAADUAAAAdAAAAHwAAABUAAAAqAAAAFwAAADYAAAAYAAAAFQAAABUAAAArAAAAMgAAADUAAAAQAAAAQwAAACQAAAAiAAAAKgAAAC4AAABFAAAAHwAAACwAAAAZAAAALQAAAC8AAAAhAAAAEgAAAEoAAAAVAAAALQAAACUAAAApAAAAKQAAACIAAAAnAAAAEgAAAB8AAAAaAAAAQgAAAD4AAAAWAAAAKQAAAC4AAAA4AAAAFwAAAEYAAAAYAAAAKAAAACEAAAA=\"},\"shape\":[77],\"dtype\":\"int32\",\"order\":\"little\"}],[\"correct hit percentage\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UAAAAFAAAABGAAAARgAAAFoAAABfAAAAWgAAAFoAAABkAAAAUAAAAFoAAABfAAAAXwAAAFoAAAA3AAAAZAAAAEEAAABaAAAANwAAAEsAAABkAAAARgAAAFoAAABfAAAAXwAAAEYAAABQAAAAMgAAAEEAAABkAAAAVQAAAFUAAABaAAAAWgAAAFoAAABVAAAAVQAAAFoAAABfAAAARgAAAF8AAABVAAAAXwAAAFoAAABaAAAAZAAAAFAAAABfAAAAZAAAAFoAAABkAAAARgAAAFoAAABVAAAAUAAAAFUAAAAoAAAAUAAAAFoAAABaAAAAUAAAAFoAAABLAAAAVQAAAGQAAABfAAAAPAAAAGQAAABVAAAAIwAAAF8AAABGAAAARgAAAFoAAABGAAAASwAAAFUAAAA=\"},\"shape\":[77],\"dtype\":\"int32\",\"order\":\"little\"}],[\"correct reject percentage\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QQAAAFoAAABQAAAAQQAAAGQAAABQAAAAXwAAAFoAAABkAAAAPAAAAFAAAAA8AAAAWgAAAFAAAAA8AAAAVQAAAEEAAABkAAAAZAAAAFUAAABQAAAAWgAAAFUAAABaAAAANwAAAEEAAABLAAAAXwAAAFAAAABGAAAAWgAAAFoAAABaAAAAVQAAAEYAAABfAAAASwAAAFAAAABLAAAAVQAAAEsAAABVAAAASwAAAEEAAABaAAAAZAAAAFoAAABQAAAAXwAAAF8AAABkAAAAMgAAAGQAAABGAAAASwAAAFAAAAAoAAAAXwAAAFAAAABVAAAASwAAACMAAABGAAAAVQAAAFUAAABLAAAAVQAAAFAAAABfAAAASwAAAFAAAAAyAAAAVQAAAFUAAABQAAAAQQAAACgAAAA=\"},\"shape\":[77],\"dtype\":\"int32\",\"order\":\"little\"}],[\"percent correct\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAgUkAAAAAAAEBVQAAAAAAAwFJAAAAAAADgUEAAAAAAAMBXQAAAAAAA4FVAAAAAAAAgV0AAAAAAAIBWQAAAAAAAAFlAAAAAAACAUUAAAAAAAEBVQAAAAAAAYFNAAAAAAAAgV0AAAAAAAEBVQAAAAAAAwExAAAAAAAAgV0AAAAAAAEBQQAAAAAAAwFdAAAAAAABgU0AAAAAAAABUQAAAAAAAgFZAAAAAAAAAVEAAAAAAAOBVQAAAAAAAIFdAAAAAAADAUkAAAAAAAOBQQAAAAAAAYFNAAAAAAAAgUkAAAAAAACBSQAAAAAAAQFVAAAAAAADgVUAAAAAAAOBVQAAAAAAAgFZAAAAAAADgVUAAAAAAAABUQAAAAAAAgFZAAAAAAAAAVEAAAAAAAEBVQAAAAAAAQFVAAAAAAABgU0AAAAAAAEBVQAAAAAAAQFVAAAAAAABAVUAAAAAAAGBTQAAAAAAAgFZAAAAAAAAAWUAAAAAAAEBVQAAAAAAA4FVAAAAAAABgWEAAAAAAACBXQAAAAAAAAFlAAAAAAAAATkAAAAAAAMBXQAAAAAAAYFNAAAAAAABgU0AAAAAAAKBUQAAAAAAAAERAAAAAAADgVUAAAAAAAEBVQAAAAAAA4FVAAAAAAABgU0AAAAAAAEBPQAAAAAAAIFJAAAAAAABAVUAAAAAAACBXQAAAAAAAQFVAAAAAAAAgUkAAAAAAAIBWQAAAAAAAgFZAAAAAAACAS0AAAAAAAOBVQAAAAAAAAE5AAAAAAABgU0AAAAAAAOBVQAAAAAAAwFJAAAAAAACAUUAAAAAAAEBPQA==\"},\"shape\":[77],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence when correct hit\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAADASUAAAAAAAMBSQAAAAAAAgFFAAAAAAADAT0AAAAAAACBTQAAAAAAAAFlAAAAAAABAU0AAAAAAACBUQAAAAAAAgFZAAAAAAACAUUAAAAAAACBTQAAAAAAAAERAAAAAAAAASkAAAAAAAABWQAAAAAAAAE9AAAAAAAAAUUAAAAAAAIBNQAAAAAAA4FJAAAAAAAAAUUAAAAAAAABJQAAAAAAAAFZAAAAAAACAPUAAAAAAAGBQQAAAAAAAwFRAAAAAAADAUEAAAAAAAIBTQAAAAAAAIFJAAAAAAABAT0AAAAAAAABLQAAAAAAAwFJAAAAAAACAVEAAAAAAAIBQQAAAAAAAwFRAAAAAAADAUEAAAAAAAIBWQAAAAAAAQFhAAAAAAABAUEAAAAAAAABVQAAAAAAAgFJAAAAAAAAgV0AAAAAAAABVQAAAAAAAgEtAAAAAAACAUUAAAAAAAOBQQAAAAAAAQE1AAAAAAACgUkAAAAAAAABXQAAAAAAAAFRAAAAAAACAWEAAAAAAAMBVQAAAAAAAwE5AAAAAAAAgVEAAAAAAAABZQAAAAAAAgFFAAAAAAADgUEAAAAAAAIBQQAAAAAAAoFZAAAAAAACAUkAAAAAAAOBXQAAAAAAAAFRAAAAAAACgV0AAAAAAAEBUQAAAAAAAgExAAAAAAABAV0AAAAAAAABZQAAAAAAAQFVAAAAAAADgUEAAAAAAAEBUQAAAAAAAgFBAAAAAAACAS0AAAAAAAIBWQAAAAAAAgE9AAAAAAABAU0AAAAAAAGBQQAAAAAAAwE5AAAAAAACASkAAAAAAAABUQA==\"},\"shape\":[77],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence incorrect hit\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAABARkAAAAAAAMBLQAAAAAAAgExAAAAAAAAAUEAAAAAAAMBUQAAAAAAAQFVAAAAAAADARUAAAAAAAOBVQAAAAAAAAPh/AAAAAACAUUAAAAAAAMBLQAAAAAAAgEBAAAAAAAAAPUAAAAAAAABEQAAAAAAAAElAAAAAAAAA+H8AAAAAAIBLQAAAAAAAwEFAAAAAAADAUEAAAAAAAAA5QAAAAAAAAPh/AAAAAACAPEAAAAAAAAA7QAAAAAAAAExAAAAAAACASkAAAAAAAABWQAAAAAAAAFJAAAAAAAAAPUAAAAAAAABAQAAAAAAAAPh/AAAAAACASEAAAAAAAAA9QAAAAAAAwFRAAAAAAACAR0AAAAAAAOBUQAAAAAAAgERAAAAAAABAUkAAAAAAAMBLQAAAAAAAQFZAAAAAAAAgUkAAAAAAAIBLQAAAAAAAAD5AAAAAAAAAHEAAAAAAAIA8QAAAAAAAgEVAAAAAAAAA+H8AAAAAAOBSQAAAAAAAQFBAAAAAAAAA+H8AAAAAAMBHQAAAAAAAAPh/AAAAAADASUAAAAAAAAD4fwAAAAAAAENAAAAAAADASUAAAAAAAIBLQAAAAAAAAFRAAAAAAADAUEAAAAAAAABRQAAAAAAAwE1AAAAAAADATkAAAAAAAABKQAAAAAAAgExAAAAAAAAAV0AAAAAAAAD4fwAAAAAAAFZAAAAAAACAUEAAAAAAAAD4fwAAAAAAAExAAAAAAACATkAAAAAAAMBSQAAAAAAAQEpAAAAAAACgUEAAAAAAAGBVQAAAAAAAQFRAAAAAAACAQkAAAAAAAAA7QA==\"},\"shape\":[77],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence correct reject\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAACARUAAAAAAAABUQAAAAAAAAEtAAAAAAAAASUAAAAAAAABUQAAAAAAAgFdAAAAAAADAU0AAAAAAACBTQAAAAAAAQFVAAAAAAACAUUAAAAAAAOBQQAAAAAAAAExAAAAAAACASEAAAAAAAKBRQAAAAAAAgFBAAAAAAACATkAAAAAAAABQQAAAAAAAoFJAAAAAAAAAVEAAAAAAAIBQQAAAAAAAgFBAAAAAAAAAM0AAAAAAAIBEQAAAAAAAwFNAAAAAAABAUEAAAAAAAEBTQAAAAAAAAFlAAAAAAABAU0AAAAAAAMBHQAAAAAAAIFBAAAAAAABAVEAAAAAAAIBRQAAAAAAAIFRAAAAAAABAUUAAAAAAAGBTQAAAAAAAgFJAAAAAAAAATEAAAAAAAGBSQAAAAAAAAFFAAAAAAADAV0AAAAAAAABRQAAAAAAAAElAAAAAAABAUUAAAAAAAIBLQAAAAAAAYFJAAAAAAACAUkAAAAAAAABXQAAAAAAAoFNAAAAAAACAVkAAAAAAAEBRQAAAAAAAQE1AAAAAAACAT0AAAAAAAOBRQAAAAAAAQE1AAAAAAACAUEAAAAAAAIBPQAAAAAAAoFJAAAAAAAAAU0AAAAAAAOBUQAAAAAAAgFFAAAAAAACAVUAAAAAAAMBRQAAAAAAAwE1AAAAAAADAVkAAAAAAAABZQAAAAAAAgFRAAAAAAACAUkAAAAAAAKBSQAAAAAAAAFJAAAAAAAAAVEAAAAAAAABUQAAAAAAA4FBAAAAAAABAU0AAAAAAAMBVQAAAAAAAgFFAAAAAAAAAVUAAAAAAAAA/QA==\"},\"shape\":[77],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence incorrect reject\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAACASEAAAAAAAMBSQAAAAAAAgEpAAAAAAAAASUAAAAAAAAD4fwAAAAAAgE5AAAAAAAAANUAAAAAAAAA7QAAAAAAAAPh/AAAAAABAUEAAAAAAAEBKQAAAAAAAgEhAAAAAAAAAQkAAAAAAAKBQQAAAAAAAQElAAAAAAAAAS0AAAAAAAIBNQAAAAAAAAPh/AAAAAAAA+H8AAAAAAAA4QAAAAAAAwE9AAAAAAADAREAAAAAAAIBGQAAAAAAAQEVAAAAAAACASkAAAAAAAABUQAAAAAAAwFZAAAAAAAAAQEAAAAAAAKBTQAAAAAAAgEVAAAAAAAAAQkAAAAAAAAA9QAAAAAAAAEJAAAAAAAAAREAAAAAAAEBRQAAAAAAAQFJAAAAAAAAAUUAAAAAAAIBRQAAAAAAAQFBAAAAAAABAUEAAAAAAAIBOQAAAAAAAAERAAAAAAAAATkAAAAAAAABKQAAAAAAAwEpAAAAAAAAA+H8AAAAAAIBPQAAAAAAAoFFAAAAAAAAAREAAAAAAAMBVQAAAAAAAAPh/AAAAAABAUUAAAAAAAMBUQAAAAAAAQFBAAAAAAACATEAAAAAAAEBJQAAAAAAAwFRAAAAAAAAAMUAAAAAAAMBUQAAAAAAAgERAAAAAAACAUkAAAAAAAABNQAAAAAAAAElAAAAAAABAVkAAAAAAAABJQAAAAAAAgFRAAAAAAACATEAAAAAAAIBUQAAAAAAAgE9AAAAAAACATEAAAAAAAABUQAAAAAAAYFBAAAAAAABgU0AAAAAAAABUQAAAAAAAgE5AAAAAAAAASkAAAAAAAKBUQA==\"},\"shape\":[77],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence when correct\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAACASUAAAAAAAKBTQAAAAAAAgExAAAAAAAAATkAAAAAAAABUQAAAAAAAwFhAAAAAAACAU0AAAAAAAKBTQAAAAAAAgFZAAAAAAACAUUAAAAAAAIBSQAAAAAAAgEdAAAAAAAAASkAAAAAAAABVQAAAAAAAgE9AAAAAAAAAT0AAAAAAAMBNQAAAAAAA4FJAAAAAAACAU0AAAAAAAIBPQAAAAAAAQFRAAAAAAAAAOEAAAAAAAABJQAAAAAAAQFRAAAAAAADAUEAAAAAAAEBTQAAAAAAAAFlAAAAAAAAAUUAAAAAAAABIQAAAAAAAgFJAAAAAAACAVEAAAAAAAMBQQAAAAAAAoFRAAAAAAADAUEAAAAAAAABWQAAAAAAAwFRAAAAAAADAT0AAAAAAACBUQAAAAAAAwFFAAAAAAADAV0AAAAAAAKBTQAAAAAAAQEpAAAAAAABAUUAAAAAAAIBOQAAAAAAAgFBAAAAAAACAUkAAAAAAAABXQAAAAAAAAFRAAAAAAAAAV0AAAAAAAMBUQAAAAAAAQE5AAAAAAAAgUkAAAAAAAGBYQAAAAAAAAFFAAAAAAADAUEAAAAAAAEBQQAAAAAAAgFRAAAAAAADAUkAAAAAAAIBXQAAAAAAAQFNAAAAAAAAAV0AAAAAAAEBUQAAAAAAAAE1AAAAAAADgVkAAAAAAAABZQAAAAAAAQFVAAAAAAACAUkAAAAAAAOBTQAAAAAAAoFFAAAAAAAAAUkAAAAAAAEBVQAAAAAAAAFBAAAAAAABAU0AAAAAAAIBSQAAAAAAAQFBAAAAAAABAVEAAAAAAAEBUQA==\"},\"shape\":[77],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence when incorrect\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAACASEAAAAAAAMBQQAAAAAAAQEtAAAAAAAAASUAAAAAAAMBUQAAAAAAAQFBAAAAAAAAAQkAAAAAAAOBQQAAAAAAAAPh/AAAAAACAUUAAAAAAAMBLQAAAAAAAAEZAAAAAAAAAPUAAAAAAAEBLQAAAAAAAAElAAAAAAAAAS0AAAAAAAIBMQAAAAAAAwEFAAAAAAADAUEAAAAAAAIA4QAAAAAAAwE9AAAAAAACAQUAAAAAAAIBGQAAAAAAAAEtAAAAAAACASkAAAAAAAABVQAAAAAAAwFZAAAAAAAAAP0AAAAAAAIBJQAAAAAAAgEVAAAAAAACASEAAAAAAAAA9QAAAAAAAAFNAAAAAAAAAREAAAAAAAMBTQAAAAAAAwEtAAAAAAAAAUUAAAAAAAEBQQAAAAAAAAFFAAAAAAABAUEAAAAAAAABNQAAAAAAAgEFAAAAAAADATUAAAAAAAABJQAAAAAAAwEdAAAAAAAAA+H8AAAAAAGBSQAAAAAAAgFFAAAAAAAAAREAAAAAAAMBQQAAAAAAAAPh/AAAAAADATkAAAAAAAMBUQAAAAAAAAERAAAAAAACASkAAAAAAAIBLQAAAAAAAQFRAAAAAAAAAUEAAAAAAAMBRQAAAAAAAgE1AAAAAAADAUEAAAAAAAABNQAAAAAAAAElAAAAAAADAVkAAAAAAAABJQAAAAAAAQFVAAAAAAAAAUEAAAAAAAIBUQAAAAAAAwE1AAAAAAAAATkAAAAAAAMBSQAAAAAAAwE1AAAAAAACAUkAAAAAAAABUQAAAAAAAQFRAAAAAAACASUAAAAAAAEBSQA==\"},\"shape\":[77],\"dtype\":\"float64\",\"order\":\"little\"}],[\"sci\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HQAAABMAAAAXAAAAGgAAABUAAAATAAAAHAAAAB0AAAARAAAAFgAAABwAAAAfAAAAHwAAACAAAAAZAAAAHgAAABwAAAAeAAAAFgAAABQAAAAaAAAAIAAAACAAAAAYAAAAGgAAAB4AAAAcAAAAFQAAAB0AAAAgAAAAGgAAABoAAAAXAAAAEgAAABYAAAAdAAAAFAAAABsAAAATAAAAHQAAABgAAAAdAAAAEQAAABoAAAAeAAAAEQAAABkAAAAfAAAAGwAAACAAAAAcAAAAGQAAAB4AAAAVAAAAHQAAABQAAAAWAAAAFwAAABQAAAARAAAAGwAAABsAAAAWAAAAGQAAAB4AAAAgAAAAHgAAACAAAAAcAAAAHwAAAB0AAAAaAAAAFAAAABMAAAAfAAAAFgAAABgAAAA=\"},\"shape\":[77],\"dtype\":\"int32\",\"order\":\"little\"}],[\"psqi\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AQAAAAUAAAABAAAABQAAAAcAAAAHAAAAAwAAAAMAAAAKAAAABAAAAAUAAAACAAAAAgAAAAIAAAAFAAAAAgAAAAMAAAADAAAABAAAAAkAAAAFAAAAAgAAAAEAAAAEAAAACAAAAAIAAAACAAAABgAAAAMAAAABAAAABQAAAAcAAAADAAAABgAAAAYAAAABAAAABgAAAAQAAAAEAAAAAwAAAAUAAAACAAAABwAAAAQAAAAAAAAABQAAAAEAAAABAAAABAAAAAEAAAAIAAAABAAAAAIAAAAHAAAABAAAAAEAAAAHAAAABAAAAAUAAAAGAAAABAAAAAIAAAADAAAABAAAAAMAAAABAAAABQAAAAIAAAABAAAAAQAAAAMAAAAGAAAACAAAAAgAAAACAAAABAAAAAUAAAA=\"},\"shape\":[77],\"dtype\":\"int32\",\"order\":\"little\"}],[\"ess\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BQAAAAEAAAADAAAABAAAAAUAAAAMAAAABAAAAAQAAAALAAAABgAAAAMAAAALAAAACgAAAAwAAAAGAAAADQAAAAwAAAAFAAAACgAAAAQAAAAEAAAABgAAAAMAAAAAAAAADAAAAAYAAAAFAAAACQAAAAcAAAAGAAAACgAAABIAAAALAAAACAAAABAAAAAHAAAACQAAAAsAAAAEAAAABwAAAAQAAAALAAAADAAAAAMAAAADAAAABAAAAAsAAAABAAAABAAAAAIAAAAJAAAAAQAAAAIAAAAMAAAABgAAAAUAAAAFAAAABAAAAAkAAAADAAAACAAAAAYAAAAKAAAAFQAAAAUAAAAFAAAACQAAAAEAAAAIAAAACwAAAAUAAAAHAAAACgAAAAcAAAAPAAAABwAAAAcAAAA=\"},\"shape\":[77],\"dtype\":\"int32\",\"order\":\"little\"}],[\"insomnia\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\"},\"shape\":[77],\"dtype\":\"bool\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1181\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1182\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1177\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"confidence when correct\"},\"y\":{\"type\":\"field\",\"field\":\"confidence when incorrect\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"hatch_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1178\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"confidence when correct\"},\"y\":{\"type\":\"field\",\"field\":\"confidence when incorrect\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1179\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"confidence when correct\"},\"y\":{\"type\":\"field\",\"field\":\"confidence when incorrect\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1131\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1144\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1145\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1146\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1147\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p1153\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p1152\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p1154\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1155\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1156\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1139\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1140\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1141\"},\"axis_label\":\"confidence when incorrect\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1142\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1134\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1135\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1136\"},\"axis_label\":\"confidence when correct\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1137\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1138\",\"attributes\":{\"axis\":{\"id\":\"p1134\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1143\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1139\"}}},{\"type\":\"object\",\"name\":\"Legend\",\"id\":\"p1169\",\"attributes\":{\"location\":\"top_left\",\"click_policy\":\"hide\",\"items\":[{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p1170\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"insomniacs\"},\"renderers\":[{\"id\":\"p1166\"}]}},{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p1183\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"normal sleepers\"},\"renderers\":[{\"id\":\"p1180\"}]}}]}}]}}]}};\n", " const render_items = [{\"docid\":\"e14b4d8b-9f40-43f6-8f20-11a3d795d52b\",\"roots\":{\"p1123\":\"afdd37e9-23c4-49e8-8646-4628f3fc4137\"},\"root_ids\":[\"p1123\"]}];\n", " void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " let attempts = 0;\n", " const timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p1123" } }, "output_type": "display_data" } ], "source": [ "p.legend.location = 'top_left'\n", "p.legend.click_policy = 'hide'\n", "\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Adding tooltips\n", "\n", "Bokeh's interactivity is one of its greatest strengths. While we are plotting confidences when correct and incorrect, we have colored with insomniac status. We might also like to have access to other information in our (tidy) data source if we hover over a glyph. Let's say we want to know the participant number, gender, and age of each participant. We can tell Bokeh to give us this information by adding **tooltips** when we instantiate the figure.\n", "\n", "The syntax for a tooltip is a list of 2-tuples, where each tuple represents the tooltip you want. The first entry in the tuple is the label and the second is the column from the data source that has the values. The second entry must be preceded with an `@` symbol signifying that it is a field in the data source and not field that is intrinsic to the plot, which is preceded with a `$` sign. If there are spaces in the column heading, enclose the column name in braces. (See the [documentation for tooltip specification](https://bokeh.pydata.org/en/latest/docs/user_guide/tools.html#basic-tooltips) for more information.)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " const docs_json = {\"5facd60a-7fa4-44ea-8452-afcf1a219140\":{\"version\":\"3.6.2\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1244\",\"attributes\":{\"width\":400,\"height\":300,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1245\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1246\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1253\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1254\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1251\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1288\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1279\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1280\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1281\"},\"data\":{\"type\":\"map\",\"entries\":[[\"participant number\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAARAAAAEwAAABQAAAAVAAAAFwAAABgAAAAZAAAAGgAAAB0AAAAfAAAAIAAAACQAAAAlAAAAJwAAACgAAAAqAAAAKwAAACwAAAAtAAAAMAAAADIAAAAzAAAANAAAADUAAAA2AAAAOAAAADkAAAA6AAAAOwAAADwAAAA9AAAAPgAAAD8AAABAAAAAQQAAAEIAAABDAAAARAAAAEUAAABGAAAASAAAAEkAAABKAAAASwAAAE8AAABRAAAAUgAAAFMAAABUAAAAVQAAAFYAAABXAAAAWAAAAFsAAABcAAAAXgAAAF8AAABgAAAAYQAAAGIAAABjAAAAZgAAAGcAAAA=\"},\"shape\":[77],\"dtype\":\"int32\",\"order\":\"little\"}],[\"gender\",{\"type\":\"ndarray\",\"array\":[\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"m\",\"f\",\"f\",\"m\",\"m\",\"m\",\"f\",\"m\",\"f\",\"f\",\"m\",\"m\",\"f\",\"f\",\"m\",\"f\",\"m\",\"f\",\"m\",\"f\",\"f\",\"m\",\"m\",\"f\",\"f\",\"f\",\"f\",\"m\",\"f\",\"f\",\"f\",\"f\",\"m\",\"f\",\"f\",\"f\",\"m\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"m\",\"f\",\"f\",\"m\",\"f\",\"f\",\"f\",\"f\",\"f\",\"m\",\"m\",\"m\",\"m\",\"f\",\"m\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\"],\"shape\":[77],\"dtype\":\"object\",\"order\":\"little\"}],[\"age\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"KgAAAC0AAAAQAAAAFQAAABIAAAAcAAAAJgAAABEAAAAZAAAAFgAAACkAAAA1AAAAKwAAABcAAAATAAAALQAAACsAAAAjAAAAGAAAAEAAAAAkAAAAIwAAACsAAAAsAAAAHQAAABYAAAAuAAAAIwAAADUAAAAdAAAAHwAAABUAAAAqAAAAFwAAADYAAAAYAAAAFQAAABUAAAArAAAAMgAAADUAAAAQAAAAQwAAACQAAAAiAAAAKgAAAC4AAABFAAAAHwAAACwAAAAZAAAALQAAAC8AAAAhAAAAEgAAAEoAAAAVAAAALQAAACUAAAApAAAAKQAAACIAAAAnAAAAEgAAAB8AAAAaAAAAQgAAAD4AAAAWAAAAKQAAAC4AAAA4AAAAFwAAAEYAAAAYAAAAKAAAACEAAAA=\"},\"shape\":[77],\"dtype\":\"int32\",\"order\":\"little\"}],[\"correct hit percentage\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UAAAAFAAAABGAAAARgAAAFoAAABfAAAAWgAAAFoAAABkAAAAUAAAAFoAAABfAAAAXwAAAFoAAAA3AAAAZAAAAEEAAABaAAAANwAAAEsAAABkAAAARgAAAFoAAABfAAAAXwAAAEYAAABQAAAAMgAAAEEAAABkAAAAVQAAAFUAAABaAAAAWgAAAFoAAABVAAAAVQAAAFoAAABfAAAARgAAAF8AAABVAAAAXwAAAFoAAABaAAAAZAAAAFAAAABfAAAAZAAAAFoAAABkAAAARgAAAFoAAABVAAAAUAAAAFUAAAAoAAAAUAAAAFoAAABaAAAAUAAAAFoAAABLAAAAVQAAAGQAAABfAAAAPAAAAGQAAABVAAAAIwAAAF8AAABGAAAARgAAAFoAAABGAAAASwAAAFUAAAA=\"},\"shape\":[77],\"dtype\":\"int32\",\"order\":\"little\"}],[\"correct reject percentage\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QQAAAFoAAABQAAAAQQAAAGQAAABQAAAAXwAAAFoAAABkAAAAPAAAAFAAAAA8AAAAWgAAAFAAAAA8AAAAVQAAAEEAAABkAAAAZAAAAFUAAABQAAAAWgAAAFUAAABaAAAANwAAAEEAAABLAAAAXwAAAFAAAABGAAAAWgAAAFoAAABaAAAAVQAAAEYAAABfAAAASwAAAFAAAABLAAAAVQAAAEsAAABVAAAASwAAAEEAAABaAAAAZAAAAFoAAABQAAAAXwAAAF8AAABkAAAAMgAAAGQAAABGAAAASwAAAFAAAAAoAAAAXwAAAFAAAABVAAAASwAAACMAAABGAAAAVQAAAFUAAABLAAAAVQAAAFAAAABfAAAASwAAAFAAAAAyAAAAVQAAAFUAAABQAAAAQQAAACgAAAA=\"},\"shape\":[77],\"dtype\":\"int32\",\"order\":\"little\"}],[\"percent correct\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAgUkAAAAAAAEBVQAAAAAAAwFJAAAAAAADgUEAAAAAAAMBXQAAAAAAA4FVAAAAAAAAgV0AAAAAAAIBWQAAAAAAAAFlAAAAAAACAUUAAAAAAAEBVQAAAAAAAYFNAAAAAAAAgV0AAAAAAAEBVQAAAAAAAwExAAAAAAAAgV0AAAAAAAEBQQAAAAAAAwFdAAAAAAABgU0AAAAAAAABUQAAAAAAAgFZAAAAAAAAAVEAAAAAAAOBVQAAAAAAAIFdAAAAAAADAUkAAAAAAAOBQQAAAAAAAYFNAAAAAAAAgUkAAAAAAACBSQAAAAAAAQFVAAAAAAADgVUAAAAAAAOBVQAAAAAAAgFZAAAAAAADgVUAAAAAAAABUQAAAAAAAgFZAAAAAAAAAVEAAAAAAAEBVQAAAAAAAQFVAAAAAAABgU0AAAAAAAEBVQAAAAAAAQFVAAAAAAABAVUAAAAAAAGBTQAAAAAAAgFZAAAAAAAAAWUAAAAAAAEBVQAAAAAAA4FVAAAAAAABgWEAAAAAAACBXQAAAAAAAAFlAAAAAAAAATkAAAAAAAMBXQAAAAAAAYFNAAAAAAABgU0AAAAAAAKBUQAAAAAAAAERAAAAAAADgVUAAAAAAAEBVQAAAAAAA4FVAAAAAAABgU0AAAAAAAEBPQAAAAAAAIFJAAAAAAABAVUAAAAAAACBXQAAAAAAAQFVAAAAAAAAgUkAAAAAAAIBWQAAAAAAAgFZAAAAAAACAS0AAAAAAAOBVQAAAAAAAAE5AAAAAAABgU0AAAAAAAOBVQAAAAAAAwFJAAAAAAACAUUAAAAAAAEBPQA==\"},\"shape\":[77],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence when correct hit\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAADASUAAAAAAAMBSQAAAAAAAgFFAAAAAAADAT0AAAAAAACBTQAAAAAAAAFlAAAAAAABAU0AAAAAAACBUQAAAAAAAgFZAAAAAAACAUUAAAAAAACBTQAAAAAAAAERAAAAAAAAASkAAAAAAAABWQAAAAAAAAE9AAAAAAAAAUUAAAAAAAIBNQAAAAAAA4FJAAAAAAAAAUUAAAAAAAABJQAAAAAAAAFZAAAAAAACAPUAAAAAAAGBQQAAAAAAAwFRAAAAAAADAUEAAAAAAAIBTQAAAAAAAIFJAAAAAAABAT0AAAAAAAABLQAAAAAAAwFJAAAAAAACAVEAAAAAAAIBQQAAAAAAAwFRAAAAAAADAUEAAAAAAAIBWQAAAAAAAQFhAAAAAAABAUEAAAAAAAABVQAAAAAAAgFJAAAAAAAAgV0AAAAAAAABVQAAAAAAAgEtAAAAAAACAUUAAAAAAAOBQQAAAAAAAQE1AAAAAAACgUkAAAAAAAABXQAAAAAAAAFRAAAAAAACAWEAAAAAAAMBVQAAAAAAAwE5AAAAAAAAgVEAAAAAAAABZQAAAAAAAgFFAAAAAAADgUEAAAAAAAIBQQAAAAAAAoFZAAAAAAACAUkAAAAAAAOBXQAAAAAAAAFRAAAAAAACgV0AAAAAAAEBUQAAAAAAAgExAAAAAAABAV0AAAAAAAABZQAAAAAAAQFVAAAAAAADgUEAAAAAAAEBUQAAAAAAAgFBAAAAAAACAS0AAAAAAAIBWQAAAAAAAgE9AAAAAAABAU0AAAAAAAGBQQAAAAAAAwE5AAAAAAACASkAAAAAAAABUQA==\"},\"shape\":[77],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence incorrect hit\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAABARkAAAAAAAMBLQAAAAAAAgExAAAAAAAAAUEAAAAAAAMBUQAAAAAAAQFVAAAAAAADARUAAAAAAAOBVQAAAAAAAAPh/AAAAAACAUUAAAAAAAMBLQAAAAAAAgEBAAAAAAAAAPUAAAAAAAABEQAAAAAAAAElAAAAAAAAA+H8AAAAAAIBLQAAAAAAAwEFAAAAAAADAUEAAAAAAAAA5QAAAAAAAAPh/AAAAAACAPEAAAAAAAAA7QAAAAAAAAExAAAAAAACASkAAAAAAAABWQAAAAAAAAFJAAAAAAAAAPUAAAAAAAABAQAAAAAAAAPh/AAAAAACASEAAAAAAAAA9QAAAAAAAwFRAAAAAAACAR0AAAAAAAOBUQAAAAAAAgERAAAAAAABAUkAAAAAAAMBLQAAAAAAAQFZAAAAAAAAgUkAAAAAAAIBLQAAAAAAAAD5AAAAAAAAAHEAAAAAAAIA8QAAAAAAAgEVAAAAAAAAA+H8AAAAAAOBSQAAAAAAAQFBAAAAAAAAA+H8AAAAAAMBHQAAAAAAAAPh/AAAAAADASUAAAAAAAAD4fwAAAAAAAENAAAAAAADASUAAAAAAAIBLQAAAAAAAAFRAAAAAAADAUEAAAAAAAABRQAAAAAAAwE1AAAAAAADATkAAAAAAAABKQAAAAAAAgExAAAAAAAAAV0AAAAAAAAD4fwAAAAAAAFZAAAAAAACAUEAAAAAAAAD4fwAAAAAAAExAAAAAAACATkAAAAAAAMBSQAAAAAAAQEpAAAAAAACgUEAAAAAAAGBVQAAAAAAAQFRAAAAAAACAQkAAAAAAAAA7QA==\"},\"shape\":[77],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence correct reject\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAACARUAAAAAAAABUQAAAAAAAAEtAAAAAAAAASUAAAAAAAABUQAAAAAAAgFdAAAAAAADAU0AAAAAAACBTQAAAAAAAQFVAAAAAAACAUUAAAAAAAOBQQAAAAAAAAExAAAAAAACASEAAAAAAAKBRQAAAAAAAgFBAAAAAAACATkAAAAAAAABQQAAAAAAAoFJAAAAAAAAAVEAAAAAAAIBQQAAAAAAAgFBAAAAAAAAAM0AAAAAAAIBEQAAAAAAAwFNAAAAAAABAUEAAAAAAAEBTQAAAAAAAAFlAAAAAAABAU0AAAAAAAMBHQAAAAAAAIFBAAAAAAABAVEAAAAAAAIBRQAAAAAAAIFRAAAAAAABAUUAAAAAAAGBTQAAAAAAAgFJAAAAAAAAATEAAAAAAAGBSQAAAAAAAAFFAAAAAAADAV0AAAAAAAABRQAAAAAAAAElAAAAAAABAUUAAAAAAAIBLQAAAAAAAYFJAAAAAAACAUkAAAAAAAABXQAAAAAAAoFNAAAAAAACAVkAAAAAAAEBRQAAAAAAAQE1AAAAAAACAT0AAAAAAAOBRQAAAAAAAQE1AAAAAAACAUEAAAAAAAIBPQAAAAAAAoFJAAAAAAAAAU0AAAAAAAOBUQAAAAAAAgFFAAAAAAACAVUAAAAAAAMBRQAAAAAAAwE1AAAAAAADAVkAAAAAAAABZQAAAAAAAgFRAAAAAAACAUkAAAAAAAKBSQAAAAAAAAFJAAAAAAAAAVEAAAAAAAABUQAAAAAAA4FBAAAAAAABAU0AAAAAAAMBVQAAAAAAAgFFAAAAAAAAAVUAAAAAAAAA/QA==\"},\"shape\":[77],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence incorrect reject\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAACASEAAAAAAAMBSQAAAAAAAgEpAAAAAAAAASUAAAAAAAAD4fwAAAAAAgE5AAAAAAAAANUAAAAAAAAA7QAAAAAAAAPh/AAAAAABAUEAAAAAAAEBKQAAAAAAAgEhAAAAAAAAAQkAAAAAAAKBQQAAAAAAAQElAAAAAAAAAS0AAAAAAAIBNQAAAAAAAAPh/AAAAAAAA+H8AAAAAAAA4QAAAAAAAwE9AAAAAAADAREAAAAAAAIBGQAAAAAAAQEVAAAAAAACASkAAAAAAAABUQAAAAAAAwFZAAAAAAAAAQEAAAAAAAKBTQAAAAAAAgEVAAAAAAAAAQkAAAAAAAAA9QAAAAAAAAEJAAAAAAAAAREAAAAAAAEBRQAAAAAAAQFJAAAAAAAAAUUAAAAAAAIBRQAAAAAAAQFBAAAAAAABAUEAAAAAAAIBOQAAAAAAAAERAAAAAAAAATkAAAAAAAABKQAAAAAAAwEpAAAAAAAAA+H8AAAAAAIBPQAAAAAAAoFFAAAAAAAAAREAAAAAAAMBVQAAAAAAAAPh/AAAAAABAUUAAAAAAAMBUQAAAAAAAQFBAAAAAAACATEAAAAAAAEBJQAAAAAAAwFRAAAAAAAAAMUAAAAAAAMBUQAAAAAAAgERAAAAAAACAUkAAAAAAAABNQAAAAAAAAElAAAAAAABAVkAAAAAAAABJQAAAAAAAgFRAAAAAAACATEAAAAAAAIBUQAAAAAAAgE9AAAAAAACATEAAAAAAAABUQAAAAAAAYFBAAAAAAABgU0AAAAAAAABUQAAAAAAAgE5AAAAAAAAASkAAAAAAAKBUQA==\"},\"shape\":[77],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence when correct\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAACASUAAAAAAAKBTQAAAAAAAgExAAAAAAAAATkAAAAAAAABUQAAAAAAAwFhAAAAAAACAU0AAAAAAAKBTQAAAAAAAgFZAAAAAAACAUUAAAAAAAIBSQAAAAAAAgEdAAAAAAAAASkAAAAAAAABVQAAAAAAAgE9AAAAAAAAAT0AAAAAAAMBNQAAAAAAA4FJAAAAAAACAU0AAAAAAAIBPQAAAAAAAQFRAAAAAAAAAOEAAAAAAAABJQAAAAAAAQFRAAAAAAADAUEAAAAAAAEBTQAAAAAAAAFlAAAAAAAAAUUAAAAAAAABIQAAAAAAAgFJAAAAAAACAVEAAAAAAAMBQQAAAAAAAoFRAAAAAAADAUEAAAAAAAABWQAAAAAAAwFRAAAAAAADAT0AAAAAAACBUQAAAAAAAwFFAAAAAAADAV0AAAAAAAKBTQAAAAAAAQEpAAAAAAABAUUAAAAAAAIBOQAAAAAAAgFBAAAAAAACAUkAAAAAAAABXQAAAAAAAAFRAAAAAAAAAV0AAAAAAAMBUQAAAAAAAQE5AAAAAAAAgUkAAAAAAAGBYQAAAAAAAAFFAAAAAAADAUEAAAAAAAEBQQAAAAAAAgFRAAAAAAADAUkAAAAAAAIBXQAAAAAAAQFNAAAAAAAAAV0AAAAAAAEBUQAAAAAAAAE1AAAAAAADgVkAAAAAAAABZQAAAAAAAQFVAAAAAAACAUkAAAAAAAOBTQAAAAAAAoFFAAAAAAAAAUkAAAAAAAEBVQAAAAAAAAFBAAAAAAABAU0AAAAAAAIBSQAAAAAAAQFBAAAAAAABAVEAAAAAAAEBUQA==\"},\"shape\":[77],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence when incorrect\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAACASEAAAAAAAMBQQAAAAAAAQEtAAAAAAAAASUAAAAAAAMBUQAAAAAAAQFBAAAAAAAAAQkAAAAAAAOBQQAAAAAAAAPh/AAAAAACAUUAAAAAAAMBLQAAAAAAAAEZAAAAAAAAAPUAAAAAAAEBLQAAAAAAAAElAAAAAAAAAS0AAAAAAAIBMQAAAAAAAwEFAAAAAAADAUEAAAAAAAIA4QAAAAAAAwE9AAAAAAACAQUAAAAAAAIBGQAAAAAAAAEtAAAAAAACASkAAAAAAAABVQAAAAAAAwFZAAAAAAAAAP0AAAAAAAIBJQAAAAAAAgEVAAAAAAACASEAAAAAAAAA9QAAAAAAAAFNAAAAAAAAAREAAAAAAAMBTQAAAAAAAwEtAAAAAAAAAUUAAAAAAAEBQQAAAAAAAAFFAAAAAAABAUEAAAAAAAABNQAAAAAAAgEFAAAAAAADATUAAAAAAAABJQAAAAAAAwEdAAAAAAAAA+H8AAAAAAGBSQAAAAAAAgFFAAAAAAAAAREAAAAAAAMBQQAAAAAAAAPh/AAAAAADATkAAAAAAAMBUQAAAAAAAAERAAAAAAACASkAAAAAAAIBLQAAAAAAAQFRAAAAAAAAAUEAAAAAAAMBRQAAAAAAAgE1AAAAAAADAUEAAAAAAAABNQAAAAAAAAElAAAAAAADAVkAAAAAAAABJQAAAAAAAQFVAAAAAAAAAUEAAAAAAAIBUQAAAAAAAwE1AAAAAAAAATkAAAAAAAMBSQAAAAAAAwE1AAAAAAACAUkAAAAAAAABUQAAAAAAAQFRAAAAAAACASUAAAAAAAEBSQA==\"},\"shape\":[77],\"dtype\":\"float64\",\"order\":\"little\"}],[\"sci\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HQAAABMAAAAXAAAAGgAAABUAAAATAAAAHAAAAB0AAAARAAAAFgAAABwAAAAfAAAAHwAAACAAAAAZAAAAHgAAABwAAAAeAAAAFgAAABQAAAAaAAAAIAAAACAAAAAYAAAAGgAAAB4AAAAcAAAAFQAAAB0AAAAgAAAAGgAAABoAAAAXAAAAEgAAABYAAAAdAAAAFAAAABsAAAATAAAAHQAAABgAAAAdAAAAEQAAABoAAAAeAAAAEQAAABkAAAAfAAAAGwAAACAAAAAcAAAAGQAAAB4AAAAVAAAAHQAAABQAAAAWAAAAFwAAABQAAAARAAAAGwAAABsAAAAWAAAAGQAAAB4AAAAgAAAAHgAAACAAAAAcAAAAHwAAAB0AAAAaAAAAFAAAABMAAAAfAAAAFgAAABgAAAA=\"},\"shape\":[77],\"dtype\":\"int32\",\"order\":\"little\"}],[\"psqi\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AQAAAAUAAAABAAAABQAAAAcAAAAHAAAAAwAAAAMAAAAKAAAABAAAAAUAAAACAAAAAgAAAAIAAAAFAAAAAgAAAAMAAAADAAAABAAAAAkAAAAFAAAAAgAAAAEAAAAEAAAACAAAAAIAAAACAAAABgAAAAMAAAABAAAABQAAAAcAAAADAAAABgAAAAYAAAABAAAABgAAAAQAAAAEAAAAAwAAAAUAAAACAAAABwAAAAQAAAAAAAAABQAAAAEAAAABAAAABAAAAAEAAAAIAAAABAAAAAIAAAAHAAAABAAAAAEAAAAHAAAABAAAAAUAAAAGAAAABAAAAAIAAAADAAAABAAAAAMAAAABAAAABQAAAAIAAAABAAAAAQAAAAMAAAAGAAAACAAAAAgAAAACAAAABAAAAAUAAAA=\"},\"shape\":[77],\"dtype\":\"int32\",\"order\":\"little\"}],[\"ess\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BQAAAAEAAAADAAAABAAAAAUAAAAMAAAABAAAAAQAAAALAAAABgAAAAMAAAALAAAACgAAAAwAAAAGAAAADQAAAAwAAAAFAAAACgAAAAQAAAAEAAAABgAAAAMAAAAAAAAADAAAAAYAAAAFAAAACQAAAAcAAAAGAAAACgAAABIAAAALAAAACAAAABAAAAAHAAAACQAAAAsAAAAEAAAABwAAAAQAAAALAAAADAAAAAMAAAADAAAABAAAAAsAAAABAAAABAAAAAIAAAAJAAAAAQAAAAIAAAAMAAAABgAAAAUAAAAFAAAABAAAAAkAAAADAAAACAAAAAYAAAAKAAAAFQAAAAUAAAAFAAAACQAAAAEAAAAIAAAACwAAAAUAAAAHAAAACgAAAAcAAAAPAAAABwAAAAcAAAA=\"},\"shape\":[77],\"dtype\":\"int32\",\"order\":\"little\"}],[\"insomnia\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\"},\"shape\":[77],\"dtype\":\"bool\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1289\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1290\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1285\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"confidence when correct\"},\"y\":{\"type\":\"field\",\"field\":\"confidence when incorrect\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"hatch_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1286\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"confidence when correct\"},\"y\":{\"type\":\"field\",\"field\":\"confidence when incorrect\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1287\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"confidence when correct\"},\"y\":{\"type\":\"field\",\"field\":\"confidence when incorrect\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1302\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1293\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1294\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1295\"},\"data\":{\"type\":\"map\",\"entries\":[[\"participant number\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CAAAABAAAAASAAAAFgAAABsAAAAcAAAAHgAAACEAAAAiAAAAIwAAACYAAAApAAAALgAAADEAAAA3AAAARwAAAEwAAABNAAAATgAAAFAAAABZAAAAWgAAAF0AAABkAAAAZQAAAA==\"},\"shape\":[25],\"dtype\":\"int32\",\"order\":\"little\"}],[\"gender\",{\"type\":\"ndarray\",\"array\":[\"f\",\"m\",\"f\",\"f\",\"f\",\"f\",\"m\",\"m\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"m\",\"m\",\"f\",\"m\",\"f\",\"f\",\"f\"],\"shape\":[25],\"dtype\":\"object\",\"order\":\"little\"}],[\"age\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"JwAAACoAAAAfAAAAIwAAAEoAAAA9AAAAIAAAAD4AAAAhAAAANQAAACkAAAAkAAAAKAAAABgAAAAgAAAAKAAAAD0AAAAqAAAAHwAAABwAAAAaAAAALQAAABwAAAAsAAAAHAAAAA==\"},\"shape\":[25],\"dtype\":\"int32\",\"order\":\"little\"}],[\"correct hit percentage\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QQAAAFoAAABaAAAAZAAAADwAAABQAAAAWgAAAC0AAABQAAAAZAAAAEYAAABaAAAAXwAAAFUAAABLAAAAKAAAAGQAAABGAAAAZAAAAGQAAAA8AAAAZAAAAGQAAABBAAAAZAAAAA==\"},\"shape\":[25],\"dtype\":\"int32\",\"order\":\"little\"}],[\"correct reject percentage\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UAAAAFoAAABfAAAASwAAAEEAAAAUAAAASwAAAFoAAABkAAAAMgAAADcAAABkAAAAQQAAAEsAAAA3AAAAZAAAACgAAABaAAAARgAAADIAAABQAAAAXwAAAEsAAAAZAAAAKAAAAA==\"},\"shape\":[25],\"dtype\":\"int32\",\"order\":\"little\"}],[\"percent correct\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAgUkAAAAAAAIBWQAAAAAAAIFdAAAAAAADgVUAAAAAAAEBPQAAAAAAAAElAAAAAAACgVEAAAAAAAOBQQAAAAAAAgFZAAAAAAADAUkAAAAAAAEBPQAAAAAAAwFdAAAAAAAAAVEAAAAAAAABUQAAAAAAAQFBAAAAAAACAUUAAAAAAAIBRQAAAAAAAAFRAAAAAAABAVUAAAAAAAMBSQAAAAAAAgFFAAAAAAABgWEAAAAAAAOBVQAAAAAAAgEZAAAAAAACAUUA=\"},\"shape\":[25],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence when correct hit\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAADAVkAAAAAAAOBSQAAAAAAAYFZAAAAAAABgVkAAAAAAACBRQAAAAAAAwFFAAAAAAADAUEAAAAAAAABLQAAAAAAAoFFAAAAAAACgUkAAAAAAAIBUQAAAAAAAIFNAAAAAAAAAVEAAAAAAAABNQAAAAAAAQFVAAAAAAABAUUAAAAAAAGBRQAAAAAAAwFVAAAAAAAAAV0AAAAAAAABZQAAAAAAAgFFAAAAAAAAAWUAAAAAAAGBWQAAAAAAAAE9AAAAAAADAVUA=\"},\"shape\":[25],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence incorrect hit\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAACAVkAAAAAAAMBLQAAAAAAAgFZAAAAAAAAA+H8AAAAAAIBIQAAAAAAAgE9AAAAAAABATEAAAAAAAIBCQAAAAAAAIFNAAAAAAAAA+H8AAAAAAMBOQAAAAAAA4FJAAAAAAABAVkAAAAAAAABJQAAAAAAAQFRAAAAAAAAATEAAAAAAAAD4fwAAAAAAAFJAAAAAAAAA+H8AAAAAAAD4fwAAAAAAQFNAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAFJAAAAAAAAA+H8=\"},\"shape\":[25],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence correct reject\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAABAV0AAAAAAAKBRQAAAAAAAgFVAAAAAAADAUUAAAAAAAIBOQAAAAAAAAD9AAAAAAACAUEAAAAAAAEBQQAAAAAAAIFBAAAAAAABATkAAAAAAAEBSQAAAAAAAwFJAAAAAAADAU0AAAAAAAIBIQAAAAAAAQFVAAAAAAACAUUAAAAAAAEBGQAAAAAAAoFZAAAAAAABAVEAAAAAAAABZQAAAAAAAgFRAAAAAAAAAWUAAAAAAAMBQQAAAAAAAwFVAAAAAAAAAUUA=\"},\"shape\":[25],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence incorrect reject\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAADgVEAAAAAAAABJQAAAAAAAQFRAAAAAAAAAVEAAAAAAAIBIQAAAAAAAIFJAAAAAAABAUEAAAAAAAGBUQAAAAAAAAPh/AAAAAABAUEAAAAAAAEBRQAAAAAAAAPh/AAAAAABATUAAAAAAAABRQAAAAAAAgFVAAAAAAAAA+H8AAAAAAEBSQAAAAAAAwEVAAAAAAAAATkAAAAAAAABZQAAAAAAA4FBAAAAAAAAAWUAAAAAAAABOQAAAAAAAQFNAAAAAAAAAS0A=\"},\"shape\":[25],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence when correct\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAABAV0AAAAAAAMBSQAAAAAAAQFZAAAAAAAAAVkAAAAAAAEBQQAAAAAAAIFBAAAAAAACAUEAAAAAAAABPQAAAAAAAAFFAAAAAAADAUUAAAAAAAIBUQAAAAAAAAFNAAAAAAADgU0AAAAAAAIBLQAAAAAAAQFVAAAAAAACAUUAAAAAAAEBLQAAAAAAAIFZAAAAAAADgVUAAAAAAAABZQAAAAAAAQFNAAAAAAAAAWUAAAAAAAABUQAAAAAAAYFFAAAAAAABAVEA=\"},\"shape\":[25],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence when incorrect\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAACAVkAAAAAAAABJQAAAAAAAAFZAAAAAAAAAVEAAAAAAAIBIQAAAAAAAoFFAAAAAAAAAUEAAAAAAAIBOQAAAAAAAIFNAAAAAAABAUEAAAAAAAABQQAAAAAAA4FJAAAAAAACAT0AAAAAAAIBNQAAAAAAA4FRAAAAAAAAATEAAAAAAAEBSQAAAAAAAAFBAAAAAAAAATkAAAAAAAABZQAAAAAAAoFFAAAAAAAAAWUAAAAAAAABOQAAAAAAAYFJAAAAAAAAAS0A=\"},\"shape\":[25],\"dtype\":\"float64\",\"order\":\"little\"}],[\"sci\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CQAAAAQAAAAKAAAADQAAAA0AAAAPAAAAEAAAAA4AAAAOAAAADgAAAA4AAAAPAAAACgAAAA4AAAAFAAAAAAAAABAAAAALAAAADgAAAAwAAAAOAAAADgAAABAAAAABAAAADgAAAA==\"},\"shape\":[25],\"dtype\":\"int32\",\"order\":\"little\"}],[\"psqi\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DQAAAAsAAAAJAAAACAAAAAkAAAAOAAAACQAAAAkAAAAMAAAACAAAAAUAAAAHAAAADAAAAA0AAAANAAAACwAAAAQAAAAKAAAABgAAAAcAAAAIAAAACQAAAAcAAAAPAAAABwAAAA==\"},\"shape\":[25],\"dtype\":\"int32\",\"order\":\"little\"}],[\"ess\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AgAAAAcAAAADAAAAFAAAAAwAAAACAAAAAwAAAAkAAAAKAAAABwAAABMAAAAAAAAACAAAAAQAAAAHAAAADgAAAAwAAAAKAAAACwAAAAwAAAABAAAABgAAAAQAAAAGAAAAAgAAAA==\"},\"shape\":[25],\"dtype\":\"int32\",\"order\":\"little\"}],[\"insomnia\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ==\"},\"shape\":[25],\"dtype\":\"bool\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1303\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1304\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1299\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"confidence when correct\"},\"y\":{\"type\":\"field\",\"field\":\"confidence when incorrect\"},\"line_color\":{\"type\":\"value\",\"value\":\"orange\"},\"fill_color\":{\"type\":\"value\",\"value\":\"orange\"},\"hatch_color\":{\"type\":\"value\",\"value\":\"orange\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1300\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"confidence when correct\"},\"y\":{\"type\":\"field\",\"field\":\"confidence when incorrect\"},\"line_color\":{\"type\":\"value\",\"value\":\"orange\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"orange\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_color\":{\"type\":\"value\",\"value\":\"orange\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1301\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"confidence when correct\"},\"y\":{\"type\":\"field\",\"field\":\"confidence when incorrect\"},\"line_color\":{\"type\":\"value\",\"value\":\"orange\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"orange\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_color\":{\"type\":\"value\",\"value\":\"orange\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1252\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1265\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1266\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1267\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1268\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p1274\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p1273\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p1275\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1276\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1277\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p1278\",\"attributes\":{\"renderers\":\"auto\",\"tooltips\":[[\"p-number\",\"@{participant number}\"],[\"gender\",\"@gender\"],[\"age\",\"@age\"]]}}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1260\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1261\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1262\"},\"axis_label\":\"confidence when incorrect\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1263\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1255\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1256\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1257\"},\"axis_label\":\"confidence when correct\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1258\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1259\",\"attributes\":{\"axis\":{\"id\":\"p1255\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1264\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1260\"}}},{\"type\":\"object\",\"name\":\"Legend\",\"id\":\"p1291\",\"attributes\":{\"location\":\"top_left\",\"click_policy\":\"hide\",\"items\":[{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p1292\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"normal sleepers\"},\"renderers\":[{\"id\":\"p1288\"}]}},{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p1305\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"insomniacs\"},\"renderers\":[{\"id\":\"p1302\"}]}}]}}]}}]}};\n", " const render_items = [{\"docid\":\"5facd60a-7fa4-44ea-8452-afcf1a219140\",\"roots\":{\"p1244\":\"b63062b5-316a-40b7-b98f-de5157e992e7\"},\"root_ids\":[\"p1244\"]}];\n", " void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " let attempts = 0;\n", " const timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p1244" } }, "output_type": "display_data" } ], "source": [ "# For convenience\n", "x = \"confidence when correct\"\n", "y = \"confidence when incorrect\"\n", "\n", "# Make figure\n", "p = bokeh.plotting.figure(\n", " width=400,\n", " height=300,\n", " x_axis_label=x,\n", " y_axis_label=y,\n", " tooltips=[\n", " (\"p-number\", \"@{participant number}\"),\n", " (\"gender\", \"@gender\"),\n", " (\"age\", \"@age\"),\n", " ],\n", ")\n", "\n", "# Add glyphs\n", "colors = {'normal sleepers': '#1f77b4', 'insomniacs': 'orange'}\n", "for (insom,), sub_df in df.group_by('insomnia'):\n", " category = \"insomniacs\" if insom else \"normal sleepers\"\n", " p.scatter(\n", " source=sub_df.to_dict(),\n", " x=x,\n", " y=y,\n", " color=colors[category],\n", " legend_label=category,\n", " )\n", "\n", "p.legend.location = \"top_left\"\n", "p.legend.click_policy = \"hide\"\n", "\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Saving Bokeh plots\n", "\n", "After you create your plot, you can save it to a variety of formats. Most commonly you would save them as PNG (for presentations), SVG (for publications in the paper of the past), and HTML (for the paper of the future or sharing with colleagues). \n", "\n", "To save as a PNG for quick use, you can click the disk icon in the tool bar. \n", "\n", "To save to SVG, you first change the output backend to `'svg'` and then you can click the disk icon again, and you will get an SVG rendering of the plot. After saving the SVG, you should change the output backend back to `'canvas'` because it has much better in-browser performance." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " const docs_json = {\"183d38fd-5863-4368-a56a-fa039601667f\":{\"version\":\"3.6.2\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1244\",\"attributes\":{\"width\":400,\"height\":300,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1245\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1246\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1253\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1254\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1251\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1288\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1279\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1280\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1281\"},\"data\":{\"type\":\"map\",\"entries\":[[\"participant number\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAARAAAAEwAAABQAAAAVAAAAFwAAABgAAAAZAAAAGgAAAB0AAAAfAAAAIAAAACQAAAAlAAAAJwAAACgAAAAqAAAAKwAAACwAAAAtAAAAMAAAADIAAAAzAAAANAAAADUAAAA2AAAAOAAAADkAAAA6AAAAOwAAADwAAAA9AAAAPgAAAD8AAABAAAAAQQAAAEIAAABDAAAARAAAAEUAAABGAAAASAAAAEkAAABKAAAASwAAAE8AAABRAAAAUgAAAFMAAABUAAAAVQAAAFYAAABXAAAAWAAAAFsAAABcAAAAXgAAAF8AAABgAAAAYQAAAGIAAABjAAAAZgAAAGcAAAA=\"},\"shape\":[77],\"dtype\":\"int32\",\"order\":\"little\"}],[\"gender\",{\"type\":\"ndarray\",\"array\":[\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"m\",\"f\",\"f\",\"m\",\"m\",\"m\",\"f\",\"m\",\"f\",\"f\",\"m\",\"m\",\"f\",\"f\",\"m\",\"f\",\"m\",\"f\",\"m\",\"f\",\"f\",\"m\",\"m\",\"f\",\"f\",\"f\",\"f\",\"m\",\"f\",\"f\",\"f\",\"f\",\"m\",\"f\",\"f\",\"f\",\"m\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"m\",\"f\",\"f\",\"m\",\"f\",\"f\",\"f\",\"f\",\"f\",\"m\",\"m\",\"m\",\"m\",\"f\",\"m\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\"],\"shape\":[77],\"dtype\":\"object\",\"order\":\"little\"}],[\"age\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"KgAAAC0AAAAQAAAAFQAAABIAAAAcAAAAJgAAABEAAAAZAAAAFgAAACkAAAA1AAAAKwAAABcAAAATAAAALQAAACsAAAAjAAAAGAAAAEAAAAAkAAAAIwAAACsAAAAsAAAAHQAAABYAAAAuAAAAIwAAADUAAAAdAAAAHwAAABUAAAAqAAAAFwAAADYAAAAYAAAAFQAAABUAAAArAAAAMgAAADUAAAAQAAAAQwAAACQAAAAiAAAAKgAAAC4AAABFAAAAHwAAACwAAAAZAAAALQAAAC8AAAAhAAAAEgAAAEoAAAAVAAAALQAAACUAAAApAAAAKQAAACIAAAAnAAAAEgAAAB8AAAAaAAAAQgAAAD4AAAAWAAAAKQAAAC4AAAA4AAAAFwAAAEYAAAAYAAAAKAAAACEAAAA=\"},\"shape\":[77],\"dtype\":\"int32\",\"order\":\"little\"}],[\"correct hit percentage\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UAAAAFAAAABGAAAARgAAAFoAAABfAAAAWgAAAFoAAABkAAAAUAAAAFoAAABfAAAAXwAAAFoAAAA3AAAAZAAAAEEAAABaAAAANwAAAEsAAABkAAAARgAAAFoAAABfAAAAXwAAAEYAAABQAAAAMgAAAEEAAABkAAAAVQAAAFUAAABaAAAAWgAAAFoAAABVAAAAVQAAAFoAAABfAAAARgAAAF8AAABVAAAAXwAAAFoAAABaAAAAZAAAAFAAAABfAAAAZAAAAFoAAABkAAAARgAAAFoAAABVAAAAUAAAAFUAAAAoAAAAUAAAAFoAAABaAAAAUAAAAFoAAABLAAAAVQAAAGQAAABfAAAAPAAAAGQAAABVAAAAIwAAAF8AAABGAAAARgAAAFoAAABGAAAASwAAAFUAAAA=\"},\"shape\":[77],\"dtype\":\"int32\",\"order\":\"little\"}],[\"correct reject percentage\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QQAAAFoAAABQAAAAQQAAAGQAAABQAAAAXwAAAFoAAABkAAAAPAAAAFAAAAA8AAAAWgAAAFAAAAA8AAAAVQAAAEEAAABkAAAAZAAAAFUAAABQAAAAWgAAAFUAAABaAAAANwAAAEEAAABLAAAAXwAAAFAAAABGAAAAWgAAAFoAAABaAAAAVQAAAEYAAABfAAAASwAAAFAAAABLAAAAVQAAAEsAAABVAAAASwAAAEEAAABaAAAAZAAAAFoAAABQAAAAXwAAAF8AAABkAAAAMgAAAGQAAABGAAAASwAAAFAAAAAoAAAAXwAAAFAAAABVAAAASwAAACMAAABGAAAAVQAAAFUAAABLAAAAVQAAAFAAAABfAAAASwAAAFAAAAAyAAAAVQAAAFUAAABQAAAAQQAAACgAAAA=\"},\"shape\":[77],\"dtype\":\"int32\",\"order\":\"little\"}],[\"percent correct\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAgUkAAAAAAAEBVQAAAAAAAwFJAAAAAAADgUEAAAAAAAMBXQAAAAAAA4FVAAAAAAAAgV0AAAAAAAIBWQAAAAAAAAFlAAAAAAACAUUAAAAAAAEBVQAAAAAAAYFNAAAAAAAAgV0AAAAAAAEBVQAAAAAAAwExAAAAAAAAgV0AAAAAAAEBQQAAAAAAAwFdAAAAAAABgU0AAAAAAAABUQAAAAAAAgFZAAAAAAAAAVEAAAAAAAOBVQAAAAAAAIFdAAAAAAADAUkAAAAAAAOBQQAAAAAAAYFNAAAAAAAAgUkAAAAAAACBSQAAAAAAAQFVAAAAAAADgVUAAAAAAAOBVQAAAAAAAgFZAAAAAAADgVUAAAAAAAABUQAAAAAAAgFZAAAAAAAAAVEAAAAAAAEBVQAAAAAAAQFVAAAAAAABgU0AAAAAAAEBVQAAAAAAAQFVAAAAAAABAVUAAAAAAAGBTQAAAAAAAgFZAAAAAAAAAWUAAAAAAAEBVQAAAAAAA4FVAAAAAAABgWEAAAAAAACBXQAAAAAAAAFlAAAAAAAAATkAAAAAAAMBXQAAAAAAAYFNAAAAAAABgU0AAAAAAAKBUQAAAAAAAAERAAAAAAADgVUAAAAAAAEBVQAAAAAAA4FVAAAAAAABgU0AAAAAAAEBPQAAAAAAAIFJAAAAAAABAVUAAAAAAACBXQAAAAAAAQFVAAAAAAAAgUkAAAAAAAIBWQAAAAAAAgFZAAAAAAACAS0AAAAAAAOBVQAAAAAAAAE5AAAAAAABgU0AAAAAAAOBVQAAAAAAAwFJAAAAAAACAUUAAAAAAAEBPQA==\"},\"shape\":[77],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence when correct hit\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAADASUAAAAAAAMBSQAAAAAAAgFFAAAAAAADAT0AAAAAAACBTQAAAAAAAAFlAAAAAAABAU0AAAAAAACBUQAAAAAAAgFZAAAAAAACAUUAAAAAAACBTQAAAAAAAAERAAAAAAAAASkAAAAAAAABWQAAAAAAAAE9AAAAAAAAAUUAAAAAAAIBNQAAAAAAA4FJAAAAAAAAAUUAAAAAAAABJQAAAAAAAAFZAAAAAAACAPUAAAAAAAGBQQAAAAAAAwFRAAAAAAADAUEAAAAAAAIBTQAAAAAAAIFJAAAAAAABAT0AAAAAAAABLQAAAAAAAwFJAAAAAAACAVEAAAAAAAIBQQAAAAAAAwFRAAAAAAADAUEAAAAAAAIBWQAAAAAAAQFhAAAAAAABAUEAAAAAAAABVQAAAAAAAgFJAAAAAAAAgV0AAAAAAAABVQAAAAAAAgEtAAAAAAACAUUAAAAAAAOBQQAAAAAAAQE1AAAAAAACgUkAAAAAAAABXQAAAAAAAAFRAAAAAAACAWEAAAAAAAMBVQAAAAAAAwE5AAAAAAAAgVEAAAAAAAABZQAAAAAAAgFFAAAAAAADgUEAAAAAAAIBQQAAAAAAAoFZAAAAAAACAUkAAAAAAAOBXQAAAAAAAAFRAAAAAAACgV0AAAAAAAEBUQAAAAAAAgExAAAAAAABAV0AAAAAAAABZQAAAAAAAQFVAAAAAAADgUEAAAAAAAEBUQAAAAAAAgFBAAAAAAACAS0AAAAAAAIBWQAAAAAAAgE9AAAAAAABAU0AAAAAAAGBQQAAAAAAAwE5AAAAAAACASkAAAAAAAABUQA==\"},\"shape\":[77],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence incorrect hit\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAABARkAAAAAAAMBLQAAAAAAAgExAAAAAAAAAUEAAAAAAAMBUQAAAAAAAQFVAAAAAAADARUAAAAAAAOBVQAAAAAAAAPh/AAAAAACAUUAAAAAAAMBLQAAAAAAAgEBAAAAAAAAAPUAAAAAAAABEQAAAAAAAAElAAAAAAAAA+H8AAAAAAIBLQAAAAAAAwEFAAAAAAADAUEAAAAAAAAA5QAAAAAAAAPh/AAAAAACAPEAAAAAAAAA7QAAAAAAAAExAAAAAAACASkAAAAAAAABWQAAAAAAAAFJAAAAAAAAAPUAAAAAAAABAQAAAAAAAAPh/AAAAAACASEAAAAAAAAA9QAAAAAAAwFRAAAAAAACAR0AAAAAAAOBUQAAAAAAAgERAAAAAAABAUkAAAAAAAMBLQAAAAAAAQFZAAAAAAAAgUkAAAAAAAIBLQAAAAAAAAD5AAAAAAAAAHEAAAAAAAIA8QAAAAAAAgEVAAAAAAAAA+H8AAAAAAOBSQAAAAAAAQFBAAAAAAAAA+H8AAAAAAMBHQAAAAAAAAPh/AAAAAADASUAAAAAAAAD4fwAAAAAAAENAAAAAAADASUAAAAAAAIBLQAAAAAAAAFRAAAAAAADAUEAAAAAAAABRQAAAAAAAwE1AAAAAAADATkAAAAAAAABKQAAAAAAAgExAAAAAAAAAV0AAAAAAAAD4fwAAAAAAAFZAAAAAAACAUEAAAAAAAAD4fwAAAAAAAExAAAAAAACATkAAAAAAAMBSQAAAAAAAQEpAAAAAAACgUEAAAAAAAGBVQAAAAAAAQFRAAAAAAACAQkAAAAAAAAA7QA==\"},\"shape\":[77],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence correct reject\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAACARUAAAAAAAABUQAAAAAAAAEtAAAAAAAAASUAAAAAAAABUQAAAAAAAgFdAAAAAAADAU0AAAAAAACBTQAAAAAAAQFVAAAAAAACAUUAAAAAAAOBQQAAAAAAAAExAAAAAAACASEAAAAAAAKBRQAAAAAAAgFBAAAAAAACATkAAAAAAAABQQAAAAAAAoFJAAAAAAAAAVEAAAAAAAIBQQAAAAAAAgFBAAAAAAAAAM0AAAAAAAIBEQAAAAAAAwFNAAAAAAABAUEAAAAAAAEBTQAAAAAAAAFlAAAAAAABAU0AAAAAAAMBHQAAAAAAAIFBAAAAAAABAVEAAAAAAAIBRQAAAAAAAIFRAAAAAAABAUUAAAAAAAGBTQAAAAAAAgFJAAAAAAAAATEAAAAAAAGBSQAAAAAAAAFFAAAAAAADAV0AAAAAAAABRQAAAAAAAAElAAAAAAABAUUAAAAAAAIBLQAAAAAAAYFJAAAAAAACAUkAAAAAAAABXQAAAAAAAoFNAAAAAAACAVkAAAAAAAEBRQAAAAAAAQE1AAAAAAACAT0AAAAAAAOBRQAAAAAAAQE1AAAAAAACAUEAAAAAAAIBPQAAAAAAAoFJAAAAAAAAAU0AAAAAAAOBUQAAAAAAAgFFAAAAAAACAVUAAAAAAAMBRQAAAAAAAwE1AAAAAAADAVkAAAAAAAABZQAAAAAAAgFRAAAAAAACAUkAAAAAAAKBSQAAAAAAAAFJAAAAAAAAAVEAAAAAAAABUQAAAAAAA4FBAAAAAAABAU0AAAAAAAMBVQAAAAAAAgFFAAAAAAAAAVUAAAAAAAAA/QA==\"},\"shape\":[77],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence incorrect reject\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAACASEAAAAAAAMBSQAAAAAAAgEpAAAAAAAAASUAAAAAAAAD4fwAAAAAAgE5AAAAAAAAANUAAAAAAAAA7QAAAAAAAAPh/AAAAAABAUEAAAAAAAEBKQAAAAAAAgEhAAAAAAAAAQkAAAAAAAKBQQAAAAAAAQElAAAAAAAAAS0AAAAAAAIBNQAAAAAAAAPh/AAAAAAAA+H8AAAAAAAA4QAAAAAAAwE9AAAAAAADAREAAAAAAAIBGQAAAAAAAQEVAAAAAAACASkAAAAAAAABUQAAAAAAAwFZAAAAAAAAAQEAAAAAAAKBTQAAAAAAAgEVAAAAAAAAAQkAAAAAAAAA9QAAAAAAAAEJAAAAAAAAAREAAAAAAAEBRQAAAAAAAQFJAAAAAAAAAUUAAAAAAAIBRQAAAAAAAQFBAAAAAAABAUEAAAAAAAIBOQAAAAAAAAERAAAAAAAAATkAAAAAAAABKQAAAAAAAwEpAAAAAAAAA+H8AAAAAAIBPQAAAAAAAoFFAAAAAAAAAREAAAAAAAMBVQAAAAAAAAPh/AAAAAABAUUAAAAAAAMBUQAAAAAAAQFBAAAAAAACATEAAAAAAAEBJQAAAAAAAwFRAAAAAAAAAMUAAAAAAAMBUQAAAAAAAgERAAAAAAACAUkAAAAAAAABNQAAAAAAAAElAAAAAAABAVkAAAAAAAABJQAAAAAAAgFRAAAAAAACATEAAAAAAAIBUQAAAAAAAgE9AAAAAAACATEAAAAAAAABUQAAAAAAAYFBAAAAAAABgU0AAAAAAAABUQAAAAAAAgE5AAAAAAAAASkAAAAAAAKBUQA==\"},\"shape\":[77],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence when correct\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAACASUAAAAAAAKBTQAAAAAAAgExAAAAAAAAATkAAAAAAAABUQAAAAAAAwFhAAAAAAACAU0AAAAAAAKBTQAAAAAAAgFZAAAAAAACAUUAAAAAAAIBSQAAAAAAAgEdAAAAAAAAASkAAAAAAAABVQAAAAAAAgE9AAAAAAAAAT0AAAAAAAMBNQAAAAAAA4FJAAAAAAACAU0AAAAAAAIBPQAAAAAAAQFRAAAAAAAAAOEAAAAAAAABJQAAAAAAAQFRAAAAAAADAUEAAAAAAAEBTQAAAAAAAAFlAAAAAAAAAUUAAAAAAAABIQAAAAAAAgFJAAAAAAACAVEAAAAAAAMBQQAAAAAAAoFRAAAAAAADAUEAAAAAAAABWQAAAAAAAwFRAAAAAAADAT0AAAAAAACBUQAAAAAAAwFFAAAAAAADAV0AAAAAAAKBTQAAAAAAAQEpAAAAAAABAUUAAAAAAAIBOQAAAAAAAgFBAAAAAAACAUkAAAAAAAABXQAAAAAAAAFRAAAAAAAAAV0AAAAAAAMBUQAAAAAAAQE5AAAAAAAAgUkAAAAAAAGBYQAAAAAAAAFFAAAAAAADAUEAAAAAAAEBQQAAAAAAAgFRAAAAAAADAUkAAAAAAAIBXQAAAAAAAQFNAAAAAAAAAV0AAAAAAAEBUQAAAAAAAAE1AAAAAAADgVkAAAAAAAABZQAAAAAAAQFVAAAAAAACAUkAAAAAAAOBTQAAAAAAAoFFAAAAAAAAAUkAAAAAAAEBVQAAAAAAAAFBAAAAAAABAU0AAAAAAAIBSQAAAAAAAQFBAAAAAAABAVEAAAAAAAEBUQA==\"},\"shape\":[77],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence when incorrect\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAACASEAAAAAAAMBQQAAAAAAAQEtAAAAAAAAASUAAAAAAAMBUQAAAAAAAQFBAAAAAAAAAQkAAAAAAAOBQQAAAAAAAAPh/AAAAAACAUUAAAAAAAMBLQAAAAAAAAEZAAAAAAAAAPUAAAAAAAEBLQAAAAAAAAElAAAAAAAAAS0AAAAAAAIBMQAAAAAAAwEFAAAAAAADAUEAAAAAAAIA4QAAAAAAAwE9AAAAAAACAQUAAAAAAAIBGQAAAAAAAAEtAAAAAAACASkAAAAAAAABVQAAAAAAAwFZAAAAAAAAAP0AAAAAAAIBJQAAAAAAAgEVAAAAAAACASEAAAAAAAAA9QAAAAAAAAFNAAAAAAAAAREAAAAAAAMBTQAAAAAAAwEtAAAAAAAAAUUAAAAAAAEBQQAAAAAAAAFFAAAAAAABAUEAAAAAAAABNQAAAAAAAgEFAAAAAAADATUAAAAAAAABJQAAAAAAAwEdAAAAAAAAA+H8AAAAAAGBSQAAAAAAAgFFAAAAAAAAAREAAAAAAAMBQQAAAAAAAAPh/AAAAAADATkAAAAAAAMBUQAAAAAAAAERAAAAAAACASkAAAAAAAIBLQAAAAAAAQFRAAAAAAAAAUEAAAAAAAMBRQAAAAAAAgE1AAAAAAADAUEAAAAAAAABNQAAAAAAAAElAAAAAAADAVkAAAAAAAABJQAAAAAAAQFVAAAAAAAAAUEAAAAAAAIBUQAAAAAAAwE1AAAAAAAAATkAAAAAAAMBSQAAAAAAAwE1AAAAAAACAUkAAAAAAAABUQAAAAAAAQFRAAAAAAACASUAAAAAAAEBSQA==\"},\"shape\":[77],\"dtype\":\"float64\",\"order\":\"little\"}],[\"sci\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HQAAABMAAAAXAAAAGgAAABUAAAATAAAAHAAAAB0AAAARAAAAFgAAABwAAAAfAAAAHwAAACAAAAAZAAAAHgAAABwAAAAeAAAAFgAAABQAAAAaAAAAIAAAACAAAAAYAAAAGgAAAB4AAAAcAAAAFQAAAB0AAAAgAAAAGgAAABoAAAAXAAAAEgAAABYAAAAdAAAAFAAAABsAAAATAAAAHQAAABgAAAAdAAAAEQAAABoAAAAeAAAAEQAAABkAAAAfAAAAGwAAACAAAAAcAAAAGQAAAB4AAAAVAAAAHQAAABQAAAAWAAAAFwAAABQAAAARAAAAGwAAABsAAAAWAAAAGQAAAB4AAAAgAAAAHgAAACAAAAAcAAAAHwAAAB0AAAAaAAAAFAAAABMAAAAfAAAAFgAAABgAAAA=\"},\"shape\":[77],\"dtype\":\"int32\",\"order\":\"little\"}],[\"psqi\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AQAAAAUAAAABAAAABQAAAAcAAAAHAAAAAwAAAAMAAAAKAAAABAAAAAUAAAACAAAAAgAAAAIAAAAFAAAAAgAAAAMAAAADAAAABAAAAAkAAAAFAAAAAgAAAAEAAAAEAAAACAAAAAIAAAACAAAABgAAAAMAAAABAAAABQAAAAcAAAADAAAABgAAAAYAAAABAAAABgAAAAQAAAAEAAAAAwAAAAUAAAACAAAABwAAAAQAAAAAAAAABQAAAAEAAAABAAAABAAAAAEAAAAIAAAABAAAAAIAAAAHAAAABAAAAAEAAAAHAAAABAAAAAUAAAAGAAAABAAAAAIAAAADAAAABAAAAAMAAAABAAAABQAAAAIAAAABAAAAAQAAAAMAAAAGAAAACAAAAAgAAAACAAAABAAAAAUAAAA=\"},\"shape\":[77],\"dtype\":\"int32\",\"order\":\"little\"}],[\"ess\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BQAAAAEAAAADAAAABAAAAAUAAAAMAAAABAAAAAQAAAALAAAABgAAAAMAAAALAAAACgAAAAwAAAAGAAAADQAAAAwAAAAFAAAACgAAAAQAAAAEAAAABgAAAAMAAAAAAAAADAAAAAYAAAAFAAAACQAAAAcAAAAGAAAACgAAABIAAAALAAAACAAAABAAAAAHAAAACQAAAAsAAAAEAAAABwAAAAQAAAALAAAADAAAAAMAAAADAAAABAAAAAsAAAABAAAABAAAAAIAAAAJAAAAAQAAAAIAAAAMAAAABgAAAAUAAAAFAAAABAAAAAkAAAADAAAACAAAAAYAAAAKAAAAFQAAAAUAAAAFAAAACQAAAAEAAAAIAAAACwAAAAUAAAAHAAAACgAAAAcAAAAPAAAABwAAAAcAAAA=\"},\"shape\":[77],\"dtype\":\"int32\",\"order\":\"little\"}],[\"insomnia\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\"},\"shape\":[77],\"dtype\":\"bool\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1289\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1290\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1285\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"confidence when correct\"},\"y\":{\"type\":\"field\",\"field\":\"confidence when incorrect\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"hatch_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1286\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"confidence when correct\"},\"y\":{\"type\":\"field\",\"field\":\"confidence when incorrect\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1287\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"confidence when correct\"},\"y\":{\"type\":\"field\",\"field\":\"confidence when incorrect\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1302\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1293\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1294\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1295\"},\"data\":{\"type\":\"map\",\"entries\":[[\"participant number\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CAAAABAAAAASAAAAFgAAABsAAAAcAAAAHgAAACEAAAAiAAAAIwAAACYAAAApAAAALgAAADEAAAA3AAAARwAAAEwAAABNAAAATgAAAFAAAABZAAAAWgAAAF0AAABkAAAAZQAAAA==\"},\"shape\":[25],\"dtype\":\"int32\",\"order\":\"little\"}],[\"gender\",{\"type\":\"ndarray\",\"array\":[\"f\",\"m\",\"f\",\"f\",\"f\",\"f\",\"m\",\"m\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"f\",\"m\",\"m\",\"f\",\"m\",\"f\",\"f\",\"f\"],\"shape\":[25],\"dtype\":\"object\",\"order\":\"little\"}],[\"age\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"JwAAACoAAAAfAAAAIwAAAEoAAAA9AAAAIAAAAD4AAAAhAAAANQAAACkAAAAkAAAAKAAAABgAAAAgAAAAKAAAAD0AAAAqAAAAHwAAABwAAAAaAAAALQAAABwAAAAsAAAAHAAAAA==\"},\"shape\":[25],\"dtype\":\"int32\",\"order\":\"little\"}],[\"correct hit percentage\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QQAAAFoAAABaAAAAZAAAADwAAABQAAAAWgAAAC0AAABQAAAAZAAAAEYAAABaAAAAXwAAAFUAAABLAAAAKAAAAGQAAABGAAAAZAAAAGQAAAA8AAAAZAAAAGQAAABBAAAAZAAAAA==\"},\"shape\":[25],\"dtype\":\"int32\",\"order\":\"little\"}],[\"correct reject percentage\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UAAAAFoAAABfAAAASwAAAEEAAAAUAAAASwAAAFoAAABkAAAAMgAAADcAAABkAAAAQQAAAEsAAAA3AAAAZAAAACgAAABaAAAARgAAADIAAABQAAAAXwAAAEsAAAAZAAAAKAAAAA==\"},\"shape\":[25],\"dtype\":\"int32\",\"order\":\"little\"}],[\"percent correct\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAgUkAAAAAAAIBWQAAAAAAAIFdAAAAAAADgVUAAAAAAAEBPQAAAAAAAAElAAAAAAACgVEAAAAAAAOBQQAAAAAAAgFZAAAAAAADAUkAAAAAAAEBPQAAAAAAAwFdAAAAAAAAAVEAAAAAAAABUQAAAAAAAQFBAAAAAAACAUUAAAAAAAIBRQAAAAAAAAFRAAAAAAABAVUAAAAAAAMBSQAAAAAAAgFFAAAAAAABgWEAAAAAAAOBVQAAAAAAAgEZAAAAAAACAUUA=\"},\"shape\":[25],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence when correct hit\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAADAVkAAAAAAAOBSQAAAAAAAYFZAAAAAAABgVkAAAAAAACBRQAAAAAAAwFFAAAAAAADAUEAAAAAAAABLQAAAAAAAoFFAAAAAAACgUkAAAAAAAIBUQAAAAAAAIFNAAAAAAAAAVEAAAAAAAABNQAAAAAAAQFVAAAAAAABAUUAAAAAAAGBRQAAAAAAAwFVAAAAAAAAAV0AAAAAAAABZQAAAAAAAgFFAAAAAAAAAWUAAAAAAAGBWQAAAAAAAAE9AAAAAAADAVUA=\"},\"shape\":[25],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence incorrect hit\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAACAVkAAAAAAAMBLQAAAAAAAgFZAAAAAAAAA+H8AAAAAAIBIQAAAAAAAgE9AAAAAAABATEAAAAAAAIBCQAAAAAAAIFNAAAAAAAAA+H8AAAAAAMBOQAAAAAAA4FJAAAAAAABAVkAAAAAAAABJQAAAAAAAQFRAAAAAAAAATEAAAAAAAAD4fwAAAAAAAFJAAAAAAAAA+H8AAAAAAAD4fwAAAAAAQFNAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAFJAAAAAAAAA+H8=\"},\"shape\":[25],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence correct reject\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAABAV0AAAAAAAKBRQAAAAAAAgFVAAAAAAADAUUAAAAAAAIBOQAAAAAAAAD9AAAAAAACAUEAAAAAAAEBQQAAAAAAAIFBAAAAAAABATkAAAAAAAEBSQAAAAAAAwFJAAAAAAADAU0AAAAAAAIBIQAAAAAAAQFVAAAAAAACAUUAAAAAAAEBGQAAAAAAAoFZAAAAAAABAVEAAAAAAAABZQAAAAAAAgFRAAAAAAAAAWUAAAAAAAMBQQAAAAAAAwFVAAAAAAAAAUUA=\"},\"shape\":[25],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence incorrect reject\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAADgVEAAAAAAAABJQAAAAAAAQFRAAAAAAAAAVEAAAAAAAIBIQAAAAAAAIFJAAAAAAABAUEAAAAAAAGBUQAAAAAAAAPh/AAAAAABAUEAAAAAAAEBRQAAAAAAAAPh/AAAAAABATUAAAAAAAABRQAAAAAAAgFVAAAAAAAAA+H8AAAAAAEBSQAAAAAAAwEVAAAAAAAAATkAAAAAAAABZQAAAAAAA4FBAAAAAAAAAWUAAAAAAAABOQAAAAAAAQFNAAAAAAAAAS0A=\"},\"shape\":[25],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence when correct\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAABAV0AAAAAAAMBSQAAAAAAAQFZAAAAAAAAAVkAAAAAAAEBQQAAAAAAAIFBAAAAAAACAUEAAAAAAAABPQAAAAAAAAFFAAAAAAADAUUAAAAAAAIBUQAAAAAAAAFNAAAAAAADgU0AAAAAAAIBLQAAAAAAAQFVAAAAAAACAUUAAAAAAAEBLQAAAAAAAIFZAAAAAAADgVUAAAAAAAABZQAAAAAAAQFNAAAAAAAAAWUAAAAAAAABUQAAAAAAAYFFAAAAAAABAVEA=\"},\"shape\":[25],\"dtype\":\"float64\",\"order\":\"little\"}],[\"confidence when incorrect\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAACAVkAAAAAAAABJQAAAAAAAAFZAAAAAAAAAVEAAAAAAAIBIQAAAAAAAoFFAAAAAAAAAUEAAAAAAAIBOQAAAAAAAIFNAAAAAAABAUEAAAAAAAABQQAAAAAAA4FJAAAAAAACAT0AAAAAAAIBNQAAAAAAA4FRAAAAAAAAATEAAAAAAAEBSQAAAAAAAAFBAAAAAAAAATkAAAAAAAABZQAAAAAAAoFFAAAAAAAAAWUAAAAAAAABOQAAAAAAAYFJAAAAAAAAAS0A=\"},\"shape\":[25],\"dtype\":\"float64\",\"order\":\"little\"}],[\"sci\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CQAAAAQAAAAKAAAADQAAAA0AAAAPAAAAEAAAAA4AAAAOAAAADgAAAA4AAAAPAAAACgAAAA4AAAAFAAAAAAAAABAAAAALAAAADgAAAAwAAAAOAAAADgAAABAAAAABAAAADgAAAA==\"},\"shape\":[25],\"dtype\":\"int32\",\"order\":\"little\"}],[\"psqi\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DQAAAAsAAAAJAAAACAAAAAkAAAAOAAAACQAAAAkAAAAMAAAACAAAAAUAAAAHAAAADAAAAA0AAAANAAAACwAAAAQAAAAKAAAABgAAAAcAAAAIAAAACQAAAAcAAAAPAAAABwAAAA==\"},\"shape\":[25],\"dtype\":\"int32\",\"order\":\"little\"}],[\"ess\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AgAAAAcAAAADAAAAFAAAAAwAAAACAAAAAwAAAAkAAAAKAAAABwAAABMAAAAAAAAACAAAAAQAAAAHAAAADgAAAAwAAAAKAAAACwAAAAwAAAABAAAABgAAAAQAAAAGAAAAAgAAAA==\"},\"shape\":[25],\"dtype\":\"int32\",\"order\":\"little\"}],[\"insomnia\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ==\"},\"shape\":[25],\"dtype\":\"bool\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1303\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1304\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1299\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"confidence when correct\"},\"y\":{\"type\":\"field\",\"field\":\"confidence when incorrect\"},\"line_color\":{\"type\":\"value\",\"value\":\"orange\"},\"fill_color\":{\"type\":\"value\",\"value\":\"orange\"},\"hatch_color\":{\"type\":\"value\",\"value\":\"orange\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1300\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"confidence when correct\"},\"y\":{\"type\":\"field\",\"field\":\"confidence when incorrect\"},\"line_color\":{\"type\":\"value\",\"value\":\"orange\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"orange\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_color\":{\"type\":\"value\",\"value\":\"orange\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1301\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"confidence when correct\"},\"y\":{\"type\":\"field\",\"field\":\"confidence when incorrect\"},\"line_color\":{\"type\":\"value\",\"value\":\"orange\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"orange\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_color\":{\"type\":\"value\",\"value\":\"orange\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1252\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1265\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1266\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1267\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1268\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p1274\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p1273\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p1275\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1276\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1277\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p1278\",\"attributes\":{\"renderers\":\"auto\",\"tooltips\":[[\"p-number\",\"@{participant number}\"],[\"gender\",\"@gender\"],[\"age\",\"@age\"]]}}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1260\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1261\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1262\"},\"axis_label\":\"confidence when incorrect\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1263\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1255\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1256\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1257\"},\"axis_label\":\"confidence when correct\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1258\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1259\",\"attributes\":{\"axis\":{\"id\":\"p1255\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1264\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1260\"}}},{\"type\":\"object\",\"name\":\"Legend\",\"id\":\"p1291\",\"attributes\":{\"location\":\"top_left\",\"click_policy\":\"hide\",\"items\":[{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p1292\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"normal sleepers\"},\"renderers\":[{\"id\":\"p1288\"}]}},{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p1305\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"insomniacs\"},\"renderers\":[{\"id\":\"p1302\"}]}}]}}],\"output_backend\":\"svg\"}}]}};\n", " const render_items = [{\"docid\":\"183d38fd-5863-4368-a56a-fa039601667f\",\"roots\":{\"p1244\":\"e31d2fce-ac8e-4e59-90bd-beb3731972be\"},\"root_ids\":[\"p1244\"]}];\n", " void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " let attempts = 0;\n", " const timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p1244" } }, "output_type": "display_data" } ], "source": [ "p.output_backend = 'svg'\n", "\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, click the disk icon in the plot above to save it.\n", "\n", "After saving, we should switch back to canvas." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "p.output_backend = 'canvas'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can also save the figure programmatically using the `bokeh.io.export_svgs()` function. This requires additional installations, so we will not do it here, but show the code to do it. Again, this will only work if the output backed is `'svg'`.\n", "\n", "```python\n", "p.output_backend = 'svg'\n", "bokeh.io.export_svgs(p, filename='insomniac_confidence_correct.svg')\n", "p.output_backend = 'canvas'\n", "```\n", "\n", "Finally, to save as HTML, you can use the `bokeh.io.save()` function. This saves your plot as a standalone HTML page. Note that the `title` kwarg is not the title of the plot, but the title of the web page that will appear on your Browser tab." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "bokeh.io.save(\n", " p, \n", " filename='insomniac_confidence_correct.html', \n", " title='Bokeh plot',\n", " resources=bokeh.resources.CDN,\n", ");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The resulting HTML page has all of the interactivity of the plot and you can, for example, email it to your collaborators for them to explore." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Computing environment" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "tags": [ "hide-input" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Python implementation: CPython\n", "Python version : 3.12.9\n", "IPython version : 9.1.0\n", "\n", "polars : 1.27.1\n", "bokeh : 3.6.2\n", "jupyterlab: 4.3.6\n", "\n" ] } ], "source": [ "#| code-fold: true\n", "\n", "%load_ext watermark\n", "%watermark -v -p polars,bokeh,jupyterlab" ] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.13.5" } }, "nbformat": 4, "nbformat_minor": 4 }