{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Lesson 18: Making plots\n", "\n", "
" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " Loading BokehJS ...\n", "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "\n", "(function(root) {\n", " function now() {\n", " return new Date();\n", " }\n", "\n", " 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", " 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", " // Clean up Bokeh references\n", " if (id != null && id in Bokeh.index) {\n", " Bokeh.index[id].model.document.clear();\n", " delete Bokeh.index[id];\n", " }\n", "\n", " if (server_id !== undefined) {\n", " // Clean up Bokeh references\n", " 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", " if (id in Bokeh.index) {\n", " Bokeh.index[id].model.document.clear();\n", " delete Bokeh.index[id];\n", " }\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", "\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() {\n", " const el = document.getElementById(\"1002\");\n", " if (el != null) {\n", " el.textContent = \"BokehJS is loading...\";\n", " }\n", " if (root.Bokeh !== undefined) {\n", " if (el != null) {\n", " el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n", " }\n", " } else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(display_loaded, 100)\n", " }\n", " }\n", "\n", "\n", " function run_callbacks() {\n", " try {\n", " root._bokeh_onload_callbacks.forEach(function(callback) {\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", " \n", " const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-2.4.2.min.js\"];\n", " const css_urls = [];\n", " \n", "\n", " const inline_js = [\n", " function(Bokeh) {\n", " Bokeh.set_log_level(\"info\");\n", " },\n", " function(Bokeh) {\n", " \n", " \n", " }\n", " ];\n", "\n", " function run_inline_js() {\n", " \n", " if (root.Bokeh !== undefined || force === true) {\n", " \n", " for (let i = 0; i < inline_js.length; i++) {\n", " inline_js[i].call(root, root.Bokeh);\n", " }\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(\"1002\")).parents('.cell').data().cell;\n", " cell.output_area.append_execute_result(NB_LOAD_WARNING)\n", " }\n", "\n", " }\n", "\n", " if (root._bokeh_is_loading === 0) {\n", " console.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": "\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 \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() {\n const el = document.getElementById(\"1002\");\n if (el != null) {\n el.textContent = \"BokehJS is loading...\";\n }\n if (root.Bokeh !== undefined) {\n if (el != null) {\n el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(display_loaded, 100)\n }\n }\n\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\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 \n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-2.4.2.min.js\"];\n const css_urls = [];\n \n\n const inline_js = [\n function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\n function(Bokeh) {\n \n \n }\n ];\n\n function run_inline_js() {\n \n if (root.Bokeh !== undefined || force === true) {\n \n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\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(\"1002\")).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n\n }\n\n if (root._bokeh_is_loading === 0) {\n console.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));" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import pandas as pd\n", "\n", "# Our main plotting package (must have explicit import of submodules)\n", "import bokeh.io\n", "import bokeh.models\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", "We have a couple nice data sets from the last few lessons and exercises, the data from the tongue strikes of frogs and facial matching data from people with sleep deprivation. We've learned how to use Pandas to handle the data sets and get what we want out of them. But I argue that what we want out of them most of the time is **plots**. Now is the time in the bootcamp where we learn how to take data set and plot them." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The Python visualization landscape\n", "\n", "Let us start by looking at some of the many plotting packages available in Python. In a [talk at PyCon in 2017](https://www.youtube.com/watch?v=FytuB8nFHPQ), [Jake VanderPlas](http://vanderplas.com), who is one of the authors of one of them ([Altair](https://altair-viz.github.io)), gave an overview of the Python visualization landscape. That landscape is depicted below, taken from [this visualization of it](https://github.com/rougier/python-visualization-landscape) by [Nicolas Rougier](http://www.labri.fr/perso/nrougier/). (It is from 2017, so it is dated, and definitely not complete, notably missing [Panel](https://panel.holoviz.org), for example.)\n", "\n", "
\n", "\n", "![python_viz_landscape](python_viz_landscape.png)\n", "\n", "
\n", "\n", "The landscape is divided into three main pods based on the low-level renderer of the graphics, JavaScript, [Matplotlib](https://matplotlib.org), and [OpenGL](https://www.opengl.org) (though Matplotlib is higher-level than JavaScript and OpenGL). We will not discuss packages based on OpenGL. Packages that use JavaScript for rendering are particularly well suited for interactivity in browsers. Interactivity and portability (accomplished by rendering in browsers) are key features of modern plotting libraries, so we will use JavaScript-based plotting in the bootcamp (as I do in my own work)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 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 Pandas 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": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "insomnia\n", "False 85.0\n", "True 75.0\n", "Name: percent correct, dtype: float64" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.read_csv('data/gfmt_sleep.csv', na_values='*')\n", "df['insomnia'] = df['sci'] <= 16\n", "\n", "df.groupby('insomnia')['percent correct'].median()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Literally three lines of code. Now what if we tried to do it without Pandas? 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.groupby('insomnia')['percent correct'].median()\n", "```\n", "\n", "There are elementary tasks that go into it if we were to code it up without using Pandas'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 Pandas'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", "
\n", "\n", "![shortcuts](shortcuts.png)\n", "\n", "
\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 bootcamp\n", "\n", "One debate I have every time I offer this bootcamp is what plotting packages, high-level or low-level, to use. We 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 lesson](l19_high_level_plotting.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, which you did in [Lesson 0](l00_configuring_your_computer.ipynb)." ] }, { "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:\n", "\n", "" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "tags": [ "hide-input" ] }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " const docs_json = {\"f57650ce-771a-4de8-948e-1cd03733afce\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1012\"}],\"center\":[{\"id\":\"1015\"},{\"id\":\"1019\"}],\"frame_height\":300,\"frame_width\":400,\"left\":[{\"id\":\"1016\"}],\"renderers\":[{\"id\":\"1039\"}],\"title\":{\"id\":\"1041\"},\"toolbar\":{\"id\":\"1027\"},\"x_range\":{\"id\":\"1004\"},\"x_scale\":{\"id\":\"1008\"},\"y_range\":{\"id\":\"1006\"},\"y_scale\":{\"id\":\"1010\"}},\"id\":\"1003\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"data\":{\"age\":[39,42,31,35,74,61,32,62,33,53,41,36,40,24,32,40,61,42,31,28,26,45,28,44,28,42,45,16,21,18,28,38,17,25,22,41,53,43,23,19,45,43,35,24,64,36,35,43,44,29,22,46,35,53,29,31,21,42,23,54,24,21,21,43,50,53,16,67,36,34,42,46,69,31,44,25,45,47,33,18,74,21,45,37,41,41,34,39,18,31,26,66,62,22,41,46,56,23,70,24,40,33],\"confidence when correct\":{\"__ndarray__\":\"AAAAAABAV0AAAAAAAMBSQAAAAAAAQFZAAAAAAAAAVkAAAAAAAEBQQAAAAAAAIFBAAAAAAACAUEAAAAAAAABPQAAAAAAAAFFAAAAAAADAUUAAAAAAAIBUQAAAAAAAAFNAAAAAAADgU0AAAAAAAIBLQAAAAAAAQFVAAAAAAACAUUAAAAAAAEBLQAAAAAAAIFZAAAAAAADgVUAAAAAAAABZQAAAAAAAQFNAAAAAAAAAWUAAAAAAAABUQAAAAAAAYFFAAAAAAABAVEAAAAAAAIBJQAAAAAAAoFNAAAAAAACATEAAAAAAAABOQAAAAAAAAFRAAAAAAADAWEAAAAAAAIBTQAAAAAAAoFNAAAAAAACAVkAAAAAAAIBRQAAAAAAAgFJAAAAAAACAR0AAAAAAAABKQAAAAAAAAFVAAAAAAACAT0AAAAAAAABPQAAAAAAAwE1AAAAAAADgUkAAAAAAAIBTQAAAAAAAgE9AAAAAAABAVEAAAAAAAAA4QAAAAAAAAElAAAAAAABAVEAAAAAAAMBQQAAAAAAAQFNAAAAAAAAAWUAAAAAAAABRQAAAAAAAAEhAAAAAAACAUkAAAAAAAIBUQAAAAAAAwFBAAAAAAACgVEAAAAAAAMBQQAAAAAAAAFZAAAAAAADAVEAAAAAAAMBPQAAAAAAAIFRAAAAAAADAUUAAAAAAAMBXQAAAAAAAoFNAAAAAAABASkAAAAAAAEBRQAAAAAAAgE5AAAAAAACAUEAAAAAAAIBSQAAAAAAAAFdAAAAAAAAAVEAAAAAAAABXQAAAAAAAwFRAAAAAAABATkAAAAAAACBSQAAAAAAAYFhAAAAAAAAAUUAAAAAAAMBQQAAAAAAAQFBAAAAAAACAVEAAAAAAAMBSQAAAAAAAgFdAAAAAAABAU0AAAAAAAABXQAAAAAAAQFRAAAAAAAAATUAAAAAAAOBWQAAAAAAAAFlAAAAAAABAVUAAAAAAAIBSQAAAAAAA4FNAAAAAAACgUUAAAAAAAABSQAAAAAAAQFVAAAAAAAAAUEAAAAAAAEBTQAAAAAAAgFJAAAAAAABAUEAAAAAAAEBUQAAAAAAAQFRA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[102]},\"confidence when correct hit\":{\"__ndarray__\":\"AAAAAADAVkAAAAAAAOBSQAAAAAAAYFZAAAAAAABgVkAAAAAAACBRQAAAAAAAwFFAAAAAAADAUEAAAAAAAABLQAAAAAAAoFFAAAAAAACgUkAAAAAAAIBUQAAAAAAAIFNAAAAAAAAAVEAAAAAAAABNQAAAAAAAQFVAAAAAAABAUUAAAAAAAGBRQAAAAAAAwFVAAAAAAAAAV0AAAAAAAABZQAAAAAAAgFFAAAAAAAAAWUAAAAAAAGBWQAAAAAAAAE9AAAAAAADAVUAAAAAAAMBJQAAAAAAAwFJAAAAAAACAUUAAAAAAAMBPQAAAAAAAIFNAAAAAAAAAWUAAAAAAAEBTQAAAAAAAIFRAAAAAAACAVkAAAAAAAIBRQAAAAAAAIFNAAAAAAAAAREAAAAAAAABKQAAAAAAAAFZAAAAAAAAAT0AAAAAAAABRQAAAAAAAgE1AAAAAAADgUkAAAAAAAABRQAAAAAAAAElAAAAAAAAAVkAAAAAAAIA9QAAAAAAAYFBAAAAAAADAVEAAAAAAAMBQQAAAAAAAgFNAAAAAAAAgUkAAAAAAAEBPQAAAAAAAAEtAAAAAAADAUkAAAAAAAIBUQAAAAAAAgFBAAAAAAADAVEAAAAAAAMBQQAAAAAAAgFZAAAAAAABAWEAAAAAAAEBQQAAAAAAAAFVAAAAAAACAUkAAAAAAACBXQAAAAAAAAFVAAAAAAACAS0AAAAAAAIBRQAAAAAAA4FBAAAAAAABATUAAAAAAAKBSQAAAAAAAAFdAAAAAAAAAVEAAAAAAAIBYQAAAAAAAwFVAAAAAAADATkAAAAAAACBUQAAAAAAAAFlAAAAAAACAUUAAAAAAAOBQQAAAAAAAgFBAAAAAAACgVkAAAAAAAIBSQAAAAAAA4FdAAAAAAAAAVEAAAAAAAKBXQAAAAAAAQFRAAAAAAACATEAAAAAAAEBXQAAAAAAAAFlAAAAAAABAVUAAAAAAAOBQQAAAAAAAQFRAAAAAAACAUEAAAAAAAIBLQAAAAAAAgFZAAAAAAACAT0AAAAAAAEBTQAAAAAAAYFBAAAAAAADATkAAAAAAAIBKQAAAAAAAAFRA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[102]},\"confidence when correct reject\":{\"__ndarray__\":\"AAAAAABAV0AAAAAAAKBRQAAAAAAAgFVAAAAAAADAUUAAAAAAAIBOQAAAAAAAAD9AAAAAAACAUEAAAAAAAEBQQAAAAAAAIFBAAAAAAABATkAAAAAAAEBSQAAAAAAAwFJAAAAAAADAU0AAAAAAAIBIQAAAAAAAQFVAAAAAAACAUUAAAAAAAEBGQAAAAAAAoFZAAAAAAABAVEAAAAAAAABZQAAAAAAAgFRAAAAAAAAAWUAAAAAAAMBQQAAAAAAAwFVAAAAAAAAAUUAAAAAAAIBFQAAAAAAAAFRAAAAAAAAAS0AAAAAAAABJQAAAAAAAAFRAAAAAAACAV0AAAAAAAMBTQAAAAAAAIFNAAAAAAABAVUAAAAAAAIBRQAAAAAAA4FBAAAAAAAAATEAAAAAAAIBIQAAAAAAAoFFAAAAAAACAUEAAAAAAAIBOQAAAAAAAAFBAAAAAAACgUkAAAAAAAABUQAAAAAAAgFBAAAAAAACAUEAAAAAAAAAzQAAAAAAAgERAAAAAAADAU0AAAAAAAEBQQAAAAAAAQFNAAAAAAAAAWUAAAAAAAEBTQAAAAAAAwEdAAAAAAAAgUEAAAAAAAEBUQAAAAAAAgFFAAAAAAAAgVEAAAAAAAEBRQAAAAAAAYFNAAAAAAACAUkAAAAAAAABMQAAAAAAAYFJAAAAAAAAAUUAAAAAAAMBXQAAAAAAAAFFAAAAAAAAASUAAAAAAAEBRQAAAAAAAgEtAAAAAAABgUkAAAAAAAIBSQAAAAAAAAFdAAAAAAACgU0AAAAAAAIBWQAAAAAAAQFFAAAAAAABATUAAAAAAAIBPQAAAAAAA4FFAAAAAAABATUAAAAAAAIBQQAAAAAAAgE9AAAAAAACgUkAAAAAAAABTQAAAAAAA4FRAAAAAAACAUUAAAAAAAIBVQAAAAAAAwFFAAAAAAADATUAAAAAAAMBWQAAAAAAAAFlAAAAAAACAVEAAAAAAAIBSQAAAAAAAoFJAAAAAAAAAUkAAAAAAAABUQAAAAAAAAFRAAAAAAADgUEAAAAAAAEBTQAAAAAAAwFVAAAAAAACAUUAAAAAAAABVQAAAAAAAAD9A\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[102]},\"confidence when incorrect\":{\"__ndarray__\":\"AAAAAACAVkAAAAAAAABJQAAAAAAAAFZAAAAAAAAAVEAAAAAAAIBIQAAAAAAAoFFAAAAAAAAAUEAAAAAAAIBOQAAAAAAAIFNAAAAAAABAUEAAAAAAAABQQAAAAAAA4FJAAAAAAACAT0AAAAAAAIBNQAAAAAAA4FRAAAAAAAAATEAAAAAAAEBSQAAAAAAAAFBAAAAAAAAATkAAAAAAAABZQAAAAAAAoFFAAAAAAAAAWUAAAAAAAABOQAAAAAAAYFJAAAAAAAAAS0AAAAAAAIBIQAAAAAAAwFBAAAAAAABAS0AAAAAAAABJQAAAAAAAwFRAAAAAAABAUEAAAAAAAABCQAAAAAAA4FBAAAAAAAAA+H8AAAAAAIBRQAAAAAAAwEtAAAAAAAAARkAAAAAAAAA9QAAAAAAAQEtAAAAAAAAASUAAAAAAAABLQAAAAAAAgExAAAAAAADAQUAAAAAAAMBQQAAAAAAAgDhAAAAAAADAT0AAAAAAAIBBQAAAAAAAgEZAAAAAAAAAS0AAAAAAAIBKQAAAAAAAAFVAAAAAAADAVkAAAAAAAAA/QAAAAAAAgElAAAAAAACARUAAAAAAAIBIQAAAAAAAAD1AAAAAAAAAU0AAAAAAAABEQAAAAAAAwFNAAAAAAADAS0AAAAAAAABRQAAAAAAAQFBAAAAAAAAAUUAAAAAAAEBQQAAAAAAAAE1AAAAAAACAQUAAAAAAAMBNQAAAAAAAAElAAAAAAADAR0AAAAAAAAD4fwAAAAAAYFJAAAAAAACAUUAAAAAAAABEQAAAAAAAwFBAAAAAAAAA+H8AAAAAAMBOQAAAAAAAwFRAAAAAAAAAREAAAAAAAIBKQAAAAAAAgEtAAAAAAABAVEAAAAAAAABQQAAAAAAAwFFAAAAAAACATUAAAAAAAMBQQAAAAAAAAE1AAAAAAAAASUAAAAAAAMBWQAAAAAAAAElAAAAAAABAVUAAAAAAAABQQAAAAAAAgFRAAAAAAADATUAAAAAAAABOQAAAAAAAwFJAAAAAAADATUAAAAAAAIBSQAAAAAAAAFRAAAAAAABAVEAAAAAAAIBJQAAAAAAAQFJA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[102]},\"confidence when incorrect hit\":{\"__ndarray__\":\"AAAAAACAVkAAAAAAAMBLQAAAAAAAgFZAAAAAAAAA+H8AAAAAAIBIQAAAAAAAgE9AAAAAAABATEAAAAAAAIBCQAAAAAAAIFNAAAAAAAAA+H8AAAAAAMBOQAAAAAAA4FJAAAAAAABAVkAAAAAAAABJQAAAAAAAQFRAAAAAAAAATEAAAAAAAAD4fwAAAAAAAFJAAAAAAAAA+H8AAAAAAAD4fwAAAAAAQFNAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAFJAAAAAAAAA+H8AAAAAAEBGQAAAAAAAwEtAAAAAAACATEAAAAAAAABQQAAAAAAAwFRAAAAAAABAVUAAAAAAAMBFQAAAAAAA4FVAAAAAAAAA+H8AAAAAAIBRQAAAAAAAwEtAAAAAAACAQEAAAAAAAAA9QAAAAAAAAERAAAAAAAAASUAAAAAAAAD4fwAAAAAAgEtAAAAAAADAQUAAAAAAAMBQQAAAAAAAADlAAAAAAAAA+H8AAAAAAIA8QAAAAAAAADtAAAAAAAAATEAAAAAAAIBKQAAAAAAAAFZAAAAAAAAAUkAAAAAAAAA9QAAAAAAAAEBAAAAAAAAA+H8AAAAAAIBIQAAAAAAAAD1AAAAAAADAVEAAAAAAAIBHQAAAAAAA4FRAAAAAAACAREAAAAAAAEBSQAAAAAAAwEtAAAAAAABAVkAAAAAAACBSQAAAAAAAgEtAAAAAAAAAPkAAAAAAAAAcQAAAAAAAgDxAAAAAAACARUAAAAAAAAD4fwAAAAAA4FJAAAAAAABAUEAAAAAAAAD4fwAAAAAAwEdAAAAAAAAA+H8AAAAAAMBJQAAAAAAAAPh/AAAAAAAAQ0AAAAAAAMBJQAAAAAAAgEtAAAAAAAAAVEAAAAAAAMBQQAAAAAAAAFFAAAAAAADATUAAAAAAAMBOQAAAAAAAAEpAAAAAAACATEAAAAAAAABXQAAAAAAAAPh/AAAAAAAAVkAAAAAAAIBQQAAAAAAAAPh/AAAAAAAATEAAAAAAAIBOQAAAAAAAwFJAAAAAAABASkAAAAAAAKBQQAAAAAAAYFVAAAAAAABAVEAAAAAAAIBCQAAAAAAAADtA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[102]},\"confidence when incorrect reject\":{\"__ndarray__\":\"AAAAAADgVEAAAAAAAABJQAAAAAAAQFRAAAAAAAAAVEAAAAAAAIBIQAAAAAAAIFJAAAAAAABAUEAAAAAAAGBUQAAAAAAAAPh/AAAAAABAUEAAAAAAAEBRQAAAAAAAAPh/AAAAAABATUAAAAAAAABRQAAAAAAAgFVAAAAAAAAA+H8AAAAAAEBSQAAAAAAAwEVAAAAAAAAATkAAAAAAAABZQAAAAAAA4FBAAAAAAAAAWUAAAAAAAABOQAAAAAAAQFNAAAAAAAAAS0AAAAAAAIBIQAAAAAAAwFJAAAAAAACASkAAAAAAAABJQAAAAAAAAPh/AAAAAACATkAAAAAAAAA1QAAAAAAAADtAAAAAAAAA+H8AAAAAAEBQQAAAAAAAQEpAAAAAAACASEAAAAAAAABCQAAAAAAAoFBAAAAAAABASUAAAAAAAABLQAAAAAAAgE1AAAAAAAAA+H8AAAAAAAD4fwAAAAAAADhAAAAAAADAT0AAAAAAAMBEQAAAAAAAgEZAAAAAAABARUAAAAAAAIBKQAAAAAAAAFRAAAAAAADAVkAAAAAAAABAQAAAAAAAoFNAAAAAAACARUAAAAAAAABCQAAAAAAAAD1AAAAAAAAAQkAAAAAAAABEQAAAAAAAQFFAAAAAAABAUkAAAAAAAABRQAAAAAAAgFFAAAAAAABAUEAAAAAAAEBQQAAAAAAAgE5AAAAAAAAAREAAAAAAAABOQAAAAAAAAEpAAAAAAADASkAAAAAAAAD4fwAAAAAAgE9AAAAAAACgUUAAAAAAAABEQAAAAAAAwFVAAAAAAAAA+H8AAAAAAEBRQAAAAAAAwFRAAAAAAABAUEAAAAAAAIBMQAAAAAAAQElAAAAAAADAVEAAAAAAAAAxQAAAAAAAwFRAAAAAAACAREAAAAAAAIBSQAAAAAAAAE1AAAAAAAAASUAAAAAAAEBWQAAAAAAAAElAAAAAAACAVEAAAAAAAIBMQAAAAAAAgFRAAAAAAACAT0AAAAAAAIBMQAAAAAAAAFRAAAAAAABgUEAAAAAAAGBTQAAAAAAAAFRAAAAAAACATkAAAAAAAABKQAAAAAAAoFRA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[102]},\"correct hit percentage\":[65,90,90,100,60,80,90,45,80,100,70,90,95,85,75,40,100,70,100,100,60,100,100,65,100,80,80,70,70,90,95,90,90,100,80,90,95,95,90,55,100,65,90,55,75,100,70,90,95,95,70,80,50,65,100,85,85,90,90,90,85,85,90,95,70,95,85,95,90,90,100,80,95,100,90,100,70,90,85,80,85,40,80,90,90,80,90,75,85,100,95,60,100,85,35,95,70,70,90,70,75,85],\"correct reject percentage\":[80,90,95,75,65,20,75,90,100,50,55,100,65,75,55,100,40,90,70,50,80,95,75,25,40,65,90,80,65,100,80,95,90,100,60,80,60,90,80,60,85,65,100,100,85,80,90,85,90,55,65,75,95,80,70,90,90,90,85,70,95,75,80,75,85,75,85,75,65,90,100,90,80,95,95,100,50,100,70,75,80,40,95,80,85,75,35,70,85,85,75,85,80,95,75,80,50,85,85,80,65,40],\"ess\":[2,7,3,20,12,2,3,9,10,7,19,0,8,4,7,14,12,10,11,12,1,6,4,6,2,5,1,3,4,5,12,4,4,11,6,3,11,10,12,6,13,12,5,10,4,4,6,3,0,12,6,5,9,7,6,10,18,11,8,16,7,9,11,4,7,4,11,12,3,3,4,11,1,4,2,9,1,2,12,6,5,5,4,9,3,8,6,10,21,5,5,9,1,8,11,5,7,10,7,15,7,7],\"gender\":[\"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\"],\"index\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101],\"insomnia\":[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false],\"participant number\":[8,16,18,22,27,28,30,33,34,35,38,41,46,49,55,71,76,77,78,80,89,90,93,100,101,1,2,3,4,5,6,7,9,10,11,12,13,14,15,17,19,20,21,23,24,25,26,29,31,32,36,37,39,40,42,43,44,45,48,50,51,52,53,54,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,72,73,74,75,79,81,82,83,84,85,86,87,88,91,92,94,95,96,97,98,99,102,103],\"percent correct\":{\"__ndarray__\":\"AAAAAAAgUkAAAAAAAIBWQAAAAAAAIFdAAAAAAADgVUAAAAAAAEBPQAAAAAAAAElAAAAAAACgVEAAAAAAAOBQQAAAAAAAgFZAAAAAAADAUkAAAAAAAEBPQAAAAAAAwFdAAAAAAAAAVEAAAAAAAABUQAAAAAAAQFBAAAAAAACAUUAAAAAAAIBRQAAAAAAAAFRAAAAAAABAVUAAAAAAAMBSQAAAAAAAgFFAAAAAAABgWEAAAAAAAOBVQAAAAAAAgEZAAAAAAACAUUAAAAAAACBSQAAAAAAAQFVAAAAAAADAUkAAAAAAAOBQQAAAAAAAwFdAAAAAAADgVUAAAAAAACBXQAAAAAAAgFZAAAAAAAAAWUAAAAAAAIBRQAAAAAAAQFVAAAAAAABgU0AAAAAAACBXQAAAAAAAQFVAAAAAAADATEAAAAAAACBXQAAAAAAAQFBAAAAAAADAV0AAAAAAAGBTQAAAAAAAAFRAAAAAAACAVkAAAAAAAABUQAAAAAAA4FVAAAAAAAAgV0AAAAAAAMBSQAAAAAAA4FBAAAAAAABgU0AAAAAAACBSQAAAAAAAIFJAAAAAAABAVUAAAAAAAOBVQAAAAAAA4FVAAAAAAACAVkAAAAAAAOBVQAAAAAAAAFRAAAAAAACAVkAAAAAAAABUQAAAAAAAQFVAAAAAAABAVUAAAAAAAGBTQAAAAAAAQFVAAAAAAABAVUAAAAAAAEBVQAAAAAAAYFNAAAAAAACAVkAAAAAAAABZQAAAAAAAQFVAAAAAAADgVUAAAAAAAGBYQAAAAAAAIFdAAAAAAAAAWUAAAAAAAABOQAAAAAAAwFdAAAAAAABgU0AAAAAAAGBTQAAAAAAAoFRAAAAAAAAAREAAAAAAAOBVQAAAAAAAQFVAAAAAAADgVUAAAAAAAGBTQAAAAAAAQE9AAAAAAAAgUkAAAAAAAEBVQAAAAAAAIFdAAAAAAABAVUAAAAAAACBSQAAAAAAAgFZAAAAAAACAVkAAAAAAAIBLQAAAAAAA4FVAAAAAAAAATkAAAAAAAGBTQAAAAAAA4FVAAAAAAADAUkAAAAAAAIBRQAAAAAAAQE9A\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[102]},\"psqi\":[13,11,9,8,9,14,9,9,12,8,5,7,12,13,13,11,4,10,6,7,8,9,7,15,7,1,5,1,5,7,7,3,3,10,4,5,2,2,2,5,2,3,3,4,9,5,2,1,4,8,2,2,6,3,1,5,7,3,6,6,1,6,4,4,3,5,2,7,4,0,5,1,1,4,1,8,4,2,7,4,1,7,4,5,6,4,2,3,4,3,1,5,2,1,1,3,6,8,8,2,4,5],\"sci\":[9,4,10,13,13,15,16,14,14,14,14,15,10,14,5,0,16,11,14,12,14,14,16,1,14,29,19,23,26,21,19,28,29,17,22,28,31,31,32,25,30,28,30,22,20,26,32,32,24,26,30,28,21,29,32,26,26,23,18,22,29,20,27,19,29,24,29,17,26,30,17,25,31,27,32,28,25,30,21,29,20,22,23,20,17,27,27,22,25,30,32,30,32,28,31,29,26,20,19,31,22,24]},\"selected\":{\"id\":\"1050\"},\"selection_policy\":{\"id\":\"1049\"}},\"id\":\"1034\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"tools\":[{\"id\":\"1020\"},{\"id\":\"1021\"},{\"id\":\"1022\"},{\"id\":\"1023\"},{\"id\":\"1024\"},{\"id\":\"1025\"}]},\"id\":\"1027\",\"type\":\"Toolbar\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"1026\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"1024\",\"type\":\"ResetTool\"},{\"attributes\":{\"axis_label\":\"condifence when incorrect\",\"coordinates\":null,\"formatter\":{\"id\":\"1044\"},\"group\":null,\"major_label_policy\":{\"id\":\"1045\"},\"ticker\":{\"id\":\"1017\"}},\"id\":\"1016\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1023\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1006\",\"type\":\"DataRange1d\"},{\"attributes\":{\"overlay\":{\"id\":\"1026\"}},\"id\":\"1022\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1010\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1050\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1020\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"1025\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"1013\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1049\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"axis\":{\"id\":\"1012\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1015\",\"type\":\"Grid\"},{\"attributes\":{\"axis_label\":\"confidence when correct\",\"coordinates\":null,\"formatter\":{\"id\":\"1047\"},\"group\":null,\"major_label_policy\":{\"id\":\"1048\"},\"ticker\":{\"id\":\"1013\"}},\"id\":\"1012\",\"type\":\"LinearAxis\"},{\"attributes\":{\"axis\":{\"id\":\"1016\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"1019\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1004\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1008\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1017\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1021\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"fill_color\":{\"value\":\"#1f77b4\"},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1036\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1048\",\"type\":\"AllLabels\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1034\"},\"glyph\":{\"id\":\"1036\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1038\"},\"nonselection_glyph\":{\"id\":\"1037\"},\"view\":{\"id\":\"1040\"}},\"id\":\"1039\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"1034\"}},\"id\":\"1040\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1047\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.2},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1038\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1045\",\"type\":\"AllLabels\"},{\"attributes\":{\"coordinates\":null,\"group\":null},\"id\":\"1041\",\"type\":\"Title\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.1},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1037\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1044\",\"type\":\"BasicTickFormatter\"}],\"root_ids\":[\"1003\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.2\"}};\n", " const render_items = [{\"docid\":\"f57650ce-771a-4de8-948e-1cd03733afce\",\"root_ids\":[\"1003\"],\"roots\":{\"1003\":\"2e8dca8d-4135-4981-b5cb-1e23c4cb9792\"}}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " 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": "1003" } }, "output_type": "display_data" } ], "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", ")\n", "\n", "source = bokeh.models.ColumnDataSource(df)\n", "\n", "p.circle(\n", " source=source,\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": 4, "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", ")" ] }, { "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. It is convenient to create a **ColumnDataSource**, a special Bokeh object that holds data to be displayed in a plot. (We will later see that we can change the data in a ColumnDataSource and the plot will automatically update!) Conveniently, we can instantiate a ColumnDataSource directly from a Pandas data frame." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "source = bokeh.models.ColumnDataSource(df)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We could also instantiate a data source using a dictionary of arrays, like\n", "\n", " source = bokeh.models.ColumnDataSource(dict(x=[1, 2, 3, 4], y=[1, 4, 9, 16]))\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.circle()`, 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.circle(\n", " source=source,\n", " x='confidence when correct',\n", " y='confidence when incorrect'\n", ");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "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", "\n", "\n", "\n", "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " const docs_json = {\"6e40eb3c-1d08-4a54-9ccf-602c40729c9c\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1116\"}],\"center\":[{\"id\":\"1119\"},{\"id\":\"1123\"}],\"frame_height\":300,\"frame_width\":400,\"left\":[{\"id\":\"1120\"}],\"renderers\":[{\"id\":\"1143\"}],\"title\":{\"id\":\"1156\"},\"toolbar\":{\"id\":\"1131\"},\"x_range\":{\"id\":\"1108\"},\"x_scale\":{\"id\":\"1112\"},\"y_range\":{\"id\":\"1110\"},\"y_scale\":{\"id\":\"1114\"}},\"id\":\"1107\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1159\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1117\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis_label\":\"confidence when correct\",\"coordinates\":null,\"formatter\":{\"id\":\"1162\"},\"group\":null,\"major_label_policy\":{\"id\":\"1163\"},\"ticker\":{\"id\":\"1117\"}},\"id\":\"1116\",\"type\":\"LinearAxis\"},{\"attributes\":{\"tools\":[{\"id\":\"1124\"},{\"id\":\"1125\"},{\"id\":\"1126\"},{\"id\":\"1127\"},{\"id\":\"1128\"},{\"id\":\"1129\"}]},\"id\":\"1131\",\"type\":\"Toolbar\"},{\"attributes\":{\"fill_color\":{\"value\":\"#1f77b4\"},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1140\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1129\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"1160\",\"type\":\"AllLabels\"},{\"attributes\":{\"axis_label\":\"condifence when incorrect\",\"coordinates\":null,\"formatter\":{\"id\":\"1159\"},\"group\":null,\"major_label_policy\":{\"id\":\"1160\"},\"ticker\":{\"id\":\"1121\"}},\"id\":\"1120\",\"type\":\"LinearAxis\"},{\"attributes\":{\"axis\":{\"id\":\"1120\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"1123\",\"type\":\"Grid\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.1},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1141\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1121\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1162\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"1130\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"1165\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1128\",\"type\":\"ResetTool\"},{\"attributes\":{\"coordinates\":null,\"group\":null},\"id\":\"1156\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1127\",\"type\":\"SaveTool\"},{\"attributes\":{\"overlay\":{\"id\":\"1130\"}},\"id\":\"1126\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1124\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"1108\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1164\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.2},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1142\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1125\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1138\"},\"glyph\":{\"id\":\"1140\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1142\"},\"nonselection_glyph\":{\"id\":\"1141\"},\"view\":{\"id\":\"1144\"}},\"id\":\"1143\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"1138\"}},\"id\":\"1144\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1112\",\"type\":\"LinearScale\"},{\"attributes\":{\"data\":{\"age\":[39,42,31,35,74,61,32,62,33,53,41,36,40,24,32,40,61,42,31,28,26,45,28,44,28,42,45,16,21,18,28,38,17,25,22,41,53,43,23,19,45,43,35,24,64,36,35,43,44,29,22,46,35,53,29,31,21,42,23,54,24,21,21,43,50,53,16,67,36,34,42,46,69,31,44,25,45,47,33,18,74,21,45,37,41,41,34,39,18,31,26,66,62,22,41,46,56,23,70,24,40,33],\"confidence when correct\":{\"__ndarray__\":\"AAAAAABAV0AAAAAAAMBSQAAAAAAAQFZAAAAAAAAAVkAAAAAAAEBQQAAAAAAAIFBAAAAAAACAUEAAAAAAAABPQAAAAAAAAFFAAAAAAADAUUAAAAAAAIBUQAAAAAAAAFNAAAAAAADgU0AAAAAAAIBLQAAAAAAAQFVAAAAAAACAUUAAAAAAAEBLQAAAAAAAIFZAAAAAAADgVUAAAAAAAABZQAAAAAAAQFNAAAAAAAAAWUAAAAAAAABUQAAAAAAAYFFAAAAAAABAVEAAAAAAAIBJQAAAAAAAoFNAAAAAAACATEAAAAAAAABOQAAAAAAAAFRAAAAAAADAWEAAAAAAAIBTQAAAAAAAoFNAAAAAAACAVkAAAAAAAIBRQAAAAAAAgFJAAAAAAACAR0AAAAAAAABKQAAAAAAAAFVAAAAAAACAT0AAAAAAAABPQAAAAAAAwE1AAAAAAADgUkAAAAAAAIBTQAAAAAAAgE9AAAAAAABAVEAAAAAAAAA4QAAAAAAAAElAAAAAAABAVEAAAAAAAMBQQAAAAAAAQFNAAAAAAAAAWUAAAAAAAABRQAAAAAAAAEhAAAAAAACAUkAAAAAAAIBUQAAAAAAAwFBAAAAAAACgVEAAAAAAAMBQQAAAAAAAAFZAAAAAAADAVEAAAAAAAMBPQAAAAAAAIFRAAAAAAADAUUAAAAAAAMBXQAAAAAAAoFNAAAAAAABASkAAAAAAAEBRQAAAAAAAgE5AAAAAAACAUEAAAAAAAIBSQAAAAAAAAFdAAAAAAAAAVEAAAAAAAABXQAAAAAAAwFRAAAAAAABATkAAAAAAACBSQAAAAAAAYFhAAAAAAAAAUUAAAAAAAMBQQAAAAAAAQFBAAAAAAACAVEAAAAAAAMBSQAAAAAAAgFdAAAAAAABAU0AAAAAAAABXQAAAAAAAQFRAAAAAAAAATUAAAAAAAOBWQAAAAAAAAFlAAAAAAABAVUAAAAAAAIBSQAAAAAAA4FNAAAAAAACgUUAAAAAAAABSQAAAAAAAQFVAAAAAAAAAUEAAAAAAAEBTQAAAAAAAgFJAAAAAAABAUEAAAAAAAEBUQAAAAAAAQFRA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[102]},\"confidence when correct hit\":{\"__ndarray__\":\"AAAAAADAVkAAAAAAAOBSQAAAAAAAYFZAAAAAAABgVkAAAAAAACBRQAAAAAAAwFFAAAAAAADAUEAAAAAAAABLQAAAAAAAoFFAAAAAAACgUkAAAAAAAIBUQAAAAAAAIFNAAAAAAAAAVEAAAAAAAABNQAAAAAAAQFVAAAAAAABAUUAAAAAAAGBRQAAAAAAAwFVAAAAAAAAAV0AAAAAAAABZQAAAAAAAgFFAAAAAAAAAWUAAAAAAAGBWQAAAAAAAAE9AAAAAAADAVUAAAAAAAMBJQAAAAAAAwFJAAAAAAACAUUAAAAAAAMBPQAAAAAAAIFNAAAAAAAAAWUAAAAAAAEBTQAAAAAAAIFRAAAAAAACAVkAAAAAAAIBRQAAAAAAAIFNAAAAAAAAAREAAAAAAAABKQAAAAAAAAFZAAAAAAAAAT0AAAAAAAABRQAAAAAAAgE1AAAAAAADgUkAAAAAAAABRQAAAAAAAAElAAAAAAAAAVkAAAAAAAIA9QAAAAAAAYFBAAAAAAADAVEAAAAAAAMBQQAAAAAAAgFNAAAAAAAAgUkAAAAAAAEBPQAAAAAAAAEtAAAAAAADAUkAAAAAAAIBUQAAAAAAAgFBAAAAAAADAVEAAAAAAAMBQQAAAAAAAgFZAAAAAAABAWEAAAAAAAEBQQAAAAAAAAFVAAAAAAACAUkAAAAAAACBXQAAAAAAAAFVAAAAAAACAS0AAAAAAAIBRQAAAAAAA4FBAAAAAAABATUAAAAAAAKBSQAAAAAAAAFdAAAAAAAAAVEAAAAAAAIBYQAAAAAAAwFVAAAAAAADATkAAAAAAACBUQAAAAAAAAFlAAAAAAACAUUAAAAAAAOBQQAAAAAAAgFBAAAAAAACgVkAAAAAAAIBSQAAAAAAA4FdAAAAAAAAAVEAAAAAAAKBXQAAAAAAAQFRAAAAAAACATEAAAAAAAEBXQAAAAAAAAFlAAAAAAABAVUAAAAAAAOBQQAAAAAAAQFRAAAAAAACAUEAAAAAAAIBLQAAAAAAAgFZAAAAAAACAT0AAAAAAAEBTQAAAAAAAYFBAAAAAAADATkAAAAAAAIBKQAAAAAAAAFRA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[102]},\"confidence when correct reject\":{\"__ndarray__\":\"AAAAAABAV0AAAAAAAKBRQAAAAAAAgFVAAAAAAADAUUAAAAAAAIBOQAAAAAAAAD9AAAAAAACAUEAAAAAAAEBQQAAAAAAAIFBAAAAAAABATkAAAAAAAEBSQAAAAAAAwFJAAAAAAADAU0AAAAAAAIBIQAAAAAAAQFVAAAAAAACAUUAAAAAAAEBGQAAAAAAAoFZAAAAAAABAVEAAAAAAAABZQAAAAAAAgFRAAAAAAAAAWUAAAAAAAMBQQAAAAAAAwFVAAAAAAAAAUUAAAAAAAIBFQAAAAAAAAFRAAAAAAAAAS0AAAAAAAABJQAAAAAAAAFRAAAAAAACAV0AAAAAAAMBTQAAAAAAAIFNAAAAAAABAVUAAAAAAAIBRQAAAAAAA4FBAAAAAAAAATEAAAAAAAIBIQAAAAAAAoFFAAAAAAACAUEAAAAAAAIBOQAAAAAAAAFBAAAAAAACgUkAAAAAAAABUQAAAAAAAgFBAAAAAAACAUEAAAAAAAAAzQAAAAAAAgERAAAAAAADAU0AAAAAAAEBQQAAAAAAAQFNAAAAAAAAAWUAAAAAAAEBTQAAAAAAAwEdAAAAAAAAgUEAAAAAAAEBUQAAAAAAAgFFAAAAAAAAgVEAAAAAAAEBRQAAAAAAAYFNAAAAAAACAUkAAAAAAAABMQAAAAAAAYFJAAAAAAAAAUUAAAAAAAMBXQAAAAAAAAFFAAAAAAAAASUAAAAAAAEBRQAAAAAAAgEtAAAAAAABgUkAAAAAAAIBSQAAAAAAAAFdAAAAAAACgU0AAAAAAAIBWQAAAAAAAQFFAAAAAAABATUAAAAAAAIBPQAAAAAAA4FFAAAAAAABATUAAAAAAAIBQQAAAAAAAgE9AAAAAAACgUkAAAAAAAABTQAAAAAAA4FRAAAAAAACAUUAAAAAAAIBVQAAAAAAAwFFAAAAAAADATUAAAAAAAMBWQAAAAAAAAFlAAAAAAACAVEAAAAAAAIBSQAAAAAAAoFJAAAAAAAAAUkAAAAAAAABUQAAAAAAAAFRAAAAAAADgUEAAAAAAAEBTQAAAAAAAwFVAAAAAAACAUUAAAAAAAABVQAAAAAAAAD9A\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[102]},\"confidence when incorrect\":{\"__ndarray__\":\"AAAAAACAVkAAAAAAAABJQAAAAAAAAFZAAAAAAAAAVEAAAAAAAIBIQAAAAAAAoFFAAAAAAAAAUEAAAAAAAIBOQAAAAAAAIFNAAAAAAABAUEAAAAAAAABQQAAAAAAA4FJAAAAAAACAT0AAAAAAAIBNQAAAAAAA4FRAAAAAAAAATEAAAAAAAEBSQAAAAAAAAFBAAAAAAAAATkAAAAAAAABZQAAAAAAAoFFAAAAAAAAAWUAAAAAAAABOQAAAAAAAYFJAAAAAAAAAS0AAAAAAAIBIQAAAAAAAwFBAAAAAAABAS0AAAAAAAABJQAAAAAAAwFRAAAAAAABAUEAAAAAAAABCQAAAAAAA4FBAAAAAAAAA+H8AAAAAAIBRQAAAAAAAwEtAAAAAAAAARkAAAAAAAAA9QAAAAAAAQEtAAAAAAAAASUAAAAAAAABLQAAAAAAAgExAAAAAAADAQUAAAAAAAMBQQAAAAAAAgDhAAAAAAADAT0AAAAAAAIBBQAAAAAAAgEZAAAAAAAAAS0AAAAAAAIBKQAAAAAAAAFVAAAAAAADAVkAAAAAAAAA/QAAAAAAAgElAAAAAAACARUAAAAAAAIBIQAAAAAAAAD1AAAAAAAAAU0AAAAAAAABEQAAAAAAAwFNAAAAAAADAS0AAAAAAAABRQAAAAAAAQFBAAAAAAAAAUUAAAAAAAEBQQAAAAAAAAE1AAAAAAACAQUAAAAAAAMBNQAAAAAAAAElAAAAAAADAR0AAAAAAAAD4fwAAAAAAYFJAAAAAAACAUUAAAAAAAABEQAAAAAAAwFBAAAAAAAAA+H8AAAAAAMBOQAAAAAAAwFRAAAAAAAAAREAAAAAAAIBKQAAAAAAAgEtAAAAAAABAVEAAAAAAAABQQAAAAAAAwFFAAAAAAACATUAAAAAAAMBQQAAAAAAAAE1AAAAAAAAASUAAAAAAAMBWQAAAAAAAAElAAAAAAABAVUAAAAAAAABQQAAAAAAAgFRAAAAAAADATUAAAAAAAABOQAAAAAAAwFJAAAAAAADATUAAAAAAAIBSQAAAAAAAAFRAAAAAAABAVEAAAAAAAIBJQAAAAAAAQFJA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[102]},\"confidence when incorrect hit\":{\"__ndarray__\":\"AAAAAACAVkAAAAAAAMBLQAAAAAAAgFZAAAAAAAAA+H8AAAAAAIBIQAAAAAAAgE9AAAAAAABATEAAAAAAAIBCQAAAAAAAIFNAAAAAAAAA+H8AAAAAAMBOQAAAAAAA4FJAAAAAAABAVkAAAAAAAABJQAAAAAAAQFRAAAAAAAAATEAAAAAAAAD4fwAAAAAAAFJAAAAAAAAA+H8AAAAAAAD4fwAAAAAAQFNAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAFJAAAAAAAAA+H8AAAAAAEBGQAAAAAAAwEtAAAAAAACATEAAAAAAAABQQAAAAAAAwFRAAAAAAABAVUAAAAAAAMBFQAAAAAAA4FVAAAAAAAAA+H8AAAAAAIBRQAAAAAAAwEtAAAAAAACAQEAAAAAAAAA9QAAAAAAAAERAAAAAAAAASUAAAAAAAAD4fwAAAAAAgEtAAAAAAADAQUAAAAAAAMBQQAAAAAAAADlAAAAAAAAA+H8AAAAAAIA8QAAAAAAAADtAAAAAAAAATEAAAAAAAIBKQAAAAAAAAFZAAAAAAAAAUkAAAAAAAAA9QAAAAAAAAEBAAAAAAAAA+H8AAAAAAIBIQAAAAAAAAD1AAAAAAADAVEAAAAAAAIBHQAAAAAAA4FRAAAAAAACAREAAAAAAAEBSQAAAAAAAwEtAAAAAAABAVkAAAAAAACBSQAAAAAAAgEtAAAAAAAAAPkAAAAAAAAAcQAAAAAAAgDxAAAAAAACARUAAAAAAAAD4fwAAAAAA4FJAAAAAAABAUEAAAAAAAAD4fwAAAAAAwEdAAAAAAAAA+H8AAAAAAMBJQAAAAAAAAPh/AAAAAAAAQ0AAAAAAAMBJQAAAAAAAgEtAAAAAAAAAVEAAAAAAAMBQQAAAAAAAAFFAAAAAAADATUAAAAAAAMBOQAAAAAAAAEpAAAAAAACATEAAAAAAAABXQAAAAAAAAPh/AAAAAAAAVkAAAAAAAIBQQAAAAAAAAPh/AAAAAAAATEAAAAAAAIBOQAAAAAAAwFJAAAAAAABASkAAAAAAAKBQQAAAAAAAYFVAAAAAAABAVEAAAAAAAIBCQAAAAAAAADtA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[102]},\"confidence when incorrect reject\":{\"__ndarray__\":\"AAAAAADgVEAAAAAAAABJQAAAAAAAQFRAAAAAAAAAVEAAAAAAAIBIQAAAAAAAIFJAAAAAAABAUEAAAAAAAGBUQAAAAAAAAPh/AAAAAABAUEAAAAAAAEBRQAAAAAAAAPh/AAAAAABATUAAAAAAAABRQAAAAAAAgFVAAAAAAAAA+H8AAAAAAEBSQAAAAAAAwEVAAAAAAAAATkAAAAAAAABZQAAAAAAA4FBAAAAAAAAAWUAAAAAAAABOQAAAAAAAQFNAAAAAAAAAS0AAAAAAAIBIQAAAAAAAwFJAAAAAAACASkAAAAAAAABJQAAAAAAAAPh/AAAAAACATkAAAAAAAAA1QAAAAAAAADtAAAAAAAAA+H8AAAAAAEBQQAAAAAAAQEpAAAAAAACASEAAAAAAAABCQAAAAAAAoFBAAAAAAABASUAAAAAAAABLQAAAAAAAgE1AAAAAAAAA+H8AAAAAAAD4fwAAAAAAADhAAAAAAADAT0AAAAAAAMBEQAAAAAAAgEZAAAAAAABARUAAAAAAAIBKQAAAAAAAAFRAAAAAAADAVkAAAAAAAABAQAAAAAAAoFNAAAAAAACARUAAAAAAAABCQAAAAAAAAD1AAAAAAAAAQkAAAAAAAABEQAAAAAAAQFFAAAAAAABAUkAAAAAAAABRQAAAAAAAgFFAAAAAAABAUEAAAAAAAEBQQAAAAAAAgE5AAAAAAAAAREAAAAAAAABOQAAAAAAAAEpAAAAAAADASkAAAAAAAAD4fwAAAAAAgE9AAAAAAACgUUAAAAAAAABEQAAAAAAAwFVAAAAAAAAA+H8AAAAAAEBRQAAAAAAAwFRAAAAAAABAUEAAAAAAAIBMQAAAAAAAQElAAAAAAADAVEAAAAAAAAAxQAAAAAAAwFRAAAAAAACAREAAAAAAAIBSQAAAAAAAAE1AAAAAAAAASUAAAAAAAEBWQAAAAAAAAElAAAAAAACAVEAAAAAAAIBMQAAAAAAAgFRAAAAAAACAT0AAAAAAAIBMQAAAAAAAAFRAAAAAAABgUEAAAAAAAGBTQAAAAAAAAFRAAAAAAACATkAAAAAAAABKQAAAAAAAoFRA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[102]},\"correct hit percentage\":[65,90,90,100,60,80,90,45,80,100,70,90,95,85,75,40,100,70,100,100,60,100,100,65,100,80,80,70,70,90,95,90,90,100,80,90,95,95,90,55,100,65,90,55,75,100,70,90,95,95,70,80,50,65,100,85,85,90,90,90,85,85,90,95,70,95,85,95,90,90,100,80,95,100,90,100,70,90,85,80,85,40,80,90,90,80,90,75,85,100,95,60,100,85,35,95,70,70,90,70,75,85],\"correct reject percentage\":[80,90,95,75,65,20,75,90,100,50,55,100,65,75,55,100,40,90,70,50,80,95,75,25,40,65,90,80,65,100,80,95,90,100,60,80,60,90,80,60,85,65,100,100,85,80,90,85,90,55,65,75,95,80,70,90,90,90,85,70,95,75,80,75,85,75,85,75,65,90,100,90,80,95,95,100,50,100,70,75,80,40,95,80,85,75,35,70,85,85,75,85,80,95,75,80,50,85,85,80,65,40],\"ess\":[2,7,3,20,12,2,3,9,10,7,19,0,8,4,7,14,12,10,11,12,1,6,4,6,2,5,1,3,4,5,12,4,4,11,6,3,11,10,12,6,13,12,5,10,4,4,6,3,0,12,6,5,9,7,6,10,18,11,8,16,7,9,11,4,7,4,11,12,3,3,4,11,1,4,2,9,1,2,12,6,5,5,4,9,3,8,6,10,21,5,5,9,1,8,11,5,7,10,7,15,7,7],\"gender\":[\"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\"],\"index\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101],\"insomnia\":[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false],\"participant number\":[8,16,18,22,27,28,30,33,34,35,38,41,46,49,55,71,76,77,78,80,89,90,93,100,101,1,2,3,4,5,6,7,9,10,11,12,13,14,15,17,19,20,21,23,24,25,26,29,31,32,36,37,39,40,42,43,44,45,48,50,51,52,53,54,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,72,73,74,75,79,81,82,83,84,85,86,87,88,91,92,94,95,96,97,98,99,102,103],\"percent correct\":{\"__ndarray__\":\"AAAAAAAgUkAAAAAAAIBWQAAAAAAAIFdAAAAAAADgVUAAAAAAAEBPQAAAAAAAAElAAAAAAACgVEAAAAAAAOBQQAAAAAAAgFZAAAAAAADAUkAAAAAAAEBPQAAAAAAAwFdAAAAAAAAAVEAAAAAAAABUQAAAAAAAQFBAAAAAAACAUUAAAAAAAIBRQAAAAAAAAFRAAAAAAABAVUAAAAAAAMBSQAAAAAAAgFFAAAAAAABgWEAAAAAAAOBVQAAAAAAAgEZAAAAAAACAUUAAAAAAACBSQAAAAAAAQFVAAAAAAADAUkAAAAAAAOBQQAAAAAAAwFdAAAAAAADgVUAAAAAAACBXQAAAAAAAgFZAAAAAAAAAWUAAAAAAAIBRQAAAAAAAQFVAAAAAAABgU0AAAAAAACBXQAAAAAAAQFVAAAAAAADATEAAAAAAACBXQAAAAAAAQFBAAAAAAADAV0AAAAAAAGBTQAAAAAAAAFRAAAAAAACAVkAAAAAAAABUQAAAAAAA4FVAAAAAAAAgV0AAAAAAAMBSQAAAAAAA4FBAAAAAAABgU0AAAAAAACBSQAAAAAAAIFJAAAAAAABAVUAAAAAAAOBVQAAAAAAA4FVAAAAAAACAVkAAAAAAAOBVQAAAAAAAAFRAAAAAAACAVkAAAAAAAABUQAAAAAAAQFVAAAAAAABAVUAAAAAAAGBTQAAAAAAAQFVAAAAAAABAVUAAAAAAAEBVQAAAAAAAYFNAAAAAAACAVkAAAAAAAABZQAAAAAAAQFVAAAAAAADgVUAAAAAAAGBYQAAAAAAAIFdAAAAAAAAAWUAAAAAAAABOQAAAAAAAwFdAAAAAAABgU0AAAAAAAGBTQAAAAAAAoFRAAAAAAAAAREAAAAAAAOBVQAAAAAAAQFVAAAAAAADgVUAAAAAAAGBTQAAAAAAAQE9AAAAAAAAgUkAAAAAAAEBVQAAAAAAAIFdAAAAAAABAVUAAAAAAACBSQAAAAAAAgFZAAAAAAACAVkAAAAAAAIBLQAAAAAAA4FVAAAAAAAAATkAAAAAAAGBTQAAAAAAA4FVAAAAAAADAUkAAAAAAAIBRQAAAAAAAQE9A\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[102]},\"psqi\":[13,11,9,8,9,14,9,9,12,8,5,7,12,13,13,11,4,10,6,7,8,9,7,15,7,1,5,1,5,7,7,3,3,10,4,5,2,2,2,5,2,3,3,4,9,5,2,1,4,8,2,2,6,3,1,5,7,3,6,6,1,6,4,4,3,5,2,7,4,0,5,1,1,4,1,8,4,2,7,4,1,7,4,5,6,4,2,3,4,3,1,5,2,1,1,3,6,8,8,2,4,5],\"sci\":[9,4,10,13,13,15,16,14,14,14,14,15,10,14,5,0,16,11,14,12,14,14,16,1,14,29,19,23,26,21,19,28,29,17,22,28,31,31,32,25,30,28,30,22,20,26,32,32,24,26,30,28,21,29,32,26,26,23,18,22,29,20,27,19,29,24,29,17,26,30,17,25,31,27,32,28,25,30,21,29,20,22,23,20,17,27,27,22,25,30,32,30,32,28,31,29,26,20,19,31,22,24]},\"selected\":{\"id\":\"1165\"},\"selection_policy\":{\"id\":\"1164\"}},\"id\":\"1138\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"axis\":{\"id\":\"1116\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1119\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1163\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"1114\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1110\",\"type\":\"DataRange1d\"}],\"root_ids\":[\"1107\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.2\"}};\n", " const render_items = [{\"docid\":\"6e40eb3c-1d08-4a54-9ccf-602c40729c9c\",\"root_ids\":[\"1107\"],\"roots\":{\"1107\":\"336624d7-e2dd-4ea9-a578-75ef01c65f51\"}}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " 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": "1107" } }, "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](l17_split_apply_combine.ipynb). 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.circle(` 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.circle()` to populate more and more glyphs.\n", "2. `p.circle()`, 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", "\n", "\n", "\n", "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " const docs_json = {\"7dd8f21b-7366-475f-8d16-60227d268b29\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1231\"}],\"center\":[{\"id\":\"1234\"},{\"id\":\"1238\"},{\"id\":\"1271\"}],\"frame_height\":300,\"frame_width\":400,\"left\":[{\"id\":\"1235\"}],\"renderers\":[{\"id\":\"1258\"},{\"id\":\"1278\"}],\"title\":{\"id\":\"1260\"},\"toolbar\":{\"id\":\"1246\"},\"x_range\":{\"id\":\"1223\"},\"x_scale\":{\"id\":\"1227\"},\"y_range\":{\"id\":\"1225\"},\"y_scale\":{\"id\":\"1229\"}},\"id\":\"1222\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1291\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1269\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1268\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data\":{\"age\":[42,45,16,21,18,28,38,17,25,22,41,53,43,23,19,45,43,35,24,64,36,35,43,44,29,22,46,35,53,29,31,21,42,23,54,24,21,21,43,50,53,16,67,36,34,42,46,69,31,44,25,45,47,33,18,74,21,45,37,41,41,34,39,18,31,26,66,62,22,41,46,56,23,70,24,40,33],\"confidence when correct\":{\"__ndarray__\":\"AAAAAACASUAAAAAAAKBTQAAAAAAAgExAAAAAAAAATkAAAAAAAABUQAAAAAAAwFhAAAAAAACAU0AAAAAAAKBTQAAAAAAAgFZAAAAAAACAUUAAAAAAAIBSQAAAAAAAgEdAAAAAAAAASkAAAAAAAABVQAAAAAAAgE9AAAAAAAAAT0AAAAAAAMBNQAAAAAAA4FJAAAAAAACAU0AAAAAAAIBPQAAAAAAAQFRAAAAAAAAAOEAAAAAAAABJQAAAAAAAQFRAAAAAAADAUEAAAAAAAEBTQAAAAAAAAFlAAAAAAAAAUUAAAAAAAABIQAAAAAAAgFJAAAAAAACAVEAAAAAAAMBQQAAAAAAAoFRAAAAAAADAUEAAAAAAAABWQAAAAAAAwFRAAAAAAADAT0AAAAAAACBUQAAAAAAAwFFAAAAAAADAV0AAAAAAAKBTQAAAAAAAQEpAAAAAAABAUUAAAAAAAIBOQAAAAAAAgFBAAAAAAACAUkAAAAAAAABXQAAAAAAAAFRAAAAAAAAAV0AAAAAAAMBUQAAAAAAAQE5AAAAAAAAgUkAAAAAAAGBYQAAAAAAAAFFAAAAAAADAUEAAAAAAAEBQQAAAAAAAgFRAAAAAAADAUkAAAAAAAIBXQAAAAAAAQFNAAAAAAAAAV0AAAAAAAEBUQAAAAAAAAE1AAAAAAADgVkAAAAAAAABZQAAAAAAAQFVAAAAAAACAUkAAAAAAAOBTQAAAAAAAoFFAAAAAAAAAUkAAAAAAAEBVQAAAAAAAAFBAAAAAAABAU0AAAAAAAIBSQAAAAAAAQFBAAAAAAABAVEAAAAAAAEBUQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"confidence when correct hit\":{\"__ndarray__\":\"AAAAAADASUAAAAAAAMBSQAAAAAAAgFFAAAAAAADAT0AAAAAAACBTQAAAAAAAAFlAAAAAAABAU0AAAAAAACBUQAAAAAAAgFZAAAAAAACAUUAAAAAAACBTQAAAAAAAAERAAAAAAAAASkAAAAAAAABWQAAAAAAAAE9AAAAAAAAAUUAAAAAAAIBNQAAAAAAA4FJAAAAAAAAAUUAAAAAAAABJQAAAAAAAAFZAAAAAAACAPUAAAAAAAGBQQAAAAAAAwFRAAAAAAADAUEAAAAAAAIBTQAAAAAAAIFJAAAAAAABAT0AAAAAAAABLQAAAAAAAwFJAAAAAAACAVEAAAAAAAIBQQAAAAAAAwFRAAAAAAADAUEAAAAAAAIBWQAAAAAAAQFhAAAAAAABAUEAAAAAAAABVQAAAAAAAgFJAAAAAAAAgV0AAAAAAAABVQAAAAAAAgEtAAAAAAACAUUAAAAAAAOBQQAAAAAAAQE1AAAAAAACgUkAAAAAAAABXQAAAAAAAAFRAAAAAAACAWEAAAAAAAMBVQAAAAAAAwE5AAAAAAAAgVEAAAAAAAABZQAAAAAAAgFFAAAAAAADgUEAAAAAAAIBQQAAAAAAAoFZAAAAAAACAUkAAAAAAAOBXQAAAAAAAAFRAAAAAAACgV0AAAAAAAEBUQAAAAAAAgExAAAAAAABAV0AAAAAAAABZQAAAAAAAQFVAAAAAAADgUEAAAAAAAEBUQAAAAAAAgFBAAAAAAACAS0AAAAAAAIBWQAAAAAAAgE9AAAAAAABAU0AAAAAAAGBQQAAAAAAAwE5AAAAAAACASkAAAAAAAABUQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"confidence when correct reject\":{\"__ndarray__\":\"AAAAAACARUAAAAAAAABUQAAAAAAAAEtAAAAAAAAASUAAAAAAAABUQAAAAAAAgFdAAAAAAADAU0AAAAAAACBTQAAAAAAAQFVAAAAAAACAUUAAAAAAAOBQQAAAAAAAAExAAAAAAACASEAAAAAAAKBRQAAAAAAAgFBAAAAAAACATkAAAAAAAABQQAAAAAAAoFJAAAAAAAAAVEAAAAAAAIBQQAAAAAAAgFBAAAAAAAAAM0AAAAAAAIBEQAAAAAAAwFNAAAAAAABAUEAAAAAAAEBTQAAAAAAAAFlAAAAAAABAU0AAAAAAAMBHQAAAAAAAIFBAAAAAAABAVEAAAAAAAIBRQAAAAAAAIFRAAAAAAABAUUAAAAAAAGBTQAAAAAAAgFJAAAAAAAAATEAAAAAAAGBSQAAAAAAAAFFAAAAAAADAV0AAAAAAAABRQAAAAAAAAElAAAAAAABAUUAAAAAAAIBLQAAAAAAAYFJAAAAAAACAUkAAAAAAAABXQAAAAAAAoFNAAAAAAACAVkAAAAAAAEBRQAAAAAAAQE1AAAAAAACAT0AAAAAAAOBRQAAAAAAAQE1AAAAAAACAUEAAAAAAAIBPQAAAAAAAoFJAAAAAAAAAU0AAAAAAAOBUQAAAAAAAgFFAAAAAAACAVUAAAAAAAMBRQAAAAAAAwE1AAAAAAADAVkAAAAAAAABZQAAAAAAAgFRAAAAAAACAUkAAAAAAAKBSQAAAAAAAAFJAAAAAAAAAVEAAAAAAAABUQAAAAAAA4FBAAAAAAABAU0AAAAAAAMBVQAAAAAAAgFFAAAAAAAAAVUAAAAAAAAA/QA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"confidence when incorrect\":{\"__ndarray__\":\"AAAAAACASEAAAAAAAMBQQAAAAAAAQEtAAAAAAAAASUAAAAAAAMBUQAAAAAAAQFBAAAAAAAAAQkAAAAAAAOBQQAAAAAAAAPh/AAAAAACAUUAAAAAAAMBLQAAAAAAAAEZAAAAAAAAAPUAAAAAAAEBLQAAAAAAAAElAAAAAAAAAS0AAAAAAAIBMQAAAAAAAwEFAAAAAAADAUEAAAAAAAIA4QAAAAAAAwE9AAAAAAACAQUAAAAAAAIBGQAAAAAAAAEtAAAAAAACASkAAAAAAAABVQAAAAAAAwFZAAAAAAAAAP0AAAAAAAIBJQAAAAAAAgEVAAAAAAACASEAAAAAAAAA9QAAAAAAAAFNAAAAAAAAAREAAAAAAAMBTQAAAAAAAwEtAAAAAAAAAUUAAAAAAAEBQQAAAAAAAAFFAAAAAAABAUEAAAAAAAABNQAAAAAAAgEFAAAAAAADATUAAAAAAAABJQAAAAAAAwEdAAAAAAAAA+H8AAAAAAGBSQAAAAAAAgFFAAAAAAAAAREAAAAAAAMBQQAAAAAAAAPh/AAAAAADATkAAAAAAAMBUQAAAAAAAAERAAAAAAACASkAAAAAAAIBLQAAAAAAAQFRAAAAAAAAAUEAAAAAAAMBRQAAAAAAAgE1AAAAAAADAUEAAAAAAAABNQAAAAAAAAElAAAAAAADAVkAAAAAAAABJQAAAAAAAQFVAAAAAAAAAUEAAAAAAAIBUQAAAAAAAwE1AAAAAAAAATkAAAAAAAMBSQAAAAAAAwE1AAAAAAACAUkAAAAAAAABUQAAAAAAAQFRAAAAAAACASUAAAAAAAEBSQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"confidence when incorrect hit\":{\"__ndarray__\":\"AAAAAABARkAAAAAAAMBLQAAAAAAAgExAAAAAAAAAUEAAAAAAAMBUQAAAAAAAQFVAAAAAAADARUAAAAAAAOBVQAAAAAAAAPh/AAAAAACAUUAAAAAAAMBLQAAAAAAAgEBAAAAAAAAAPUAAAAAAAABEQAAAAAAAAElAAAAAAAAA+H8AAAAAAIBLQAAAAAAAwEFAAAAAAADAUEAAAAAAAAA5QAAAAAAAAPh/AAAAAACAPEAAAAAAAAA7QAAAAAAAAExAAAAAAACASkAAAAAAAABWQAAAAAAAAFJAAAAAAAAAPUAAAAAAAABAQAAAAAAAAPh/AAAAAACASEAAAAAAAAA9QAAAAAAAwFRAAAAAAACAR0AAAAAAAOBUQAAAAAAAgERAAAAAAABAUkAAAAAAAMBLQAAAAAAAQFZAAAAAAAAgUkAAAAAAAIBLQAAAAAAAAD5AAAAAAAAAHEAAAAAAAIA8QAAAAAAAgEVAAAAAAAAA+H8AAAAAAOBSQAAAAAAAQFBAAAAAAAAA+H8AAAAAAMBHQAAAAAAAAPh/AAAAAADASUAAAAAAAAD4fwAAAAAAAENAAAAAAADASUAAAAAAAIBLQAAAAAAAAFRAAAAAAADAUEAAAAAAAABRQAAAAAAAwE1AAAAAAADATkAAAAAAAABKQAAAAAAAgExAAAAAAAAAV0AAAAAAAAD4fwAAAAAAAFZAAAAAAACAUEAAAAAAAAD4fwAAAAAAAExAAAAAAACATkAAAAAAAMBSQAAAAAAAQEpAAAAAAACgUEAAAAAAAGBVQAAAAAAAQFRAAAAAAACAQkAAAAAAAAA7QA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"confidence when incorrect reject\":{\"__ndarray__\":\"AAAAAACASEAAAAAAAMBSQAAAAAAAgEpAAAAAAAAASUAAAAAAAAD4fwAAAAAAgE5AAAAAAAAANUAAAAAAAAA7QAAAAAAAAPh/AAAAAABAUEAAAAAAAEBKQAAAAAAAgEhAAAAAAAAAQkAAAAAAAKBQQAAAAAAAQElAAAAAAAAAS0AAAAAAAIBNQAAAAAAAAPh/AAAAAAAA+H8AAAAAAAA4QAAAAAAAwE9AAAAAAADAREAAAAAAAIBGQAAAAAAAQEVAAAAAAACASkAAAAAAAABUQAAAAAAAwFZAAAAAAAAAQEAAAAAAAKBTQAAAAAAAgEVAAAAAAAAAQkAAAAAAAAA9QAAAAAAAAEJAAAAAAAAAREAAAAAAAEBRQAAAAAAAQFJAAAAAAAAAUUAAAAAAAIBRQAAAAAAAQFBAAAAAAABAUEAAAAAAAIBOQAAAAAAAAERAAAAAAAAATkAAAAAAAABKQAAAAAAAwEpAAAAAAAAA+H8AAAAAAIBPQAAAAAAAoFFAAAAAAAAAREAAAAAAAMBVQAAAAAAAAPh/AAAAAABAUUAAAAAAAMBUQAAAAAAAQFBAAAAAAACATEAAAAAAAEBJQAAAAAAAwFRAAAAAAAAAMUAAAAAAAMBUQAAAAAAAgERAAAAAAACAUkAAAAAAAABNQAAAAAAAAElAAAAAAABAVkAAAAAAAABJQAAAAAAAgFRAAAAAAACATEAAAAAAAIBUQAAAAAAAgE9AAAAAAACATEAAAAAAAABUQAAAAAAAYFBAAAAAAABgU0AAAAAAAABUQAAAAAAAgE5AAAAAAAAASkAAAAAAAKBUQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"correct hit percentage\":[80,80,70,70,90,95,90,90,100,80,90,95,95,90,55,100,65,90,55,75,100,70,90,95,95,70,80,50,65,100,85,85,90,90,90,85,85,90,95,70,95,85,95,90,90,100,80,95,100,90,100,70,90,85,80,85,40,80,90,90,80,90,75,85,100,95,60,100,85,35,95,70,70,90,70,75,85],\"correct reject percentage\":[65,90,80,65,100,80,95,90,100,60,80,60,90,80,60,85,65,100,100,85,80,90,85,90,55,65,75,95,80,70,90,90,90,85,70,95,75,80,75,85,75,85,75,65,90,100,90,80,95,95,100,50,100,70,75,80,40,95,80,85,75,35,70,85,85,75,85,80,95,75,80,50,85,85,80,65,40],\"ess\":[5,1,3,4,5,12,4,4,11,6,3,11,10,12,6,13,12,5,10,4,4,6,3,0,12,6,5,9,7,6,10,18,11,8,16,7,9,11,4,7,4,11,12,3,3,4,11,1,4,2,9,1,2,12,6,5,5,4,9,3,8,6,10,21,5,5,9,1,8,11,5,7,10,7,15,7,7],\"gender\":[\"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\"],\"index\":[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101],\"insomnia\":[false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false],\"participant number\":[1,2,3,4,5,6,7,9,10,11,12,13,14,15,17,19,20,21,23,24,25,26,29,31,32,36,37,39,40,42,43,44,45,48,50,51,52,53,54,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,72,73,74,75,79,81,82,83,84,85,86,87,88,91,92,94,95,96,97,98,99,102,103],\"percent correct\":{\"__ndarray__\":\"AAAAAAAgUkAAAAAAAEBVQAAAAAAAwFJAAAAAAADgUEAAAAAAAMBXQAAAAAAA4FVAAAAAAAAgV0AAAAAAAIBWQAAAAAAAAFlAAAAAAACAUUAAAAAAAEBVQAAAAAAAYFNAAAAAAAAgV0AAAAAAAEBVQAAAAAAAwExAAAAAAAAgV0AAAAAAAEBQQAAAAAAAwFdAAAAAAABgU0AAAAAAAABUQAAAAAAAgFZAAAAAAAAAVEAAAAAAAOBVQAAAAAAAIFdAAAAAAADAUkAAAAAAAOBQQAAAAAAAYFNAAAAAAAAgUkAAAAAAACBSQAAAAAAAQFVAAAAAAADgVUAAAAAAAOBVQAAAAAAAgFZAAAAAAADgVUAAAAAAAABUQAAAAAAAgFZAAAAAAAAAVEAAAAAAAEBVQAAAAAAAQFVAAAAAAABgU0AAAAAAAEBVQAAAAAAAQFVAAAAAAABAVUAAAAAAAGBTQAAAAAAAgFZAAAAAAAAAWUAAAAAAAEBVQAAAAAAA4FVAAAAAAABgWEAAAAAAACBXQAAAAAAAAFlAAAAAAAAATkAAAAAAAMBXQAAAAAAAYFNAAAAAAABgU0AAAAAAAKBUQAAAAAAAAERAAAAAAADgVUAAAAAAAEBVQAAAAAAA4FVAAAAAAABgU0AAAAAAAEBPQAAAAAAAIFJAAAAAAABAVUAAAAAAACBXQAAAAAAAQFVAAAAAAAAgUkAAAAAAAIBWQAAAAAAAgFZAAAAAAACAS0AAAAAAAOBVQAAAAAAAAE5AAAAAAABgU0AAAAAAAOBVQAAAAAAAwFJAAAAAAACAUUAAAAAAAEBPQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"psqi\":[1,5,1,5,7,7,3,3,10,4,5,2,2,2,5,2,3,3,4,9,5,2,1,4,8,2,2,6,3,1,5,7,3,6,6,1,6,4,4,3,5,2,7,4,0,5,1,1,4,1,8,4,2,7,4,1,7,4,5,6,4,2,3,4,3,1,5,2,1,1,3,6,8,8,2,4,5],\"sci\":[29,19,23,26,21,19,28,29,17,22,28,31,31,32,25,30,28,30,22,20,26,32,32,24,26,30,28,21,29,32,26,26,23,18,22,29,20,27,19,29,24,29,17,26,30,17,25,31,27,32,28,25,30,21,29,20,22,23,20,17,27,27,22,25,30,32,30,32,28,31,29,26,20,19,31,22,24]},\"selected\":{\"id\":\"1269\"},\"selection_policy\":{\"id\":\"1268\"}},\"id\":\"1253\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1290\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"fill_color\":{\"value\":\"orange\"},\"hatch_color\":{\"value\":\"orange\"},\"line_color\":{\"value\":\"orange\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1275\",\"type\":\"Circle\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"items\":[{\"id\":\"1272\"},{\"id\":\"1293\"}]},\"id\":\"1271\",\"type\":\"Legend\"},{\"attributes\":{\"overlay\":{\"id\":\"1245\"}},\"id\":\"1241\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"data\":{\"age\":[39,42,31,35,74,61,32,62,33,53,41,36,40,24,32,40,61,42,31,28,26,45,28,44,28],\"confidence when correct\":{\"__ndarray__\":\"AAAAAABAV0AAAAAAAMBSQAAAAAAAQFZAAAAAAAAAVkAAAAAAAEBQQAAAAAAAIFBAAAAAAACAUEAAAAAAAABPQAAAAAAAAFFAAAAAAADAUUAAAAAAAIBUQAAAAAAAAFNAAAAAAADgU0AAAAAAAIBLQAAAAAAAQFVAAAAAAACAUUAAAAAAAEBLQAAAAAAAIFZAAAAAAADgVUAAAAAAAABZQAAAAAAAQFNAAAAAAAAAWUAAAAAAAABUQAAAAAAAYFFAAAAAAABAVEA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"confidence when correct hit\":{\"__ndarray__\":\"AAAAAADAVkAAAAAAAOBSQAAAAAAAYFZAAAAAAABgVkAAAAAAACBRQAAAAAAAwFFAAAAAAADAUEAAAAAAAABLQAAAAAAAoFFAAAAAAACgUkAAAAAAAIBUQAAAAAAAIFNAAAAAAAAAVEAAAAAAAABNQAAAAAAAQFVAAAAAAABAUUAAAAAAAGBRQAAAAAAAwFVAAAAAAAAAV0AAAAAAAABZQAAAAAAAgFFAAAAAAAAAWUAAAAAAAGBWQAAAAAAAAE9AAAAAAADAVUA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"confidence when correct reject\":{\"__ndarray__\":\"AAAAAABAV0AAAAAAAKBRQAAAAAAAgFVAAAAAAADAUUAAAAAAAIBOQAAAAAAAAD9AAAAAAACAUEAAAAAAAEBQQAAAAAAAIFBAAAAAAABATkAAAAAAAEBSQAAAAAAAwFJAAAAAAADAU0AAAAAAAIBIQAAAAAAAQFVAAAAAAACAUUAAAAAAAEBGQAAAAAAAoFZAAAAAAABAVEAAAAAAAABZQAAAAAAAgFRAAAAAAAAAWUAAAAAAAMBQQAAAAAAAwFVAAAAAAAAAUUA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"confidence when incorrect\":{\"__ndarray__\":\"AAAAAACAVkAAAAAAAABJQAAAAAAAAFZAAAAAAAAAVEAAAAAAAIBIQAAAAAAAoFFAAAAAAAAAUEAAAAAAAIBOQAAAAAAAIFNAAAAAAABAUEAAAAAAAABQQAAAAAAA4FJAAAAAAACAT0AAAAAAAIBNQAAAAAAA4FRAAAAAAAAATEAAAAAAAEBSQAAAAAAAAFBAAAAAAAAATkAAAAAAAABZQAAAAAAAoFFAAAAAAAAAWUAAAAAAAABOQAAAAAAAYFJAAAAAAAAAS0A=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"confidence when incorrect hit\":{\"__ndarray__\":\"AAAAAACAVkAAAAAAAMBLQAAAAAAAgFZAAAAAAAAA+H8AAAAAAIBIQAAAAAAAgE9AAAAAAABATEAAAAAAAIBCQAAAAAAAIFNAAAAAAAAA+H8AAAAAAMBOQAAAAAAA4FJAAAAAAABAVkAAAAAAAABJQAAAAAAAQFRAAAAAAAAATEAAAAAAAAD4fwAAAAAAAFJAAAAAAAAA+H8AAAAAAAD4fwAAAAAAQFNAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAFJAAAAAAAAA+H8=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"confidence when incorrect reject\":{\"__ndarray__\":\"AAAAAADgVEAAAAAAAABJQAAAAAAAQFRAAAAAAAAAVEAAAAAAAIBIQAAAAAAAIFJAAAAAAABAUEAAAAAAAGBUQAAAAAAAAPh/AAAAAABAUEAAAAAAAEBRQAAAAAAAAPh/AAAAAABATUAAAAAAAABRQAAAAAAAgFVAAAAAAAAA+H8AAAAAAEBSQAAAAAAAwEVAAAAAAAAATkAAAAAAAABZQAAAAAAA4FBAAAAAAAAAWUAAAAAAAABOQAAAAAAAQFNAAAAAAAAAS0A=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"correct hit percentage\":[65,90,90,100,60,80,90,45,80,100,70,90,95,85,75,40,100,70,100,100,60,100,100,65,100],\"correct reject percentage\":[80,90,95,75,65,20,75,90,100,50,55,100,65,75,55,100,40,90,70,50,80,95,75,25,40],\"ess\":[2,7,3,20,12,2,3,9,10,7,19,0,8,4,7,14,12,10,11,12,1,6,4,6,2],\"gender\":[\"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\"],\"index\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24],\"insomnia\":[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],\"participant number\":[8,16,18,22,27,28,30,33,34,35,38,41,46,49,55,71,76,77,78,80,89,90,93,100,101],\"percent correct\":{\"__ndarray__\":\"AAAAAAAgUkAAAAAAAIBWQAAAAAAAIFdAAAAAAADgVUAAAAAAAEBPQAAAAAAAAElAAAAAAACgVEAAAAAAAOBQQAAAAAAAgFZAAAAAAADAUkAAAAAAAEBPQAAAAAAAwFdAAAAAAAAAVEAAAAAAAABUQAAAAAAAQFBAAAAAAACAUUAAAAAAAIBRQAAAAAAAAFRAAAAAAABAVUAAAAAAAMBSQAAAAAAAgFFAAAAAAABgWEAAAAAAAOBVQAAAAAAAgEZAAAAAAACAUUA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"psqi\":[13,11,9,8,9,14,9,9,12,8,5,7,12,13,13,11,4,10,6,7,8,9,7,15,7],\"sci\":[9,4,10,13,13,15,16,14,14,14,14,15,10,14,5,0,16,11,14,12,14,14,16,1,14]},\"selected\":{\"id\":\"1291\"},\"selection_policy\":{\"id\":\"1290\"}},\"id\":\"1273\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1243\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"1223\",\"type\":\"DataRange1d\"},{\"attributes\":{\"tools\":[{\"id\":\"1239\"},{\"id\":\"1240\"},{\"id\":\"1241\"},{\"id\":\"1242\"},{\"id\":\"1243\"},{\"id\":\"1244\"}]},\"id\":\"1246\",\"type\":\"Toolbar\"},{\"attributes\":{\"axis\":{\"id\":\"1235\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"1238\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1244\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"1229\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1267\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"1225\",\"type\":\"DataRange1d\"},{\"attributes\":{\"source\":{\"id\":\"1253\"}},\"id\":\"1259\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1227\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis_label\":\"confidence when correct\",\"coordinates\":null,\"formatter\":{\"id\":\"1266\"},\"group\":null,\"major_label_policy\":{\"id\":\"1267\"},\"ticker\":{\"id\":\"1232\"}},\"id\":\"1231\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1264\",\"type\":\"AllLabels\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.2},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1257\",\"type\":\"Circle\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1253\"},\"glyph\":{\"id\":\"1255\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1257\"},\"nonselection_glyph\":{\"id\":\"1256\"},\"view\":{\"id\":\"1259\"}},\"id\":\"1258\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1236\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1266\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"fill_color\":{\"value\":\"#1f77b4\"},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1255\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1239\",\"type\":\"PanTool\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.1},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1256\",\"type\":\"Circle\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"1245\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"label\":{\"value\":\"normal sleepers\"},\"renderers\":[{\"id\":\"1258\"}]},\"id\":\"1272\",\"type\":\"LegendItem\"},{\"attributes\":{\"label\":{\"value\":\"insomniacs\"},\"renderers\":[{\"id\":\"1278\"}]},\"id\":\"1293\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"1240\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"axis\":{\"id\":\"1231\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1234\",\"type\":\"Grid\"},{\"attributes\":{\"source\":{\"id\":\"1273\"}},\"id\":\"1279\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1242\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1263\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1232\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis_label\":\"confidence when incorrect\",\"coordinates\":null,\"formatter\":{\"id\":\"1263\"},\"group\":null,\"major_label_policy\":{\"id\":\"1264\"},\"ticker\":{\"id\":\"1236\"}},\"id\":\"1235\",\"type\":\"LinearAxis\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"orange\"},\"hatch_alpha\":{\"value\":0.2},\"hatch_color\":{\"value\":\"orange\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"orange\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1277\",\"type\":\"Circle\"},{\"attributes\":{\"coordinates\":null,\"group\":null},\"id\":\"1260\",\"type\":\"Title\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1273\"},\"glyph\":{\"id\":\"1275\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1277\"},\"nonselection_glyph\":{\"id\":\"1276\"},\"view\":{\"id\":\"1279\"}},\"id\":\"1278\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"orange\"},\"hatch_alpha\":{\"value\":0.1},\"hatch_color\":{\"value\":\"orange\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"orange\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1276\",\"type\":\"Circle\"}],\"root_ids\":[\"1222\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.2\"}};\n", " const render_items = [{\"docid\":\"7dd8f21b-7366-475f-8d16-60227d268b29\",\"root_ids\":[\"1222\"],\"roots\":{\"1222\":\"921e9729-243a-44ce-a534-7d6e3bd7264a\"}}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " 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": "1222" } }, "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", " frame_width=400,\n", " frame_height=300,\n", " x_axis_label=x,\n", " y_axis_label=y,\n", ")\n", "\n", "# Add glyphs\n", "p.circle(\n", " source=df.loc[~df['insomnia'], :],\n", " x=x,\n", " y=y,\n", " legend_label='normal sleepers'\n", ")\n", "\n", "p.circle(\n", " source=df.loc[df['insomnia'], :],\n", " x=x,\n", " y=y,\n", " color='orange',\n", " legend_label='insomniacs'\n", ")\n", "\n", "bokeh.io.show(p)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " const docs_json = {\"b531a2b5-d363-44fc-a1d2-02e8a42470fb\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1403\"}],\"center\":[{\"id\":\"1406\"},{\"id\":\"1410\"},{\"id\":\"1443\"}],\"frame_height\":300,\"frame_width\":400,\"left\":[{\"id\":\"1407\"}],\"renderers\":[{\"id\":\"1430\"},{\"id\":\"1450\"}],\"title\":{\"id\":\"1432\"},\"toolbar\":{\"id\":\"1418\"},\"x_range\":{\"id\":\"1395\"},\"x_scale\":{\"id\":\"1399\"},\"y_range\":{\"id\":\"1397\"},\"y_scale\":{\"id\":\"1401\"}},\"id\":\"1394\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1411\",\"type\":\"PanTool\"},{\"attributes\":{\"axis\":{\"id\":\"1403\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1406\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1412\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"1416\",\"type\":\"HelpTool\"},{\"attributes\":{\"fill_color\":{\"value\":\"orange\"},\"hatch_color\":{\"value\":\"orange\"},\"line_color\":{\"value\":\"orange\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1447\",\"type\":\"Circle\"},{\"attributes\":{\"overlay\":{\"id\":\"1417\"}},\"id\":\"1413\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"source\":{\"id\":\"1425\"}},\"id\":\"1431\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1414\",\"type\":\"SaveTool\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.2},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1429\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1415\",\"type\":\"ResetTool\"},{\"attributes\":{\"data\":{\"age\":[39,42,31,35,74,61,32,62,33,53,41,36,40,24,32,40,61,42,31,28,26,45,28,44,28],\"confidence when correct\":{\"__ndarray__\":\"AAAAAABAV0AAAAAAAMBSQAAAAAAAQFZAAAAAAAAAVkAAAAAAAEBQQAAAAAAAIFBAAAAAAACAUEAAAAAAAABPQAAAAAAAAFFAAAAAAADAUUAAAAAAAIBUQAAAAAAAAFNAAAAAAADgU0AAAAAAAIBLQAAAAAAAQFVAAAAAAACAUUAAAAAAAEBLQAAAAAAAIFZAAAAAAADgVUAAAAAAAABZQAAAAAAAQFNAAAAAAAAAWUAAAAAAAABUQAAAAAAAYFFAAAAAAABAVEA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"confidence when correct hit\":{\"__ndarray__\":\"AAAAAADAVkAAAAAAAOBSQAAAAAAAYFZAAAAAAABgVkAAAAAAACBRQAAAAAAAwFFAAAAAAADAUEAAAAAAAABLQAAAAAAAoFFAAAAAAACgUkAAAAAAAIBUQAAAAAAAIFNAAAAAAAAAVEAAAAAAAABNQAAAAAAAQFVAAAAAAABAUUAAAAAAAGBRQAAAAAAAwFVAAAAAAAAAV0AAAAAAAABZQAAAAAAAgFFAAAAAAAAAWUAAAAAAAGBWQAAAAAAAAE9AAAAAAADAVUA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"confidence when correct reject\":{\"__ndarray__\":\"AAAAAABAV0AAAAAAAKBRQAAAAAAAgFVAAAAAAADAUUAAAAAAAIBOQAAAAAAAAD9AAAAAAACAUEAAAAAAAEBQQAAAAAAAIFBAAAAAAABATkAAAAAAAEBSQAAAAAAAwFJAAAAAAADAU0AAAAAAAIBIQAAAAAAAQFVAAAAAAACAUUAAAAAAAEBGQAAAAAAAoFZAAAAAAABAVEAAAAAAAABZQAAAAAAAgFRAAAAAAAAAWUAAAAAAAMBQQAAAAAAAwFVAAAAAAAAAUUA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"confidence when incorrect\":{\"__ndarray__\":\"AAAAAACAVkAAAAAAAABJQAAAAAAAAFZAAAAAAAAAVEAAAAAAAIBIQAAAAAAAoFFAAAAAAAAAUEAAAAAAAIBOQAAAAAAAIFNAAAAAAABAUEAAAAAAAABQQAAAAAAA4FJAAAAAAACAT0AAAAAAAIBNQAAAAAAA4FRAAAAAAAAATEAAAAAAAEBSQAAAAAAAAFBAAAAAAAAATkAAAAAAAABZQAAAAAAAoFFAAAAAAAAAWUAAAAAAAABOQAAAAAAAYFJAAAAAAAAAS0A=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"confidence when incorrect hit\":{\"__ndarray__\":\"AAAAAACAVkAAAAAAAMBLQAAAAAAAgFZAAAAAAAAA+H8AAAAAAIBIQAAAAAAAgE9AAAAAAABATEAAAAAAAIBCQAAAAAAAIFNAAAAAAAAA+H8AAAAAAMBOQAAAAAAA4FJAAAAAAABAVkAAAAAAAABJQAAAAAAAQFRAAAAAAAAATEAAAAAAAAD4fwAAAAAAAFJAAAAAAAAA+H8AAAAAAAD4fwAAAAAAQFNAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAFJAAAAAAAAA+H8=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"confidence when incorrect reject\":{\"__ndarray__\":\"AAAAAADgVEAAAAAAAABJQAAAAAAAQFRAAAAAAAAAVEAAAAAAAIBIQAAAAAAAIFJAAAAAAABAUEAAAAAAAGBUQAAAAAAAAPh/AAAAAABAUEAAAAAAAEBRQAAAAAAAAPh/AAAAAABATUAAAAAAAABRQAAAAAAAgFVAAAAAAAAA+H8AAAAAAEBSQAAAAAAAwEVAAAAAAAAATkAAAAAAAABZQAAAAAAA4FBAAAAAAAAAWUAAAAAAAABOQAAAAAAAQFNAAAAAAAAAS0A=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"correct hit percentage\":[65,90,90,100,60,80,90,45,80,100,70,90,95,85,75,40,100,70,100,100,60,100,100,65,100],\"correct reject percentage\":[80,90,95,75,65,20,75,90,100,50,55,100,65,75,55,100,40,90,70,50,80,95,75,25,40],\"ess\":[2,7,3,20,12,2,3,9,10,7,19,0,8,4,7,14,12,10,11,12,1,6,4,6,2],\"gender\":[\"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\"],\"index\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24],\"insomnia\":[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],\"participant number\":[8,16,18,22,27,28,30,33,34,35,38,41,46,49,55,71,76,77,78,80,89,90,93,100,101],\"percent correct\":{\"__ndarray__\":\"AAAAAAAgUkAAAAAAAIBWQAAAAAAAIFdAAAAAAADgVUAAAAAAAEBPQAAAAAAAAElAAAAAAACgVEAAAAAAAOBQQAAAAAAAgFZAAAAAAADAUkAAAAAAAEBPQAAAAAAAwFdAAAAAAAAAVEAAAAAAAABUQAAAAAAAQFBAAAAAAACAUUAAAAAAAIBRQAAAAAAAAFRAAAAAAABAVUAAAAAAAMBSQAAAAAAAgFFAAAAAAABgWEAAAAAAAOBVQAAAAAAAgEZAAAAAAACAUUA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"psqi\":[13,11,9,8,9,14,9,9,12,8,5,7,12,13,13,11,4,10,6,7,8,9,7,15,7],\"sci\":[9,4,10,13,13,15,16,14,14,14,14,15,10,14,5,0,16,11,14,12,14,14,16,1,14]},\"selected\":{\"id\":\"1463\"},\"selection_policy\":{\"id\":\"1462\"}},\"id\":\"1445\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"1417\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"data\":{\"age\":[42,45,16,21,18,28,38,17,25,22,41,53,43,23,19,45,43,35,24,64,36,35,43,44,29,22,46,35,53,29,31,21,42,23,54,24,21,21,43,50,53,16,67,36,34,42,46,69,31,44,25,45,47,33,18,74,21,45,37,41,41,34,39,18,31,26,66,62,22,41,46,56,23,70,24,40,33],\"confidence when correct\":{\"__ndarray__\":\"AAAAAACASUAAAAAAAKBTQAAAAAAAgExAAAAAAAAATkAAAAAAAABUQAAAAAAAwFhAAAAAAACAU0AAAAAAAKBTQAAAAAAAgFZAAAAAAACAUUAAAAAAAIBSQAAAAAAAgEdAAAAAAAAASkAAAAAAAABVQAAAAAAAgE9AAAAAAAAAT0AAAAAAAMBNQAAAAAAA4FJAAAAAAACAU0AAAAAAAIBPQAAAAAAAQFRAAAAAAAAAOEAAAAAAAABJQAAAAAAAQFRAAAAAAADAUEAAAAAAAEBTQAAAAAAAAFlAAAAAAAAAUUAAAAAAAABIQAAAAAAAgFJAAAAAAACAVEAAAAAAAMBQQAAAAAAAoFRAAAAAAADAUEAAAAAAAABWQAAAAAAAwFRAAAAAAADAT0AAAAAAACBUQAAAAAAAwFFAAAAAAADAV0AAAAAAAKBTQAAAAAAAQEpAAAAAAABAUUAAAAAAAIBOQAAAAAAAgFBAAAAAAACAUkAAAAAAAABXQAAAAAAAAFRAAAAAAAAAV0AAAAAAAMBUQAAAAAAAQE5AAAAAAAAgUkAAAAAAAGBYQAAAAAAAAFFAAAAAAADAUEAAAAAAAEBQQAAAAAAAgFRAAAAAAADAUkAAAAAAAIBXQAAAAAAAQFNAAAAAAAAAV0AAAAAAAEBUQAAAAAAAAE1AAAAAAADgVkAAAAAAAABZQAAAAAAAQFVAAAAAAACAUkAAAAAAAOBTQAAAAAAAoFFAAAAAAAAAUkAAAAAAAEBVQAAAAAAAAFBAAAAAAABAU0AAAAAAAIBSQAAAAAAAQFBAAAAAAABAVEAAAAAAAEBUQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"confidence when correct hit\":{\"__ndarray__\":\"AAAAAADASUAAAAAAAMBSQAAAAAAAgFFAAAAAAADAT0AAAAAAACBTQAAAAAAAAFlAAAAAAABAU0AAAAAAACBUQAAAAAAAgFZAAAAAAACAUUAAAAAAACBTQAAAAAAAAERAAAAAAAAASkAAAAAAAABWQAAAAAAAAE9AAAAAAAAAUUAAAAAAAIBNQAAAAAAA4FJAAAAAAAAAUUAAAAAAAABJQAAAAAAAAFZAAAAAAACAPUAAAAAAAGBQQAAAAAAAwFRAAAAAAADAUEAAAAAAAIBTQAAAAAAAIFJAAAAAAABAT0AAAAAAAABLQAAAAAAAwFJAAAAAAACAVEAAAAAAAIBQQAAAAAAAwFRAAAAAAADAUEAAAAAAAIBWQAAAAAAAQFhAAAAAAABAUEAAAAAAAABVQAAAAAAAgFJAAAAAAAAgV0AAAAAAAABVQAAAAAAAgEtAAAAAAACAUUAAAAAAAOBQQAAAAAAAQE1AAAAAAACgUkAAAAAAAABXQAAAAAAAAFRAAAAAAACAWEAAAAAAAMBVQAAAAAAAwE5AAAAAAAAgVEAAAAAAAABZQAAAAAAAgFFAAAAAAADgUEAAAAAAAIBQQAAAAAAAoFZAAAAAAACAUkAAAAAAAOBXQAAAAAAAAFRAAAAAAACgV0AAAAAAAEBUQAAAAAAAgExAAAAAAABAV0AAAAAAAABZQAAAAAAAQFVAAAAAAADgUEAAAAAAAEBUQAAAAAAAgFBAAAAAAACAS0AAAAAAAIBWQAAAAAAAgE9AAAAAAABAU0AAAAAAAGBQQAAAAAAAwE5AAAAAAACASkAAAAAAAABUQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"confidence when correct reject\":{\"__ndarray__\":\"AAAAAACARUAAAAAAAABUQAAAAAAAAEtAAAAAAAAASUAAAAAAAABUQAAAAAAAgFdAAAAAAADAU0AAAAAAACBTQAAAAAAAQFVAAAAAAACAUUAAAAAAAOBQQAAAAAAAAExAAAAAAACASEAAAAAAAKBRQAAAAAAAgFBAAAAAAACATkAAAAAAAABQQAAAAAAAoFJAAAAAAAAAVEAAAAAAAIBQQAAAAAAAgFBAAAAAAAAAM0AAAAAAAIBEQAAAAAAAwFNAAAAAAABAUEAAAAAAAEBTQAAAAAAAAFlAAAAAAABAU0AAAAAAAMBHQAAAAAAAIFBAAAAAAABAVEAAAAAAAIBRQAAAAAAAIFRAAAAAAABAUUAAAAAAAGBTQAAAAAAAgFJAAAAAAAAATEAAAAAAAGBSQAAAAAAAAFFAAAAAAADAV0AAAAAAAABRQAAAAAAAAElAAAAAAABAUUAAAAAAAIBLQAAAAAAAYFJAAAAAAACAUkAAAAAAAABXQAAAAAAAoFNAAAAAAACAVkAAAAAAAEBRQAAAAAAAQE1AAAAAAACAT0AAAAAAAOBRQAAAAAAAQE1AAAAAAACAUEAAAAAAAIBPQAAAAAAAoFJAAAAAAAAAU0AAAAAAAOBUQAAAAAAAgFFAAAAAAACAVUAAAAAAAMBRQAAAAAAAwE1AAAAAAADAVkAAAAAAAABZQAAAAAAAgFRAAAAAAACAUkAAAAAAAKBSQAAAAAAAAFJAAAAAAAAAVEAAAAAAAABUQAAAAAAA4FBAAAAAAABAU0AAAAAAAMBVQAAAAAAAgFFAAAAAAAAAVUAAAAAAAAA/QA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"confidence when incorrect\":{\"__ndarray__\":\"AAAAAACASEAAAAAAAMBQQAAAAAAAQEtAAAAAAAAASUAAAAAAAMBUQAAAAAAAQFBAAAAAAAAAQkAAAAAAAOBQQAAAAAAAAPh/AAAAAACAUUAAAAAAAMBLQAAAAAAAAEZAAAAAAAAAPUAAAAAAAEBLQAAAAAAAAElAAAAAAAAAS0AAAAAAAIBMQAAAAAAAwEFAAAAAAADAUEAAAAAAAIA4QAAAAAAAwE9AAAAAAACAQUAAAAAAAIBGQAAAAAAAAEtAAAAAAACASkAAAAAAAABVQAAAAAAAwFZAAAAAAAAAP0AAAAAAAIBJQAAAAAAAgEVAAAAAAACASEAAAAAAAAA9QAAAAAAAAFNAAAAAAAAAREAAAAAAAMBTQAAAAAAAwEtAAAAAAAAAUUAAAAAAAEBQQAAAAAAAAFFAAAAAAABAUEAAAAAAAABNQAAAAAAAgEFAAAAAAADATUAAAAAAAABJQAAAAAAAwEdAAAAAAAAA+H8AAAAAAGBSQAAAAAAAgFFAAAAAAAAAREAAAAAAAMBQQAAAAAAAAPh/AAAAAADATkAAAAAAAMBUQAAAAAAAAERAAAAAAACASkAAAAAAAIBLQAAAAAAAQFRAAAAAAAAAUEAAAAAAAMBRQAAAAAAAgE1AAAAAAADAUEAAAAAAAABNQAAAAAAAAElAAAAAAADAVkAAAAAAAABJQAAAAAAAQFVAAAAAAAAAUEAAAAAAAIBUQAAAAAAAwE1AAAAAAAAATkAAAAAAAMBSQAAAAAAAwE1AAAAAAACAUkAAAAAAAABUQAAAAAAAQFRAAAAAAACASUAAAAAAAEBSQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"confidence when incorrect hit\":{\"__ndarray__\":\"AAAAAABARkAAAAAAAMBLQAAAAAAAgExAAAAAAAAAUEAAAAAAAMBUQAAAAAAAQFVAAAAAAADARUAAAAAAAOBVQAAAAAAAAPh/AAAAAACAUUAAAAAAAMBLQAAAAAAAgEBAAAAAAAAAPUAAAAAAAABEQAAAAAAAAElAAAAAAAAA+H8AAAAAAIBLQAAAAAAAwEFAAAAAAADAUEAAAAAAAAA5QAAAAAAAAPh/AAAAAACAPEAAAAAAAAA7QAAAAAAAAExAAAAAAACASkAAAAAAAABWQAAAAAAAAFJAAAAAAAAAPUAAAAAAAABAQAAAAAAAAPh/AAAAAACASEAAAAAAAAA9QAAAAAAAwFRAAAAAAACAR0AAAAAAAOBUQAAAAAAAgERAAAAAAABAUkAAAAAAAMBLQAAAAAAAQFZAAAAAAAAgUkAAAAAAAIBLQAAAAAAAAD5AAAAAAAAAHEAAAAAAAIA8QAAAAAAAgEVAAAAAAAAA+H8AAAAAAOBSQAAAAAAAQFBAAAAAAAAA+H8AAAAAAMBHQAAAAAAAAPh/AAAAAADASUAAAAAAAAD4fwAAAAAAAENAAAAAAADASUAAAAAAAIBLQAAAAAAAAFRAAAAAAADAUEAAAAAAAABRQAAAAAAAwE1AAAAAAADATkAAAAAAAABKQAAAAAAAgExAAAAAAAAAV0AAAAAAAAD4fwAAAAAAAFZAAAAAAACAUEAAAAAAAAD4fwAAAAAAAExAAAAAAACATkAAAAAAAMBSQAAAAAAAQEpAAAAAAACgUEAAAAAAAGBVQAAAAAAAQFRAAAAAAACAQkAAAAAAAAA7QA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"confidence when incorrect reject\":{\"__ndarray__\":\"AAAAAACASEAAAAAAAMBSQAAAAAAAgEpAAAAAAAAASUAAAAAAAAD4fwAAAAAAgE5AAAAAAAAANUAAAAAAAAA7QAAAAAAAAPh/AAAAAABAUEAAAAAAAEBKQAAAAAAAgEhAAAAAAAAAQkAAAAAAAKBQQAAAAAAAQElAAAAAAAAAS0AAAAAAAIBNQAAAAAAAAPh/AAAAAAAA+H8AAAAAAAA4QAAAAAAAwE9AAAAAAADAREAAAAAAAIBGQAAAAAAAQEVAAAAAAACASkAAAAAAAABUQAAAAAAAwFZAAAAAAAAAQEAAAAAAAKBTQAAAAAAAgEVAAAAAAAAAQkAAAAAAAAA9QAAAAAAAAEJAAAAAAAAAREAAAAAAAEBRQAAAAAAAQFJAAAAAAAAAUUAAAAAAAIBRQAAAAAAAQFBAAAAAAABAUEAAAAAAAIBOQAAAAAAAAERAAAAAAAAATkAAAAAAAABKQAAAAAAAwEpAAAAAAAAA+H8AAAAAAIBPQAAAAAAAoFFAAAAAAAAAREAAAAAAAMBVQAAAAAAAAPh/AAAAAABAUUAAAAAAAMBUQAAAAAAAQFBAAAAAAACATEAAAAAAAEBJQAAAAAAAwFRAAAAAAAAAMUAAAAAAAMBUQAAAAAAAgERAAAAAAACAUkAAAAAAAABNQAAAAAAAAElAAAAAAABAVkAAAAAAAABJQAAAAAAAgFRAAAAAAACATEAAAAAAAIBUQAAAAAAAgE9AAAAAAACATEAAAAAAAABUQAAAAAAAYFBAAAAAAABgU0AAAAAAAABUQAAAAAAAgE5AAAAAAAAASkAAAAAAAKBUQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"correct hit percentage\":[80,80,70,70,90,95,90,90,100,80,90,95,95,90,55,100,65,90,55,75,100,70,90,95,95,70,80,50,65,100,85,85,90,90,90,85,85,90,95,70,95,85,95,90,90,100,80,95,100,90,100,70,90,85,80,85,40,80,90,90,80,90,75,85,100,95,60,100,85,35,95,70,70,90,70,75,85],\"correct reject percentage\":[65,90,80,65,100,80,95,90,100,60,80,60,90,80,60,85,65,100,100,85,80,90,85,90,55,65,75,95,80,70,90,90,90,85,70,95,75,80,75,85,75,85,75,65,90,100,90,80,95,95,100,50,100,70,75,80,40,95,80,85,75,35,70,85,85,75,85,80,95,75,80,50,85,85,80,65,40],\"ess\":[5,1,3,4,5,12,4,4,11,6,3,11,10,12,6,13,12,5,10,4,4,6,3,0,12,6,5,9,7,6,10,18,11,8,16,7,9,11,4,7,4,11,12,3,3,4,11,1,4,2,9,1,2,12,6,5,5,4,9,3,8,6,10,21,5,5,9,1,8,11,5,7,10,7,15,7,7],\"gender\":[\"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\"],\"index\":[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101],\"insomnia\":[false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false],\"participant number\":[1,2,3,4,5,6,7,9,10,11,12,13,14,15,17,19,20,21,23,24,25,26,29,31,32,36,37,39,40,42,43,44,45,48,50,51,52,53,54,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,72,73,74,75,79,81,82,83,84,85,86,87,88,91,92,94,95,96,97,98,99,102,103],\"percent correct\":{\"__ndarray__\":\"AAAAAAAgUkAAAAAAAEBVQAAAAAAAwFJAAAAAAADgUEAAAAAAAMBXQAAAAAAA4FVAAAAAAAAgV0AAAAAAAIBWQAAAAAAAAFlAAAAAAACAUUAAAAAAAEBVQAAAAAAAYFNAAAAAAAAgV0AAAAAAAEBVQAAAAAAAwExAAAAAAAAgV0AAAAAAAEBQQAAAAAAAwFdAAAAAAABgU0AAAAAAAABUQAAAAAAAgFZAAAAAAAAAVEAAAAAAAOBVQAAAAAAAIFdAAAAAAADAUkAAAAAAAOBQQAAAAAAAYFNAAAAAAAAgUkAAAAAAACBSQAAAAAAAQFVAAAAAAADgVUAAAAAAAOBVQAAAAAAAgFZAAAAAAADgVUAAAAAAAABUQAAAAAAAgFZAAAAAAAAAVEAAAAAAAEBVQAAAAAAAQFVAAAAAAABgU0AAAAAAAEBVQAAAAAAAQFVAAAAAAABAVUAAAAAAAGBTQAAAAAAAgFZAAAAAAAAAWUAAAAAAAEBVQAAAAAAA4FVAAAAAAABgWEAAAAAAACBXQAAAAAAAAFlAAAAAAAAATkAAAAAAAMBXQAAAAAAAYFNAAAAAAABgU0AAAAAAAKBUQAAAAAAAAERAAAAAAADgVUAAAAAAAEBVQAAAAAAA4FVAAAAAAABgU0AAAAAAAEBPQAAAAAAAIFJAAAAAAABAVUAAAAAAACBXQAAAAAAAQFVAAAAAAAAgUkAAAAAAAIBWQAAAAAAAgFZAAAAAAACAS0AAAAAAAOBVQAAAAAAAAE5AAAAAAABgU0AAAAAAAOBVQAAAAAAAwFJAAAAAAACAUUAAAAAAAEBPQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"psqi\":[1,5,1,5,7,7,3,3,10,4,5,2,2,2,5,2,3,3,4,9,5,2,1,4,8,2,2,6,3,1,5,7,3,6,6,1,6,4,4,3,5,2,7,4,0,5,1,1,4,1,8,4,2,7,4,1,7,4,5,6,4,2,3,4,3,1,5,2,1,1,3,6,8,8,2,4,5],\"sci\":[29,19,23,26,21,19,28,29,17,22,28,31,31,32,25,30,28,30,22,20,26,32,32,24,26,30,28,21,29,32,26,26,23,18,22,29,20,27,19,29,24,29,17,26,30,17,25,31,27,32,28,25,30,21,29,20,22,23,20,17,27,27,22,25,30,32,30,32,28,31,29,26,20,19,31,22,24]},\"selected\":{\"id\":\"1441\"},\"selection_policy\":{\"id\":\"1440\"}},\"id\":\"1425\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.1},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1428\",\"type\":\"Circle\"},{\"attributes\":{\"axis_label\":\"confidence when incorrect\",\"coordinates\":null,\"formatter\":{\"id\":\"1435\"},\"group\":null,\"major_label_policy\":{\"id\":\"1436\"},\"ticker\":{\"id\":\"1408\"}},\"id\":\"1407\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1399\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis_label\":\"confidence when correct\",\"coordinates\":null,\"formatter\":{\"id\":\"1438\"},\"group\":null,\"major_label_policy\":{\"id\":\"1439\"},\"ticker\":{\"id\":\"1404\"}},\"id\":\"1403\",\"type\":\"LinearAxis\"},{\"attributes\":{\"axis\":{\"id\":\"1407\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"1410\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1408\",\"type\":\"BasicTicker\"},{\"attributes\":{\"fill_color\":{\"value\":\"#1f77b4\"},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1427\",\"type\":\"Circle\"},{\"attributes\":{\"source\":{\"id\":\"1445\"}},\"id\":\"1451\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1439\",\"type\":\"AllLabels\"},{\"attributes\":{\"tools\":[{\"id\":\"1411\"},{\"id\":\"1412\"},{\"id\":\"1413\"},{\"id\":\"1414\"},{\"id\":\"1415\"},{\"id\":\"1416\"}]},\"id\":\"1418\",\"type\":\"Toolbar\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1445\"},\"glyph\":{\"id\":\"1447\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1449\"},\"nonselection_glyph\":{\"id\":\"1448\"},\"view\":{\"id\":\"1451\"}},\"id\":\"1450\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1401\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1435\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1397\",\"type\":\"DataRange1d\"},{\"attributes\":{\"coordinates\":null,\"group\":null},\"id\":\"1432\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1462\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"label\":{\"value\":\"normal sleepers\"},\"renderers\":[{\"id\":\"1430\"}]},\"id\":\"1444\",\"type\":\"LegendItem\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"items\":[{\"id\":\"1444\"},{\"id\":\"1465\"}]},\"id\":\"1443\",\"type\":\"Legend\"},{\"attributes\":{\"label\":{\"value\":\"insomniacs\"},\"renderers\":[{\"id\":\"1450\"}]},\"id\":\"1465\",\"type\":\"LegendItem\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1425\"},\"glyph\":{\"id\":\"1427\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1429\"},\"nonselection_glyph\":{\"id\":\"1428\"},\"view\":{\"id\":\"1431\"}},\"id\":\"1430\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"orange\"},\"hatch_alpha\":{\"value\":0.1},\"hatch_color\":{\"value\":\"orange\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"orange\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1448\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1404\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1438\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"orange\"},\"hatch_alpha\":{\"value\":0.2},\"hatch_color\":{\"value\":\"orange\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"orange\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1449\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1441\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1395\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1463\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1436\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"1440\",\"type\":\"UnionRenderers\"}],\"root_ids\":[\"1394\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.2\"}};\n", " const render_items = [{\"docid\":\"b531a2b5-d363-44fc-a1d2-02e8a42470fb\",\"root_ids\":[\"1394\"],\"roots\":{\"1394\":\"354075e9-08c2-41ee-873d-b403d6753696\"}}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " 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": "1394" } }, "output_type": "display_data" } ], "source": [ "# For convenience\n", "x = 'confidence when correct'\n", "y = 'confidence when incorrect'\n", "\n", "# Two sources\n", "source_insomnia = df.loc[df['insomnia'], :]\n", "source_normal = df.loc[~df['insomnia'], :]\n", "\n", "# Make figure\n", "p = bokeh.plotting.figure(\n", " frame_width=400,\n", " frame_height=300,\n", " x_axis_label=x,\n", " y_axis_label=y,\n", ")\n", "\n", "# Add glyphs\n", "p.circle(\n", " source=source_normal,\n", " x=x,\n", " y=y,\n", " legend_label='normal sleepers',\n", ")\n", "\n", "p.circle(\n", " source=source_insomnia,\n", " x=x,\n", " y=y,\n", " color='orange',\n", " legend_label='insomniacs',\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": 10, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " const docs_json = {\"46550562-5f99-4b45-947d-3cf682a6925e\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1403\"}],\"center\":[{\"id\":\"1406\"},{\"id\":\"1410\"},{\"id\":\"1443\"}],\"frame_height\":300,\"frame_width\":400,\"left\":[{\"id\":\"1407\"}],\"renderers\":[{\"id\":\"1430\"},{\"id\":\"1450\"}],\"title\":{\"id\":\"1432\"},\"toolbar\":{\"id\":\"1418\"},\"x_range\":{\"id\":\"1395\"},\"x_scale\":{\"id\":\"1399\"},\"y_range\":{\"id\":\"1397\"},\"y_scale\":{\"id\":\"1401\"}},\"id\":\"1394\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1411\",\"type\":\"PanTool\"},{\"attributes\":{\"axis\":{\"id\":\"1403\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1406\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1412\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"1416\",\"type\":\"HelpTool\"},{\"attributes\":{\"fill_color\":{\"value\":\"orange\"},\"hatch_color\":{\"value\":\"orange\"},\"line_color\":{\"value\":\"orange\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1447\",\"type\":\"Circle\"},{\"attributes\":{\"overlay\":{\"id\":\"1417\"}},\"id\":\"1413\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"source\":{\"id\":\"1425\"}},\"id\":\"1431\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1414\",\"type\":\"SaveTool\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.2},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1429\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1415\",\"type\":\"ResetTool\"},{\"attributes\":{\"data\":{\"age\":[39,42,31,35,74,61,32,62,33,53,41,36,40,24,32,40,61,42,31,28,26,45,28,44,28],\"confidence when correct\":{\"__ndarray__\":\"AAAAAABAV0AAAAAAAMBSQAAAAAAAQFZAAAAAAAAAVkAAAAAAAEBQQAAAAAAAIFBAAAAAAACAUEAAAAAAAABPQAAAAAAAAFFAAAAAAADAUUAAAAAAAIBUQAAAAAAAAFNAAAAAAADgU0AAAAAAAIBLQAAAAAAAQFVAAAAAAACAUUAAAAAAAEBLQAAAAAAAIFZAAAAAAADgVUAAAAAAAABZQAAAAAAAQFNAAAAAAAAAWUAAAAAAAABUQAAAAAAAYFFAAAAAAABAVEA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"confidence when correct hit\":{\"__ndarray__\":\"AAAAAADAVkAAAAAAAOBSQAAAAAAAYFZAAAAAAABgVkAAAAAAACBRQAAAAAAAwFFAAAAAAADAUEAAAAAAAABLQAAAAAAAoFFAAAAAAACgUkAAAAAAAIBUQAAAAAAAIFNAAAAAAAAAVEAAAAAAAABNQAAAAAAAQFVAAAAAAABAUUAAAAAAAGBRQAAAAAAAwFVAAAAAAAAAV0AAAAAAAABZQAAAAAAAgFFAAAAAAAAAWUAAAAAAAGBWQAAAAAAAAE9AAAAAAADAVUA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"confidence when correct reject\":{\"__ndarray__\":\"AAAAAABAV0AAAAAAAKBRQAAAAAAAgFVAAAAAAADAUUAAAAAAAIBOQAAAAAAAAD9AAAAAAACAUEAAAAAAAEBQQAAAAAAAIFBAAAAAAABATkAAAAAAAEBSQAAAAAAAwFJAAAAAAADAU0AAAAAAAIBIQAAAAAAAQFVAAAAAAACAUUAAAAAAAEBGQAAAAAAAoFZAAAAAAABAVEAAAAAAAABZQAAAAAAAgFRAAAAAAAAAWUAAAAAAAMBQQAAAAAAAwFVAAAAAAAAAUUA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"confidence when incorrect\":{\"__ndarray__\":\"AAAAAACAVkAAAAAAAABJQAAAAAAAAFZAAAAAAAAAVEAAAAAAAIBIQAAAAAAAoFFAAAAAAAAAUEAAAAAAAIBOQAAAAAAAIFNAAAAAAABAUEAAAAAAAABQQAAAAAAA4FJAAAAAAACAT0AAAAAAAIBNQAAAAAAA4FRAAAAAAAAATEAAAAAAAEBSQAAAAAAAAFBAAAAAAAAATkAAAAAAAABZQAAAAAAAoFFAAAAAAAAAWUAAAAAAAABOQAAAAAAAYFJAAAAAAAAAS0A=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"confidence when incorrect hit\":{\"__ndarray__\":\"AAAAAACAVkAAAAAAAMBLQAAAAAAAgFZAAAAAAAAA+H8AAAAAAIBIQAAAAAAAgE9AAAAAAABATEAAAAAAAIBCQAAAAAAAIFNAAAAAAAAA+H8AAAAAAMBOQAAAAAAA4FJAAAAAAABAVkAAAAAAAABJQAAAAAAAQFRAAAAAAAAATEAAAAAAAAD4fwAAAAAAAFJAAAAAAAAA+H8AAAAAAAD4fwAAAAAAQFNAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAFJAAAAAAAAA+H8=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"confidence when incorrect reject\":{\"__ndarray__\":\"AAAAAADgVEAAAAAAAABJQAAAAAAAQFRAAAAAAAAAVEAAAAAAAIBIQAAAAAAAIFJAAAAAAABAUEAAAAAAAGBUQAAAAAAAAPh/AAAAAABAUEAAAAAAAEBRQAAAAAAAAPh/AAAAAABATUAAAAAAAABRQAAAAAAAgFVAAAAAAAAA+H8AAAAAAEBSQAAAAAAAwEVAAAAAAAAATkAAAAAAAABZQAAAAAAA4FBAAAAAAAAAWUAAAAAAAABOQAAAAAAAQFNAAAAAAAAAS0A=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"correct hit percentage\":[65,90,90,100,60,80,90,45,80,100,70,90,95,85,75,40,100,70,100,100,60,100,100,65,100],\"correct reject percentage\":[80,90,95,75,65,20,75,90,100,50,55,100,65,75,55,100,40,90,70,50,80,95,75,25,40],\"ess\":[2,7,3,20,12,2,3,9,10,7,19,0,8,4,7,14,12,10,11,12,1,6,4,6,2],\"gender\":[\"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\"],\"index\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24],\"insomnia\":[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],\"participant number\":[8,16,18,22,27,28,30,33,34,35,38,41,46,49,55,71,76,77,78,80,89,90,93,100,101],\"percent correct\":{\"__ndarray__\":\"AAAAAAAgUkAAAAAAAIBWQAAAAAAAIFdAAAAAAADgVUAAAAAAAEBPQAAAAAAAAElAAAAAAACgVEAAAAAAAOBQQAAAAAAAgFZAAAAAAADAUkAAAAAAAEBPQAAAAAAAwFdAAAAAAAAAVEAAAAAAAABUQAAAAAAAQFBAAAAAAACAUUAAAAAAAIBRQAAAAAAAAFRAAAAAAABAVUAAAAAAAMBSQAAAAAAAgFFAAAAAAABgWEAAAAAAAOBVQAAAAAAAgEZAAAAAAACAUUA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"psqi\":[13,11,9,8,9,14,9,9,12,8,5,7,12,13,13,11,4,10,6,7,8,9,7,15,7],\"sci\":[9,4,10,13,13,15,16,14,14,14,14,15,10,14,5,0,16,11,14,12,14,14,16,1,14]},\"selected\":{\"id\":\"1463\"},\"selection_policy\":{\"id\":\"1462\"}},\"id\":\"1445\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"1417\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"data\":{\"age\":[42,45,16,21,18,28,38,17,25,22,41,53,43,23,19,45,43,35,24,64,36,35,43,44,29,22,46,35,53,29,31,21,42,23,54,24,21,21,43,50,53,16,67,36,34,42,46,69,31,44,25,45,47,33,18,74,21,45,37,41,41,34,39,18,31,26,66,62,22,41,46,56,23,70,24,40,33],\"confidence when correct\":{\"__ndarray__\":\"AAAAAACASUAAAAAAAKBTQAAAAAAAgExAAAAAAAAATkAAAAAAAABUQAAAAAAAwFhAAAAAAACAU0AAAAAAAKBTQAAAAAAAgFZAAAAAAACAUUAAAAAAAIBSQAAAAAAAgEdAAAAAAAAASkAAAAAAAABVQAAAAAAAgE9AAAAAAAAAT0AAAAAAAMBNQAAAAAAA4FJAAAAAAACAU0AAAAAAAIBPQAAAAAAAQFRAAAAAAAAAOEAAAAAAAABJQAAAAAAAQFRAAAAAAADAUEAAAAAAAEBTQAAAAAAAAFlAAAAAAAAAUUAAAAAAAABIQAAAAAAAgFJAAAAAAACAVEAAAAAAAMBQQAAAAAAAoFRAAAAAAADAUEAAAAAAAABWQAAAAAAAwFRAAAAAAADAT0AAAAAAACBUQAAAAAAAwFFAAAAAAADAV0AAAAAAAKBTQAAAAAAAQEpAAAAAAABAUUAAAAAAAIBOQAAAAAAAgFBAAAAAAACAUkAAAAAAAABXQAAAAAAAAFRAAAAAAAAAV0AAAAAAAMBUQAAAAAAAQE5AAAAAAAAgUkAAAAAAAGBYQAAAAAAAAFFAAAAAAADAUEAAAAAAAEBQQAAAAAAAgFRAAAAAAADAUkAAAAAAAIBXQAAAAAAAQFNAAAAAAAAAV0AAAAAAAEBUQAAAAAAAAE1AAAAAAADgVkAAAAAAAABZQAAAAAAAQFVAAAAAAACAUkAAAAAAAOBTQAAAAAAAoFFAAAAAAAAAUkAAAAAAAEBVQAAAAAAAAFBAAAAAAABAU0AAAAAAAIBSQAAAAAAAQFBAAAAAAABAVEAAAAAAAEBUQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"confidence when correct hit\":{\"__ndarray__\":\"AAAAAADASUAAAAAAAMBSQAAAAAAAgFFAAAAAAADAT0AAAAAAACBTQAAAAAAAAFlAAAAAAABAU0AAAAAAACBUQAAAAAAAgFZAAAAAAACAUUAAAAAAACBTQAAAAAAAAERAAAAAAAAASkAAAAAAAABWQAAAAAAAAE9AAAAAAAAAUUAAAAAAAIBNQAAAAAAA4FJAAAAAAAAAUUAAAAAAAABJQAAAAAAAAFZAAAAAAACAPUAAAAAAAGBQQAAAAAAAwFRAAAAAAADAUEAAAAAAAIBTQAAAAAAAIFJAAAAAAABAT0AAAAAAAABLQAAAAAAAwFJAAAAAAACAVEAAAAAAAIBQQAAAAAAAwFRAAAAAAADAUEAAAAAAAIBWQAAAAAAAQFhAAAAAAABAUEAAAAAAAABVQAAAAAAAgFJAAAAAAAAgV0AAAAAAAABVQAAAAAAAgEtAAAAAAACAUUAAAAAAAOBQQAAAAAAAQE1AAAAAAACgUkAAAAAAAABXQAAAAAAAAFRAAAAAAACAWEAAAAAAAMBVQAAAAAAAwE5AAAAAAAAgVEAAAAAAAABZQAAAAAAAgFFAAAAAAADgUEAAAAAAAIBQQAAAAAAAoFZAAAAAAACAUkAAAAAAAOBXQAAAAAAAAFRAAAAAAACgV0AAAAAAAEBUQAAAAAAAgExAAAAAAABAV0AAAAAAAABZQAAAAAAAQFVAAAAAAADgUEAAAAAAAEBUQAAAAAAAgFBAAAAAAACAS0AAAAAAAIBWQAAAAAAAgE9AAAAAAABAU0AAAAAAAGBQQAAAAAAAwE5AAAAAAACASkAAAAAAAABUQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"confidence when correct reject\":{\"__ndarray__\":\"AAAAAACARUAAAAAAAABUQAAAAAAAAEtAAAAAAAAASUAAAAAAAABUQAAAAAAAgFdAAAAAAADAU0AAAAAAACBTQAAAAAAAQFVAAAAAAACAUUAAAAAAAOBQQAAAAAAAAExAAAAAAACASEAAAAAAAKBRQAAAAAAAgFBAAAAAAACATkAAAAAAAABQQAAAAAAAoFJAAAAAAAAAVEAAAAAAAIBQQAAAAAAAgFBAAAAAAAAAM0AAAAAAAIBEQAAAAAAAwFNAAAAAAABAUEAAAAAAAEBTQAAAAAAAAFlAAAAAAABAU0AAAAAAAMBHQAAAAAAAIFBAAAAAAABAVEAAAAAAAIBRQAAAAAAAIFRAAAAAAABAUUAAAAAAAGBTQAAAAAAAgFJAAAAAAAAATEAAAAAAAGBSQAAAAAAAAFFAAAAAAADAV0AAAAAAAABRQAAAAAAAAElAAAAAAABAUUAAAAAAAIBLQAAAAAAAYFJAAAAAAACAUkAAAAAAAABXQAAAAAAAoFNAAAAAAACAVkAAAAAAAEBRQAAAAAAAQE1AAAAAAACAT0AAAAAAAOBRQAAAAAAAQE1AAAAAAACAUEAAAAAAAIBPQAAAAAAAoFJAAAAAAAAAU0AAAAAAAOBUQAAAAAAAgFFAAAAAAACAVUAAAAAAAMBRQAAAAAAAwE1AAAAAAADAVkAAAAAAAABZQAAAAAAAgFRAAAAAAACAUkAAAAAAAKBSQAAAAAAAAFJAAAAAAAAAVEAAAAAAAABUQAAAAAAA4FBAAAAAAABAU0AAAAAAAMBVQAAAAAAAgFFAAAAAAAAAVUAAAAAAAAA/QA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"confidence when incorrect\":{\"__ndarray__\":\"AAAAAACASEAAAAAAAMBQQAAAAAAAQEtAAAAAAAAASUAAAAAAAMBUQAAAAAAAQFBAAAAAAAAAQkAAAAAAAOBQQAAAAAAAAPh/AAAAAACAUUAAAAAAAMBLQAAAAAAAAEZAAAAAAAAAPUAAAAAAAEBLQAAAAAAAAElAAAAAAAAAS0AAAAAAAIBMQAAAAAAAwEFAAAAAAADAUEAAAAAAAIA4QAAAAAAAwE9AAAAAAACAQUAAAAAAAIBGQAAAAAAAAEtAAAAAAACASkAAAAAAAABVQAAAAAAAwFZAAAAAAAAAP0AAAAAAAIBJQAAAAAAAgEVAAAAAAACASEAAAAAAAAA9QAAAAAAAAFNAAAAAAAAAREAAAAAAAMBTQAAAAAAAwEtAAAAAAAAAUUAAAAAAAEBQQAAAAAAAAFFAAAAAAABAUEAAAAAAAABNQAAAAAAAgEFAAAAAAADATUAAAAAAAABJQAAAAAAAwEdAAAAAAAAA+H8AAAAAAGBSQAAAAAAAgFFAAAAAAAAAREAAAAAAAMBQQAAAAAAAAPh/AAAAAADATkAAAAAAAMBUQAAAAAAAAERAAAAAAACASkAAAAAAAIBLQAAAAAAAQFRAAAAAAAAAUEAAAAAAAMBRQAAAAAAAgE1AAAAAAADAUEAAAAAAAABNQAAAAAAAAElAAAAAAADAVkAAAAAAAABJQAAAAAAAQFVAAAAAAAAAUEAAAAAAAIBUQAAAAAAAwE1AAAAAAAAATkAAAAAAAMBSQAAAAAAAwE1AAAAAAACAUkAAAAAAAABUQAAAAAAAQFRAAAAAAACASUAAAAAAAEBSQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"confidence when incorrect hit\":{\"__ndarray__\":\"AAAAAABARkAAAAAAAMBLQAAAAAAAgExAAAAAAAAAUEAAAAAAAMBUQAAAAAAAQFVAAAAAAADARUAAAAAAAOBVQAAAAAAAAPh/AAAAAACAUUAAAAAAAMBLQAAAAAAAgEBAAAAAAAAAPUAAAAAAAABEQAAAAAAAAElAAAAAAAAA+H8AAAAAAIBLQAAAAAAAwEFAAAAAAADAUEAAAAAAAAA5QAAAAAAAAPh/AAAAAACAPEAAAAAAAAA7QAAAAAAAAExAAAAAAACASkAAAAAAAABWQAAAAAAAAFJAAAAAAAAAPUAAAAAAAABAQAAAAAAAAPh/AAAAAACASEAAAAAAAAA9QAAAAAAAwFRAAAAAAACAR0AAAAAAAOBUQAAAAAAAgERAAAAAAABAUkAAAAAAAMBLQAAAAAAAQFZAAAAAAAAgUkAAAAAAAIBLQAAAAAAAAD5AAAAAAAAAHEAAAAAAAIA8QAAAAAAAgEVAAAAAAAAA+H8AAAAAAOBSQAAAAAAAQFBAAAAAAAAA+H8AAAAAAMBHQAAAAAAAAPh/AAAAAADASUAAAAAAAAD4fwAAAAAAAENAAAAAAADASUAAAAAAAIBLQAAAAAAAAFRAAAAAAADAUEAAAAAAAABRQAAAAAAAwE1AAAAAAADATkAAAAAAAABKQAAAAAAAgExAAAAAAAAAV0AAAAAAAAD4fwAAAAAAAFZAAAAAAACAUEAAAAAAAAD4fwAAAAAAAExAAAAAAACATkAAAAAAAMBSQAAAAAAAQEpAAAAAAACgUEAAAAAAAGBVQAAAAAAAQFRAAAAAAACAQkAAAAAAAAA7QA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"confidence when incorrect reject\":{\"__ndarray__\":\"AAAAAACASEAAAAAAAMBSQAAAAAAAgEpAAAAAAAAASUAAAAAAAAD4fwAAAAAAgE5AAAAAAAAANUAAAAAAAAA7QAAAAAAAAPh/AAAAAABAUEAAAAAAAEBKQAAAAAAAgEhAAAAAAAAAQkAAAAAAAKBQQAAAAAAAQElAAAAAAAAAS0AAAAAAAIBNQAAAAAAAAPh/AAAAAAAA+H8AAAAAAAA4QAAAAAAAwE9AAAAAAADAREAAAAAAAIBGQAAAAAAAQEVAAAAAAACASkAAAAAAAABUQAAAAAAAwFZAAAAAAAAAQEAAAAAAAKBTQAAAAAAAgEVAAAAAAAAAQkAAAAAAAAA9QAAAAAAAAEJAAAAAAAAAREAAAAAAAEBRQAAAAAAAQFJAAAAAAAAAUUAAAAAAAIBRQAAAAAAAQFBAAAAAAABAUEAAAAAAAIBOQAAAAAAAAERAAAAAAAAATkAAAAAAAABKQAAAAAAAwEpAAAAAAAAA+H8AAAAAAIBPQAAAAAAAoFFAAAAAAAAAREAAAAAAAMBVQAAAAAAAAPh/AAAAAABAUUAAAAAAAMBUQAAAAAAAQFBAAAAAAACATEAAAAAAAEBJQAAAAAAAwFRAAAAAAAAAMUAAAAAAAMBUQAAAAAAAgERAAAAAAACAUkAAAAAAAABNQAAAAAAAAElAAAAAAABAVkAAAAAAAABJQAAAAAAAgFRAAAAAAACATEAAAAAAAIBUQAAAAAAAgE9AAAAAAACATEAAAAAAAABUQAAAAAAAYFBAAAAAAABgU0AAAAAAAABUQAAAAAAAgE5AAAAAAAAASkAAAAAAAKBUQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"correct hit percentage\":[80,80,70,70,90,95,90,90,100,80,90,95,95,90,55,100,65,90,55,75,100,70,90,95,95,70,80,50,65,100,85,85,90,90,90,85,85,90,95,70,95,85,95,90,90,100,80,95,100,90,100,70,90,85,80,85,40,80,90,90,80,90,75,85,100,95,60,100,85,35,95,70,70,90,70,75,85],\"correct reject percentage\":[65,90,80,65,100,80,95,90,100,60,80,60,90,80,60,85,65,100,100,85,80,90,85,90,55,65,75,95,80,70,90,90,90,85,70,95,75,80,75,85,75,85,75,65,90,100,90,80,95,95,100,50,100,70,75,80,40,95,80,85,75,35,70,85,85,75,85,80,95,75,80,50,85,85,80,65,40],\"ess\":[5,1,3,4,5,12,4,4,11,6,3,11,10,12,6,13,12,5,10,4,4,6,3,0,12,6,5,9,7,6,10,18,11,8,16,7,9,11,4,7,4,11,12,3,3,4,11,1,4,2,9,1,2,12,6,5,5,4,9,3,8,6,10,21,5,5,9,1,8,11,5,7,10,7,15,7,7],\"gender\":[\"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\"],\"index\":[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101],\"insomnia\":[false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false],\"participant number\":[1,2,3,4,5,6,7,9,10,11,12,13,14,15,17,19,20,21,23,24,25,26,29,31,32,36,37,39,40,42,43,44,45,48,50,51,52,53,54,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,72,73,74,75,79,81,82,83,84,85,86,87,88,91,92,94,95,96,97,98,99,102,103],\"percent correct\":{\"__ndarray__\":\"AAAAAAAgUkAAAAAAAEBVQAAAAAAAwFJAAAAAAADgUEAAAAAAAMBXQAAAAAAA4FVAAAAAAAAgV0AAAAAAAIBWQAAAAAAAAFlAAAAAAACAUUAAAAAAAEBVQAAAAAAAYFNAAAAAAAAgV0AAAAAAAEBVQAAAAAAAwExAAAAAAAAgV0AAAAAAAEBQQAAAAAAAwFdAAAAAAABgU0AAAAAAAABUQAAAAAAAgFZAAAAAAAAAVEAAAAAAAOBVQAAAAAAAIFdAAAAAAADAUkAAAAAAAOBQQAAAAAAAYFNAAAAAAAAgUkAAAAAAACBSQAAAAAAAQFVAAAAAAADgVUAAAAAAAOBVQAAAAAAAgFZAAAAAAADgVUAAAAAAAABUQAAAAAAAgFZAAAAAAAAAVEAAAAAAAEBVQAAAAAAAQFVAAAAAAABgU0AAAAAAAEBVQAAAAAAAQFVAAAAAAABAVUAAAAAAAGBTQAAAAAAAgFZAAAAAAAAAWUAAAAAAAEBVQAAAAAAA4FVAAAAAAABgWEAAAAAAACBXQAAAAAAAAFlAAAAAAAAATkAAAAAAAMBXQAAAAAAAYFNAAAAAAABgU0AAAAAAAKBUQAAAAAAAAERAAAAAAADgVUAAAAAAAEBVQAAAAAAA4FVAAAAAAABgU0AAAAAAAEBPQAAAAAAAIFJAAAAAAABAVUAAAAAAACBXQAAAAAAAQFVAAAAAAAAgUkAAAAAAAIBWQAAAAAAAgFZAAAAAAACAS0AAAAAAAOBVQAAAAAAAAE5AAAAAAABgU0AAAAAAAOBVQAAAAAAAwFJAAAAAAACAUUAAAAAAAEBPQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"psqi\":[1,5,1,5,7,7,3,3,10,4,5,2,2,2,5,2,3,3,4,9,5,2,1,4,8,2,2,6,3,1,5,7,3,6,6,1,6,4,4,3,5,2,7,4,0,5,1,1,4,1,8,4,2,7,4,1,7,4,5,6,4,2,3,4,3,1,5,2,1,1,3,6,8,8,2,4,5],\"sci\":[29,19,23,26,21,19,28,29,17,22,28,31,31,32,25,30,28,30,22,20,26,32,32,24,26,30,28,21,29,32,26,26,23,18,22,29,20,27,19,29,24,29,17,26,30,17,25,31,27,32,28,25,30,21,29,20,22,23,20,17,27,27,22,25,30,32,30,32,28,31,29,26,20,19,31,22,24]},\"selected\":{\"id\":\"1441\"},\"selection_policy\":{\"id\":\"1440\"}},\"id\":\"1425\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.1},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1428\",\"type\":\"Circle\"},{\"attributes\":{\"axis_label\":\"confidence when incorrect\",\"coordinates\":null,\"formatter\":{\"id\":\"1435\"},\"group\":null,\"major_label_policy\":{\"id\":\"1436\"},\"ticker\":{\"id\":\"1408\"}},\"id\":\"1407\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1399\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis_label\":\"confidence when correct\",\"coordinates\":null,\"formatter\":{\"id\":\"1438\"},\"group\":null,\"major_label_policy\":{\"id\":\"1439\"},\"ticker\":{\"id\":\"1404\"}},\"id\":\"1403\",\"type\":\"LinearAxis\"},{\"attributes\":{\"axis\":{\"id\":\"1407\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"1410\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1408\",\"type\":\"BasicTicker\"},{\"attributes\":{\"fill_color\":{\"value\":\"#1f77b4\"},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1427\",\"type\":\"Circle\"},{\"attributes\":{\"source\":{\"id\":\"1445\"}},\"id\":\"1451\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1439\",\"type\":\"AllLabels\"},{\"attributes\":{\"tools\":[{\"id\":\"1411\"},{\"id\":\"1412\"},{\"id\":\"1413\"},{\"id\":\"1414\"},{\"id\":\"1415\"},{\"id\":\"1416\"}]},\"id\":\"1418\",\"type\":\"Toolbar\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1445\"},\"glyph\":{\"id\":\"1447\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1449\"},\"nonselection_glyph\":{\"id\":\"1448\"},\"view\":{\"id\":\"1451\"}},\"id\":\"1450\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1401\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1435\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1397\",\"type\":\"DataRange1d\"},{\"attributes\":{\"coordinates\":null,\"group\":null},\"id\":\"1432\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1462\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"label\":{\"value\":\"normal sleepers\"},\"renderers\":[{\"id\":\"1430\"}]},\"id\":\"1444\",\"type\":\"LegendItem\"},{\"attributes\":{\"click_policy\":\"hide\",\"coordinates\":null,\"group\":null,\"items\":[{\"id\":\"1444\"},{\"id\":\"1465\"}],\"location\":\"top_left\"},\"id\":\"1443\",\"type\":\"Legend\"},{\"attributes\":{\"label\":{\"value\":\"insomniacs\"},\"renderers\":[{\"id\":\"1450\"}]},\"id\":\"1465\",\"type\":\"LegendItem\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1425\"},\"glyph\":{\"id\":\"1427\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1429\"},\"nonselection_glyph\":{\"id\":\"1428\"},\"view\":{\"id\":\"1431\"}},\"id\":\"1430\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"orange\"},\"hatch_alpha\":{\"value\":0.1},\"hatch_color\":{\"value\":\"orange\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"orange\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1448\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1404\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1438\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"orange\"},\"hatch_alpha\":{\"value\":0.2},\"hatch_color\":{\"value\":\"orange\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"orange\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1449\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1441\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1395\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1463\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1436\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"1440\",\"type\":\"UnionRenderers\"}],\"root_ids\":[\"1394\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.2\"}};\n", " const render_items = [{\"docid\":\"46550562-5f99-4b45-947d-3cf682a6925e\",\"root_ids\":[\"1394\"],\"roots\":{\"1394\":\"d46de971-26b2-4412-aa1c-4a046df5c0fe\"}}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " 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": "1394" } }, "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": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " const docs_json = {\"613f2863-dab1-402b-a75f-65b70b8d691f\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1653\"}],\"center\":[{\"id\":\"1656\"},{\"id\":\"1660\"},{\"id\":\"1695\"}],\"frame_height\":300,\"frame_width\":400,\"left\":[{\"id\":\"1657\"}],\"renderers\":[{\"id\":\"1682\"},{\"id\":\"1702\"}],\"title\":{\"id\":\"1684\"},\"toolbar\":{\"id\":\"1669\"},\"x_range\":{\"id\":\"1645\"},\"x_scale\":{\"id\":\"1649\"},\"y_range\":{\"id\":\"1647\"},\"y_scale\":{\"id\":\"1651\"}},\"id\":\"1644\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"label\":{\"value\":\"normal sleepers\"},\"renderers\":[{\"id\":\"1682\"}]},\"id\":\"1696\",\"type\":\"LegendItem\"},{\"attributes\":{\"overlay\":{\"id\":\"1667\"}},\"id\":\"1663\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1665\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"1662\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"click_policy\":\"hide\",\"coordinates\":null,\"group\":null,\"items\":[{\"id\":\"1696\"},{\"id\":\"1717\"}],\"location\":\"top_left\"},\"id\":\"1695\",\"type\":\"Legend\"},{\"attributes\":{},\"id\":\"1664\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1693\",\"type\":\"Selection\"},{\"attributes\":{\"axis\":{\"id\":\"1657\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"1660\",\"type\":\"Grid\"},{\"attributes\":{\"fill_color\":{\"value\":\"#1f77b4\"},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1679\",\"type\":\"Circle\"},{\"attributes\":{\"axis_label\":\"confidence when incorrect\",\"coordinates\":null,\"formatter\":{\"id\":\"1687\"},\"group\":null,\"major_label_policy\":{\"id\":\"1688\"},\"ticker\":{\"id\":\"1658\"}},\"id\":\"1657\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1654\",\"type\":\"BasicTicker\"},{\"attributes\":{\"label\":{\"value\":\"insomniacs\"},\"renderers\":[{\"id\":\"1702\"}]},\"id\":\"1717\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"1715\",\"type\":\"Selection\"},{\"attributes\":{\"axis\":{\"id\":\"1653\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1656\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1714\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"axis_label\":\"confidence when correct\",\"coordinates\":null,\"formatter\":{\"id\":\"1690\"},\"group\":null,\"major_label_policy\":{\"id\":\"1691\"},\"ticker\":{\"id\":\"1654\"}},\"id\":\"1653\",\"type\":\"LinearAxis\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"orange\"},\"hatch_alpha\":{\"value\":0.1},\"hatch_color\":{\"value\":\"orange\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"orange\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1700\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1651\",\"type\":\"LinearScale\"},{\"attributes\":{\"fill_color\":{\"value\":\"orange\"},\"hatch_color\":{\"value\":\"orange\"},\"line_color\":{\"value\":\"orange\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1699\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1691\",\"type\":\"AllLabels\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1677\"},\"glyph\":{\"id\":\"1679\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1681\"},\"nonselection_glyph\":{\"id\":\"1680\"},\"view\":{\"id\":\"1683\"}},\"id\":\"1682\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1649\",\"type\":\"LinearScale\"},{\"attributes\":{\"tools\":[{\"id\":\"1661\"},{\"id\":\"1662\"},{\"id\":\"1663\"},{\"id\":\"1664\"},{\"id\":\"1665\"},{\"id\":\"1666\"},{\"id\":\"1668\"}]},\"id\":\"1669\",\"type\":\"Toolbar\"},{\"attributes\":{\"coordinates\":null,\"group\":null},\"id\":\"1684\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1690\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"callback\":null,\"tooltips\":[[\"p-number\",\"@{participant number}\"],[\"gender\",\"@gender\"],[\"age\",\"@age\"]]},\"id\":\"1668\",\"type\":\"HoverTool\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"1667\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.1},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1680\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1692\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data\":{\"age\":[42,45,16,21,18,28,38,17,25,22,41,53,43,23,19,45,43,35,24,64,36,35,43,44,29,22,46,35,53,29,31,21,42,23,54,24,21,21,43,50,53,16,67,36,34,42,46,69,31,44,25,45,47,33,18,74,21,45,37,41,41,34,39,18,31,26,66,62,22,41,46,56,23,70,24,40,33],\"confidence when correct\":{\"__ndarray__\":\"AAAAAACASUAAAAAAAKBTQAAAAAAAgExAAAAAAAAATkAAAAAAAABUQAAAAAAAwFhAAAAAAACAU0AAAAAAAKBTQAAAAAAAgFZAAAAAAACAUUAAAAAAAIBSQAAAAAAAgEdAAAAAAAAASkAAAAAAAABVQAAAAAAAgE9AAAAAAAAAT0AAAAAAAMBNQAAAAAAA4FJAAAAAAACAU0AAAAAAAIBPQAAAAAAAQFRAAAAAAAAAOEAAAAAAAABJQAAAAAAAQFRAAAAAAADAUEAAAAAAAEBTQAAAAAAAAFlAAAAAAAAAUUAAAAAAAABIQAAAAAAAgFJAAAAAAACAVEAAAAAAAMBQQAAAAAAAoFRAAAAAAADAUEAAAAAAAABWQAAAAAAAwFRAAAAAAADAT0AAAAAAACBUQAAAAAAAwFFAAAAAAADAV0AAAAAAAKBTQAAAAAAAQEpAAAAAAABAUUAAAAAAAIBOQAAAAAAAgFBAAAAAAACAUkAAAAAAAABXQAAAAAAAAFRAAAAAAAAAV0AAAAAAAMBUQAAAAAAAQE5AAAAAAAAgUkAAAAAAAGBYQAAAAAAAAFFAAAAAAADAUEAAAAAAAEBQQAAAAAAAgFRAAAAAAADAUkAAAAAAAIBXQAAAAAAAQFNAAAAAAAAAV0AAAAAAAEBUQAAAAAAAAE1AAAAAAADgVkAAAAAAAABZQAAAAAAAQFVAAAAAAACAUkAAAAAAAOBTQAAAAAAAoFFAAAAAAAAAUkAAAAAAAEBVQAAAAAAAAFBAAAAAAABAU0AAAAAAAIBSQAAAAAAAQFBAAAAAAABAVEAAAAAAAEBUQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"confidence when correct hit\":{\"__ndarray__\":\"AAAAAADASUAAAAAAAMBSQAAAAAAAgFFAAAAAAADAT0AAAAAAACBTQAAAAAAAAFlAAAAAAABAU0AAAAAAACBUQAAAAAAAgFZAAAAAAACAUUAAAAAAACBTQAAAAAAAAERAAAAAAAAASkAAAAAAAABWQAAAAAAAAE9AAAAAAAAAUUAAAAAAAIBNQAAAAAAA4FJAAAAAAAAAUUAAAAAAAABJQAAAAAAAAFZAAAAAAACAPUAAAAAAAGBQQAAAAAAAwFRAAAAAAADAUEAAAAAAAIBTQAAAAAAAIFJAAAAAAABAT0AAAAAAAABLQAAAAAAAwFJAAAAAAACAVEAAAAAAAIBQQAAAAAAAwFRAAAAAAADAUEAAAAAAAIBWQAAAAAAAQFhAAAAAAABAUEAAAAAAAABVQAAAAAAAgFJAAAAAAAAgV0AAAAAAAABVQAAAAAAAgEtAAAAAAACAUUAAAAAAAOBQQAAAAAAAQE1AAAAAAACgUkAAAAAAAABXQAAAAAAAAFRAAAAAAACAWEAAAAAAAMBVQAAAAAAAwE5AAAAAAAAgVEAAAAAAAABZQAAAAAAAgFFAAAAAAADgUEAAAAAAAIBQQAAAAAAAoFZAAAAAAACAUkAAAAAAAOBXQAAAAAAAAFRAAAAAAACgV0AAAAAAAEBUQAAAAAAAgExAAAAAAABAV0AAAAAAAABZQAAAAAAAQFVAAAAAAADgUEAAAAAAAEBUQAAAAAAAgFBAAAAAAACAS0AAAAAAAIBWQAAAAAAAgE9AAAAAAABAU0AAAAAAAGBQQAAAAAAAwE5AAAAAAACASkAAAAAAAABUQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"confidence when correct reject\":{\"__ndarray__\":\"AAAAAACARUAAAAAAAABUQAAAAAAAAEtAAAAAAAAASUAAAAAAAABUQAAAAAAAgFdAAAAAAADAU0AAAAAAACBTQAAAAAAAQFVAAAAAAACAUUAAAAAAAOBQQAAAAAAAAExAAAAAAACASEAAAAAAAKBRQAAAAAAAgFBAAAAAAACATkAAAAAAAABQQAAAAAAAoFJAAAAAAAAAVEAAAAAAAIBQQAAAAAAAgFBAAAAAAAAAM0AAAAAAAIBEQAAAAAAAwFNAAAAAAABAUEAAAAAAAEBTQAAAAAAAAFlAAAAAAABAU0AAAAAAAMBHQAAAAAAAIFBAAAAAAABAVEAAAAAAAIBRQAAAAAAAIFRAAAAAAABAUUAAAAAAAGBTQAAAAAAAgFJAAAAAAAAATEAAAAAAAGBSQAAAAAAAAFFAAAAAAADAV0AAAAAAAABRQAAAAAAAAElAAAAAAABAUUAAAAAAAIBLQAAAAAAAYFJAAAAAAACAUkAAAAAAAABXQAAAAAAAoFNAAAAAAACAVkAAAAAAAEBRQAAAAAAAQE1AAAAAAACAT0AAAAAAAOBRQAAAAAAAQE1AAAAAAACAUEAAAAAAAIBPQAAAAAAAoFJAAAAAAAAAU0AAAAAAAOBUQAAAAAAAgFFAAAAAAACAVUAAAAAAAMBRQAAAAAAAwE1AAAAAAADAVkAAAAAAAABZQAAAAAAAgFRAAAAAAACAUkAAAAAAAKBSQAAAAAAAAFJAAAAAAAAAVEAAAAAAAABUQAAAAAAA4FBAAAAAAABAU0AAAAAAAMBVQAAAAAAAgFFAAAAAAAAAVUAAAAAAAAA/QA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"confidence when incorrect\":{\"__ndarray__\":\"AAAAAACASEAAAAAAAMBQQAAAAAAAQEtAAAAAAAAASUAAAAAAAMBUQAAAAAAAQFBAAAAAAAAAQkAAAAAAAOBQQAAAAAAAAPh/AAAAAACAUUAAAAAAAMBLQAAAAAAAAEZAAAAAAAAAPUAAAAAAAEBLQAAAAAAAAElAAAAAAAAAS0AAAAAAAIBMQAAAAAAAwEFAAAAAAADAUEAAAAAAAIA4QAAAAAAAwE9AAAAAAACAQUAAAAAAAIBGQAAAAAAAAEtAAAAAAACASkAAAAAAAABVQAAAAAAAwFZAAAAAAAAAP0AAAAAAAIBJQAAAAAAAgEVAAAAAAACASEAAAAAAAAA9QAAAAAAAAFNAAAAAAAAAREAAAAAAAMBTQAAAAAAAwEtAAAAAAAAAUUAAAAAAAEBQQAAAAAAAAFFAAAAAAABAUEAAAAAAAABNQAAAAAAAgEFAAAAAAADATUAAAAAAAABJQAAAAAAAwEdAAAAAAAAA+H8AAAAAAGBSQAAAAAAAgFFAAAAAAAAAREAAAAAAAMBQQAAAAAAAAPh/AAAAAADATkAAAAAAAMBUQAAAAAAAAERAAAAAAACASkAAAAAAAIBLQAAAAAAAQFRAAAAAAAAAUEAAAAAAAMBRQAAAAAAAgE1AAAAAAADAUEAAAAAAAABNQAAAAAAAAElAAAAAAADAVkAAAAAAAABJQAAAAAAAQFVAAAAAAAAAUEAAAAAAAIBUQAAAAAAAwE1AAAAAAAAATkAAAAAAAMBSQAAAAAAAwE1AAAAAAACAUkAAAAAAAABUQAAAAAAAQFRAAAAAAACASUAAAAAAAEBSQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"confidence when incorrect hit\":{\"__ndarray__\":\"AAAAAABARkAAAAAAAMBLQAAAAAAAgExAAAAAAAAAUEAAAAAAAMBUQAAAAAAAQFVAAAAAAADARUAAAAAAAOBVQAAAAAAAAPh/AAAAAACAUUAAAAAAAMBLQAAAAAAAgEBAAAAAAAAAPUAAAAAAAABEQAAAAAAAAElAAAAAAAAA+H8AAAAAAIBLQAAAAAAAwEFAAAAAAADAUEAAAAAAAAA5QAAAAAAAAPh/AAAAAACAPEAAAAAAAAA7QAAAAAAAAExAAAAAAACASkAAAAAAAABWQAAAAAAAAFJAAAAAAAAAPUAAAAAAAABAQAAAAAAAAPh/AAAAAACASEAAAAAAAAA9QAAAAAAAwFRAAAAAAACAR0AAAAAAAOBUQAAAAAAAgERAAAAAAABAUkAAAAAAAMBLQAAAAAAAQFZAAAAAAAAgUkAAAAAAAIBLQAAAAAAAAD5AAAAAAAAAHEAAAAAAAIA8QAAAAAAAgEVAAAAAAAAA+H8AAAAAAOBSQAAAAAAAQFBAAAAAAAAA+H8AAAAAAMBHQAAAAAAAAPh/AAAAAADASUAAAAAAAAD4fwAAAAAAAENAAAAAAADASUAAAAAAAIBLQAAAAAAAAFRAAAAAAADAUEAAAAAAAABRQAAAAAAAwE1AAAAAAADATkAAAAAAAABKQAAAAAAAgExAAAAAAAAAV0AAAAAAAAD4fwAAAAAAAFZAAAAAAACAUEAAAAAAAAD4fwAAAAAAAExAAAAAAACATkAAAAAAAMBSQAAAAAAAQEpAAAAAAACgUEAAAAAAAGBVQAAAAAAAQFRAAAAAAACAQkAAAAAAAAA7QA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"confidence when incorrect reject\":{\"__ndarray__\":\"AAAAAACASEAAAAAAAMBSQAAAAAAAgEpAAAAAAAAASUAAAAAAAAD4fwAAAAAAgE5AAAAAAAAANUAAAAAAAAA7QAAAAAAAAPh/AAAAAABAUEAAAAAAAEBKQAAAAAAAgEhAAAAAAAAAQkAAAAAAAKBQQAAAAAAAQElAAAAAAAAAS0AAAAAAAIBNQAAAAAAAAPh/AAAAAAAA+H8AAAAAAAA4QAAAAAAAwE9AAAAAAADAREAAAAAAAIBGQAAAAAAAQEVAAAAAAACASkAAAAAAAABUQAAAAAAAwFZAAAAAAAAAQEAAAAAAAKBTQAAAAAAAgEVAAAAAAAAAQkAAAAAAAAA9QAAAAAAAAEJAAAAAAAAAREAAAAAAAEBRQAAAAAAAQFJAAAAAAAAAUUAAAAAAAIBRQAAAAAAAQFBAAAAAAABAUEAAAAAAAIBOQAAAAAAAAERAAAAAAAAATkAAAAAAAABKQAAAAAAAwEpAAAAAAAAA+H8AAAAAAIBPQAAAAAAAoFFAAAAAAAAAREAAAAAAAMBVQAAAAAAAAPh/AAAAAABAUUAAAAAAAMBUQAAAAAAAQFBAAAAAAACATEAAAAAAAEBJQAAAAAAAwFRAAAAAAAAAMUAAAAAAAMBUQAAAAAAAgERAAAAAAACAUkAAAAAAAABNQAAAAAAAAElAAAAAAABAVkAAAAAAAABJQAAAAAAAgFRAAAAAAACATEAAAAAAAIBUQAAAAAAAgE9AAAAAAACATEAAAAAAAABUQAAAAAAAYFBAAAAAAABgU0AAAAAAAABUQAAAAAAAgE5AAAAAAAAASkAAAAAAAKBUQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"correct hit percentage\":[80,80,70,70,90,95,90,90,100,80,90,95,95,90,55,100,65,90,55,75,100,70,90,95,95,70,80,50,65,100,85,85,90,90,90,85,85,90,95,70,95,85,95,90,90,100,80,95,100,90,100,70,90,85,80,85,40,80,90,90,80,90,75,85,100,95,60,100,85,35,95,70,70,90,70,75,85],\"correct reject percentage\":[65,90,80,65,100,80,95,90,100,60,80,60,90,80,60,85,65,100,100,85,80,90,85,90,55,65,75,95,80,70,90,90,90,85,70,95,75,80,75,85,75,85,75,65,90,100,90,80,95,95,100,50,100,70,75,80,40,95,80,85,75,35,70,85,85,75,85,80,95,75,80,50,85,85,80,65,40],\"ess\":[5,1,3,4,5,12,4,4,11,6,3,11,10,12,6,13,12,5,10,4,4,6,3,0,12,6,5,9,7,6,10,18,11,8,16,7,9,11,4,7,4,11,12,3,3,4,11,1,4,2,9,1,2,12,6,5,5,4,9,3,8,6,10,21,5,5,9,1,8,11,5,7,10,7,15,7,7],\"gender\":[\"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\"],\"index\":[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101],\"insomnia\":[false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false],\"participant number\":[1,2,3,4,5,6,7,9,10,11,12,13,14,15,17,19,20,21,23,24,25,26,29,31,32,36,37,39,40,42,43,44,45,48,50,51,52,53,54,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,72,73,74,75,79,81,82,83,84,85,86,87,88,91,92,94,95,96,97,98,99,102,103],\"percent correct\":{\"__ndarray__\":\"AAAAAAAgUkAAAAAAAEBVQAAAAAAAwFJAAAAAAADgUEAAAAAAAMBXQAAAAAAA4FVAAAAAAAAgV0AAAAAAAIBWQAAAAAAAAFlAAAAAAACAUUAAAAAAAEBVQAAAAAAAYFNAAAAAAAAgV0AAAAAAAEBVQAAAAAAAwExAAAAAAAAgV0AAAAAAAEBQQAAAAAAAwFdAAAAAAABgU0AAAAAAAABUQAAAAAAAgFZAAAAAAAAAVEAAAAAAAOBVQAAAAAAAIFdAAAAAAADAUkAAAAAAAOBQQAAAAAAAYFNAAAAAAAAgUkAAAAAAACBSQAAAAAAAQFVAAAAAAADgVUAAAAAAAOBVQAAAAAAAgFZAAAAAAADgVUAAAAAAAABUQAAAAAAAgFZAAAAAAAAAVEAAAAAAAEBVQAAAAAAAQFVAAAAAAABgU0AAAAAAAEBVQAAAAAAAQFVAAAAAAABAVUAAAAAAAGBTQAAAAAAAgFZAAAAAAAAAWUAAAAAAAEBVQAAAAAAA4FVAAAAAAABgWEAAAAAAACBXQAAAAAAAAFlAAAAAAAAATkAAAAAAAMBXQAAAAAAAYFNAAAAAAABgU0AAAAAAAKBUQAAAAAAAAERAAAAAAADgVUAAAAAAAEBVQAAAAAAA4FVAAAAAAABgU0AAAAAAAEBPQAAAAAAAIFJAAAAAAABAVUAAAAAAACBXQAAAAAAAQFVAAAAAAAAgUkAAAAAAAIBWQAAAAAAAgFZAAAAAAACAS0AAAAAAAOBVQAAAAAAAAE5AAAAAAABgU0AAAAAAAOBVQAAAAAAAwFJAAAAAAACAUUAAAAAAAEBPQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"psqi\":[1,5,1,5,7,7,3,3,10,4,5,2,2,2,5,2,3,3,4,9,5,2,1,4,8,2,2,6,3,1,5,7,3,6,6,1,6,4,4,3,5,2,7,4,0,5,1,1,4,1,8,4,2,7,4,1,7,4,5,6,4,2,3,4,3,1,5,2,1,1,3,6,8,8,2,4,5],\"sci\":[29,19,23,26,21,19,28,29,17,22,28,31,31,32,25,30,28,30,22,20,26,32,32,24,26,30,28,21,29,32,26,26,23,18,22,29,20,27,19,29,24,29,17,26,30,17,25,31,27,32,28,25,30,21,29,20,22,23,20,17,27,27,22,25,30,32,30,32,28,31,29,26,20,19,31,22,24]},\"selected\":{\"id\":\"1693\"},\"selection_policy\":{\"id\":\"1692\"}},\"id\":\"1677\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data\":{\"age\":[39,42,31,35,74,61,32,62,33,53,41,36,40,24,32,40,61,42,31,28,26,45,28,44,28],\"confidence when correct\":{\"__ndarray__\":\"AAAAAABAV0AAAAAAAMBSQAAAAAAAQFZAAAAAAAAAVkAAAAAAAEBQQAAAAAAAIFBAAAAAAACAUEAAAAAAAABPQAAAAAAAAFFAAAAAAADAUUAAAAAAAIBUQAAAAAAAAFNAAAAAAADgU0AAAAAAAIBLQAAAAAAAQFVAAAAAAACAUUAAAAAAAEBLQAAAAAAAIFZAAAAAAADgVUAAAAAAAABZQAAAAAAAQFNAAAAAAAAAWUAAAAAAAABUQAAAAAAAYFFAAAAAAABAVEA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"confidence when correct hit\":{\"__ndarray__\":\"AAAAAADAVkAAAAAAAOBSQAAAAAAAYFZAAAAAAABgVkAAAAAAACBRQAAAAAAAwFFAAAAAAADAUEAAAAAAAABLQAAAAAAAoFFAAAAAAACgUkAAAAAAAIBUQAAAAAAAIFNAAAAAAAAAVEAAAAAAAABNQAAAAAAAQFVAAAAAAABAUUAAAAAAAGBRQAAAAAAAwFVAAAAAAAAAV0AAAAAAAABZQAAAAAAAgFFAAAAAAAAAWUAAAAAAAGBWQAAAAAAAAE9AAAAAAADAVUA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"confidence when correct reject\":{\"__ndarray__\":\"AAAAAABAV0AAAAAAAKBRQAAAAAAAgFVAAAAAAADAUUAAAAAAAIBOQAAAAAAAAD9AAAAAAACAUEAAAAAAAEBQQAAAAAAAIFBAAAAAAABATkAAAAAAAEBSQAAAAAAAwFJAAAAAAADAU0AAAAAAAIBIQAAAAAAAQFVAAAAAAACAUUAAAAAAAEBGQAAAAAAAoFZAAAAAAABAVEAAAAAAAABZQAAAAAAAgFRAAAAAAAAAWUAAAAAAAMBQQAAAAAAAwFVAAAAAAAAAUUA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"confidence when incorrect\":{\"__ndarray__\":\"AAAAAACAVkAAAAAAAABJQAAAAAAAAFZAAAAAAAAAVEAAAAAAAIBIQAAAAAAAoFFAAAAAAAAAUEAAAAAAAIBOQAAAAAAAIFNAAAAAAABAUEAAAAAAAABQQAAAAAAA4FJAAAAAAACAT0AAAAAAAIBNQAAAAAAA4FRAAAAAAAAATEAAAAAAAEBSQAAAAAAAAFBAAAAAAAAATkAAAAAAAABZQAAAAAAAoFFAAAAAAAAAWUAAAAAAAABOQAAAAAAAYFJAAAAAAAAAS0A=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"confidence when incorrect hit\":{\"__ndarray__\":\"AAAAAACAVkAAAAAAAMBLQAAAAAAAgFZAAAAAAAAA+H8AAAAAAIBIQAAAAAAAgE9AAAAAAABATEAAAAAAAIBCQAAAAAAAIFNAAAAAAAAA+H8AAAAAAMBOQAAAAAAA4FJAAAAAAABAVkAAAAAAAABJQAAAAAAAQFRAAAAAAAAATEAAAAAAAAD4fwAAAAAAAFJAAAAAAAAA+H8AAAAAAAD4fwAAAAAAQFNAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAFJAAAAAAAAA+H8=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"confidence when incorrect reject\":{\"__ndarray__\":\"AAAAAADgVEAAAAAAAABJQAAAAAAAQFRAAAAAAAAAVEAAAAAAAIBIQAAAAAAAIFJAAAAAAABAUEAAAAAAAGBUQAAAAAAAAPh/AAAAAABAUEAAAAAAAEBRQAAAAAAAAPh/AAAAAABATUAAAAAAAABRQAAAAAAAgFVAAAAAAAAA+H8AAAAAAEBSQAAAAAAAwEVAAAAAAAAATkAAAAAAAABZQAAAAAAA4FBAAAAAAAAAWUAAAAAAAABOQAAAAAAAQFNAAAAAAAAAS0A=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"correct hit percentage\":[65,90,90,100,60,80,90,45,80,100,70,90,95,85,75,40,100,70,100,100,60,100,100,65,100],\"correct reject percentage\":[80,90,95,75,65,20,75,90,100,50,55,100,65,75,55,100,40,90,70,50,80,95,75,25,40],\"ess\":[2,7,3,20,12,2,3,9,10,7,19,0,8,4,7,14,12,10,11,12,1,6,4,6,2],\"gender\":[\"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\"],\"index\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24],\"insomnia\":[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],\"participant number\":[8,16,18,22,27,28,30,33,34,35,38,41,46,49,55,71,76,77,78,80,89,90,93,100,101],\"percent correct\":{\"__ndarray__\":\"AAAAAAAgUkAAAAAAAIBWQAAAAAAAIFdAAAAAAADgVUAAAAAAAEBPQAAAAAAAAElAAAAAAACgVEAAAAAAAOBQQAAAAAAAgFZAAAAAAADAUkAAAAAAAEBPQAAAAAAAwFdAAAAAAAAAVEAAAAAAAABUQAAAAAAAQFBAAAAAAACAUUAAAAAAAIBRQAAAAAAAAFRAAAAAAABAVUAAAAAAAMBSQAAAAAAAgFFAAAAAAABgWEAAAAAAAOBVQAAAAAAAgEZAAAAAAACAUUA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"psqi\":[13,11,9,8,9,14,9,9,12,8,5,7,12,13,13,11,4,10,6,7,8,9,7,15,7],\"sci\":[9,4,10,13,13,15,16,14,14,14,14,15,10,14,5,0,16,11,14,12,14,14,16,1,14]},\"selected\":{\"id\":\"1715\"},\"selection_policy\":{\"id\":\"1714\"}},\"id\":\"1697\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1687\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1666\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"1688\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"1645\",\"type\":\"DataRange1d\"},{\"attributes\":{\"source\":{\"id\":\"1677\"}},\"id\":\"1683\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1647\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1661\",\"type\":\"PanTool\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1697\"},\"glyph\":{\"id\":\"1699\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1701\"},\"nonselection_glyph\":{\"id\":\"1700\"},\"view\":{\"id\":\"1703\"}},\"id\":\"1702\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.2},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1681\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1658\",\"type\":\"BasicTicker\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"orange\"},\"hatch_alpha\":{\"value\":0.2},\"hatch_color\":{\"value\":\"orange\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"orange\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1701\",\"type\":\"Circle\"},{\"attributes\":{\"source\":{\"id\":\"1697\"}},\"id\":\"1703\",\"type\":\"CDSView\"}],\"root_ids\":[\"1644\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.2\"}};\n", " const render_items = [{\"docid\":\"613f2863-dab1-402b-a75f-65b70b8d691f\",\"root_ids\":[\"1644\"],\"roots\":{\"1644\":\"c29b3774-2e9d-4412-8963-5b9609e12abe\"}}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " 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": "1644" } }, "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", " frame_width=400,\n", " frame_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", "p.circle(\n", " source=source_normal,\n", " x=x,\n", " y=y,\n", " legend_label='normal sleepers',\n", ")\n", "\n", "p.circle(\n", " source=source_insomnia,\n", " x=x,\n", " y=y,\n", " color='orange',\n", " legend_label='insomniacs',\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": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " const docs_json = {\"28078892-a77c-4921-9715-3ea2513003db\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1653\"}],\"center\":[{\"id\":\"1656\"},{\"id\":\"1660\"},{\"id\":\"1695\"}],\"frame_height\":300,\"frame_width\":400,\"left\":[{\"id\":\"1657\"}],\"output_backend\":\"svg\",\"renderers\":[{\"id\":\"1682\"},{\"id\":\"1702\"}],\"title\":{\"id\":\"1684\"},\"toolbar\":{\"id\":\"1669\"},\"x_range\":{\"id\":\"1645\"},\"x_scale\":{\"id\":\"1649\"},\"y_range\":{\"id\":\"1647\"},\"y_scale\":{\"id\":\"1651\"}},\"id\":\"1644\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"label\":{\"value\":\"normal sleepers\"},\"renderers\":[{\"id\":\"1682\"}]},\"id\":\"1696\",\"type\":\"LegendItem\"},{\"attributes\":{\"overlay\":{\"id\":\"1667\"}},\"id\":\"1663\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1665\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"1662\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"click_policy\":\"hide\",\"coordinates\":null,\"group\":null,\"items\":[{\"id\":\"1696\"},{\"id\":\"1717\"}],\"location\":\"top_left\"},\"id\":\"1695\",\"type\":\"Legend\"},{\"attributes\":{},\"id\":\"1664\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1693\",\"type\":\"Selection\"},{\"attributes\":{\"axis\":{\"id\":\"1657\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"1660\",\"type\":\"Grid\"},{\"attributes\":{\"fill_color\":{\"value\":\"#1f77b4\"},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1679\",\"type\":\"Circle\"},{\"attributes\":{\"axis_label\":\"confidence when incorrect\",\"coordinates\":null,\"formatter\":{\"id\":\"1687\"},\"group\":null,\"major_label_policy\":{\"id\":\"1688\"},\"ticker\":{\"id\":\"1658\"}},\"id\":\"1657\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1654\",\"type\":\"BasicTicker\"},{\"attributes\":{\"label\":{\"value\":\"insomniacs\"},\"renderers\":[{\"id\":\"1702\"}]},\"id\":\"1717\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"1715\",\"type\":\"Selection\"},{\"attributes\":{\"axis\":{\"id\":\"1653\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1656\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1714\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"axis_label\":\"confidence when correct\",\"coordinates\":null,\"formatter\":{\"id\":\"1690\"},\"group\":null,\"major_label_policy\":{\"id\":\"1691\"},\"ticker\":{\"id\":\"1654\"}},\"id\":\"1653\",\"type\":\"LinearAxis\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"orange\"},\"hatch_alpha\":{\"value\":0.1},\"hatch_color\":{\"value\":\"orange\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"orange\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1700\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1651\",\"type\":\"LinearScale\"},{\"attributes\":{\"fill_color\":{\"value\":\"orange\"},\"hatch_color\":{\"value\":\"orange\"},\"line_color\":{\"value\":\"orange\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1699\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1691\",\"type\":\"AllLabels\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1677\"},\"glyph\":{\"id\":\"1679\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1681\"},\"nonselection_glyph\":{\"id\":\"1680\"},\"view\":{\"id\":\"1683\"}},\"id\":\"1682\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1649\",\"type\":\"LinearScale\"},{\"attributes\":{\"tools\":[{\"id\":\"1661\"},{\"id\":\"1662\"},{\"id\":\"1663\"},{\"id\":\"1664\"},{\"id\":\"1665\"},{\"id\":\"1666\"},{\"id\":\"1668\"}]},\"id\":\"1669\",\"type\":\"Toolbar\"},{\"attributes\":{\"coordinates\":null,\"group\":null},\"id\":\"1684\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1690\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"callback\":null,\"tooltips\":[[\"p-number\",\"@{participant number}\"],[\"gender\",\"@gender\"],[\"age\",\"@age\"]]},\"id\":\"1668\",\"type\":\"HoverTool\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"1667\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.1},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1680\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1692\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data\":{\"age\":[42,45,16,21,18,28,38,17,25,22,41,53,43,23,19,45,43,35,24,64,36,35,43,44,29,22,46,35,53,29,31,21,42,23,54,24,21,21,43,50,53,16,67,36,34,42,46,69,31,44,25,45,47,33,18,74,21,45,37,41,41,34,39,18,31,26,66,62,22,41,46,56,23,70,24,40,33],\"confidence when correct\":{\"__ndarray__\":\"AAAAAACASUAAAAAAAKBTQAAAAAAAgExAAAAAAAAATkAAAAAAAABUQAAAAAAAwFhAAAAAAACAU0AAAAAAAKBTQAAAAAAAgFZAAAAAAACAUUAAAAAAAIBSQAAAAAAAgEdAAAAAAAAASkAAAAAAAABVQAAAAAAAgE9AAAAAAAAAT0AAAAAAAMBNQAAAAAAA4FJAAAAAAACAU0AAAAAAAIBPQAAAAAAAQFRAAAAAAAAAOEAAAAAAAABJQAAAAAAAQFRAAAAAAADAUEAAAAAAAEBTQAAAAAAAAFlAAAAAAAAAUUAAAAAAAABIQAAAAAAAgFJAAAAAAACAVEAAAAAAAMBQQAAAAAAAoFRAAAAAAADAUEAAAAAAAABWQAAAAAAAwFRAAAAAAADAT0AAAAAAACBUQAAAAAAAwFFAAAAAAADAV0AAAAAAAKBTQAAAAAAAQEpAAAAAAABAUUAAAAAAAIBOQAAAAAAAgFBAAAAAAACAUkAAAAAAAABXQAAAAAAAAFRAAAAAAAAAV0AAAAAAAMBUQAAAAAAAQE5AAAAAAAAgUkAAAAAAAGBYQAAAAAAAAFFAAAAAAADAUEAAAAAAAEBQQAAAAAAAgFRAAAAAAADAUkAAAAAAAIBXQAAAAAAAQFNAAAAAAAAAV0AAAAAAAEBUQAAAAAAAAE1AAAAAAADgVkAAAAAAAABZQAAAAAAAQFVAAAAAAACAUkAAAAAAAOBTQAAAAAAAoFFAAAAAAAAAUkAAAAAAAEBVQAAAAAAAAFBAAAAAAABAU0AAAAAAAIBSQAAAAAAAQFBAAAAAAABAVEAAAAAAAEBUQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"confidence when correct hit\":{\"__ndarray__\":\"AAAAAADASUAAAAAAAMBSQAAAAAAAgFFAAAAAAADAT0AAAAAAACBTQAAAAAAAAFlAAAAAAABAU0AAAAAAACBUQAAAAAAAgFZAAAAAAACAUUAAAAAAACBTQAAAAAAAAERAAAAAAAAASkAAAAAAAABWQAAAAAAAAE9AAAAAAAAAUUAAAAAAAIBNQAAAAAAA4FJAAAAAAAAAUUAAAAAAAABJQAAAAAAAAFZAAAAAAACAPUAAAAAAAGBQQAAAAAAAwFRAAAAAAADAUEAAAAAAAIBTQAAAAAAAIFJAAAAAAABAT0AAAAAAAABLQAAAAAAAwFJAAAAAAACAVEAAAAAAAIBQQAAAAAAAwFRAAAAAAADAUEAAAAAAAIBWQAAAAAAAQFhAAAAAAABAUEAAAAAAAABVQAAAAAAAgFJAAAAAAAAgV0AAAAAAAABVQAAAAAAAgEtAAAAAAACAUUAAAAAAAOBQQAAAAAAAQE1AAAAAAACgUkAAAAAAAABXQAAAAAAAAFRAAAAAAACAWEAAAAAAAMBVQAAAAAAAwE5AAAAAAAAgVEAAAAAAAABZQAAAAAAAgFFAAAAAAADgUEAAAAAAAIBQQAAAAAAAoFZAAAAAAACAUkAAAAAAAOBXQAAAAAAAAFRAAAAAAACgV0AAAAAAAEBUQAAAAAAAgExAAAAAAABAV0AAAAAAAABZQAAAAAAAQFVAAAAAAADgUEAAAAAAAEBUQAAAAAAAgFBAAAAAAACAS0AAAAAAAIBWQAAAAAAAgE9AAAAAAABAU0AAAAAAAGBQQAAAAAAAwE5AAAAAAACASkAAAAAAAABUQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"confidence when correct reject\":{\"__ndarray__\":\"AAAAAACARUAAAAAAAABUQAAAAAAAAEtAAAAAAAAASUAAAAAAAABUQAAAAAAAgFdAAAAAAADAU0AAAAAAACBTQAAAAAAAQFVAAAAAAACAUUAAAAAAAOBQQAAAAAAAAExAAAAAAACASEAAAAAAAKBRQAAAAAAAgFBAAAAAAACATkAAAAAAAABQQAAAAAAAoFJAAAAAAAAAVEAAAAAAAIBQQAAAAAAAgFBAAAAAAAAAM0AAAAAAAIBEQAAAAAAAwFNAAAAAAABAUEAAAAAAAEBTQAAAAAAAAFlAAAAAAABAU0AAAAAAAMBHQAAAAAAAIFBAAAAAAABAVEAAAAAAAIBRQAAAAAAAIFRAAAAAAABAUUAAAAAAAGBTQAAAAAAAgFJAAAAAAAAATEAAAAAAAGBSQAAAAAAAAFFAAAAAAADAV0AAAAAAAABRQAAAAAAAAElAAAAAAABAUUAAAAAAAIBLQAAAAAAAYFJAAAAAAACAUkAAAAAAAABXQAAAAAAAoFNAAAAAAACAVkAAAAAAAEBRQAAAAAAAQE1AAAAAAACAT0AAAAAAAOBRQAAAAAAAQE1AAAAAAACAUEAAAAAAAIBPQAAAAAAAoFJAAAAAAAAAU0AAAAAAAOBUQAAAAAAAgFFAAAAAAACAVUAAAAAAAMBRQAAAAAAAwE1AAAAAAADAVkAAAAAAAABZQAAAAAAAgFRAAAAAAACAUkAAAAAAAKBSQAAAAAAAAFJAAAAAAAAAVEAAAAAAAABUQAAAAAAA4FBAAAAAAABAU0AAAAAAAMBVQAAAAAAAgFFAAAAAAAAAVUAAAAAAAAA/QA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"confidence when incorrect\":{\"__ndarray__\":\"AAAAAACASEAAAAAAAMBQQAAAAAAAQEtAAAAAAAAASUAAAAAAAMBUQAAAAAAAQFBAAAAAAAAAQkAAAAAAAOBQQAAAAAAAAPh/AAAAAACAUUAAAAAAAMBLQAAAAAAAAEZAAAAAAAAAPUAAAAAAAEBLQAAAAAAAAElAAAAAAAAAS0AAAAAAAIBMQAAAAAAAwEFAAAAAAADAUEAAAAAAAIA4QAAAAAAAwE9AAAAAAACAQUAAAAAAAIBGQAAAAAAAAEtAAAAAAACASkAAAAAAAABVQAAAAAAAwFZAAAAAAAAAP0AAAAAAAIBJQAAAAAAAgEVAAAAAAACASEAAAAAAAAA9QAAAAAAAAFNAAAAAAAAAREAAAAAAAMBTQAAAAAAAwEtAAAAAAAAAUUAAAAAAAEBQQAAAAAAAAFFAAAAAAABAUEAAAAAAAABNQAAAAAAAgEFAAAAAAADATUAAAAAAAABJQAAAAAAAwEdAAAAAAAAA+H8AAAAAAGBSQAAAAAAAgFFAAAAAAAAAREAAAAAAAMBQQAAAAAAAAPh/AAAAAADATkAAAAAAAMBUQAAAAAAAAERAAAAAAACASkAAAAAAAIBLQAAAAAAAQFRAAAAAAAAAUEAAAAAAAMBRQAAAAAAAgE1AAAAAAADAUEAAAAAAAABNQAAAAAAAAElAAAAAAADAVkAAAAAAAABJQAAAAAAAQFVAAAAAAAAAUEAAAAAAAIBUQAAAAAAAwE1AAAAAAAAATkAAAAAAAMBSQAAAAAAAwE1AAAAAAACAUkAAAAAAAABUQAAAAAAAQFRAAAAAAACASUAAAAAAAEBSQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"confidence when incorrect hit\":{\"__ndarray__\":\"AAAAAABARkAAAAAAAMBLQAAAAAAAgExAAAAAAAAAUEAAAAAAAMBUQAAAAAAAQFVAAAAAAADARUAAAAAAAOBVQAAAAAAAAPh/AAAAAACAUUAAAAAAAMBLQAAAAAAAgEBAAAAAAAAAPUAAAAAAAABEQAAAAAAAAElAAAAAAAAA+H8AAAAAAIBLQAAAAAAAwEFAAAAAAADAUEAAAAAAAAA5QAAAAAAAAPh/AAAAAACAPEAAAAAAAAA7QAAAAAAAAExAAAAAAACASkAAAAAAAABWQAAAAAAAAFJAAAAAAAAAPUAAAAAAAABAQAAAAAAAAPh/AAAAAACASEAAAAAAAAA9QAAAAAAAwFRAAAAAAACAR0AAAAAAAOBUQAAAAAAAgERAAAAAAABAUkAAAAAAAMBLQAAAAAAAQFZAAAAAAAAgUkAAAAAAAIBLQAAAAAAAAD5AAAAAAAAAHEAAAAAAAIA8QAAAAAAAgEVAAAAAAAAA+H8AAAAAAOBSQAAAAAAAQFBAAAAAAAAA+H8AAAAAAMBHQAAAAAAAAPh/AAAAAADASUAAAAAAAAD4fwAAAAAAAENAAAAAAADASUAAAAAAAIBLQAAAAAAAAFRAAAAAAADAUEAAAAAAAABRQAAAAAAAwE1AAAAAAADATkAAAAAAAABKQAAAAAAAgExAAAAAAAAAV0AAAAAAAAD4fwAAAAAAAFZAAAAAAACAUEAAAAAAAAD4fwAAAAAAAExAAAAAAACATkAAAAAAAMBSQAAAAAAAQEpAAAAAAACgUEAAAAAAAGBVQAAAAAAAQFRAAAAAAACAQkAAAAAAAAA7QA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"confidence when incorrect reject\":{\"__ndarray__\":\"AAAAAACASEAAAAAAAMBSQAAAAAAAgEpAAAAAAAAASUAAAAAAAAD4fwAAAAAAgE5AAAAAAAAANUAAAAAAAAA7QAAAAAAAAPh/AAAAAABAUEAAAAAAAEBKQAAAAAAAgEhAAAAAAAAAQkAAAAAAAKBQQAAAAAAAQElAAAAAAAAAS0AAAAAAAIBNQAAAAAAAAPh/AAAAAAAA+H8AAAAAAAA4QAAAAAAAwE9AAAAAAADAREAAAAAAAIBGQAAAAAAAQEVAAAAAAACASkAAAAAAAABUQAAAAAAAwFZAAAAAAAAAQEAAAAAAAKBTQAAAAAAAgEVAAAAAAAAAQkAAAAAAAAA9QAAAAAAAAEJAAAAAAAAAREAAAAAAAEBRQAAAAAAAQFJAAAAAAAAAUUAAAAAAAIBRQAAAAAAAQFBAAAAAAABAUEAAAAAAAIBOQAAAAAAAAERAAAAAAAAATkAAAAAAAABKQAAAAAAAwEpAAAAAAAAA+H8AAAAAAIBPQAAAAAAAoFFAAAAAAAAAREAAAAAAAMBVQAAAAAAAAPh/AAAAAABAUUAAAAAAAMBUQAAAAAAAQFBAAAAAAACATEAAAAAAAEBJQAAAAAAAwFRAAAAAAAAAMUAAAAAAAMBUQAAAAAAAgERAAAAAAACAUkAAAAAAAABNQAAAAAAAAElAAAAAAABAVkAAAAAAAABJQAAAAAAAgFRAAAAAAACATEAAAAAAAIBUQAAAAAAAgE9AAAAAAACATEAAAAAAAABUQAAAAAAAYFBAAAAAAABgU0AAAAAAAABUQAAAAAAAgE5AAAAAAAAASkAAAAAAAKBUQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"correct hit percentage\":[80,80,70,70,90,95,90,90,100,80,90,95,95,90,55,100,65,90,55,75,100,70,90,95,95,70,80,50,65,100,85,85,90,90,90,85,85,90,95,70,95,85,95,90,90,100,80,95,100,90,100,70,90,85,80,85,40,80,90,90,80,90,75,85,100,95,60,100,85,35,95,70,70,90,70,75,85],\"correct reject percentage\":[65,90,80,65,100,80,95,90,100,60,80,60,90,80,60,85,65,100,100,85,80,90,85,90,55,65,75,95,80,70,90,90,90,85,70,95,75,80,75,85,75,85,75,65,90,100,90,80,95,95,100,50,100,70,75,80,40,95,80,85,75,35,70,85,85,75,85,80,95,75,80,50,85,85,80,65,40],\"ess\":[5,1,3,4,5,12,4,4,11,6,3,11,10,12,6,13,12,5,10,4,4,6,3,0,12,6,5,9,7,6,10,18,11,8,16,7,9,11,4,7,4,11,12,3,3,4,11,1,4,2,9,1,2,12,6,5,5,4,9,3,8,6,10,21,5,5,9,1,8,11,5,7,10,7,15,7,7],\"gender\":[\"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\"],\"index\":[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101],\"insomnia\":[false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false],\"participant number\":[1,2,3,4,5,6,7,9,10,11,12,13,14,15,17,19,20,21,23,24,25,26,29,31,32,36,37,39,40,42,43,44,45,48,50,51,52,53,54,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,72,73,74,75,79,81,82,83,84,85,86,87,88,91,92,94,95,96,97,98,99,102,103],\"percent correct\":{\"__ndarray__\":\"AAAAAAAgUkAAAAAAAEBVQAAAAAAAwFJAAAAAAADgUEAAAAAAAMBXQAAAAAAA4FVAAAAAAAAgV0AAAAAAAIBWQAAAAAAAAFlAAAAAAACAUUAAAAAAAEBVQAAAAAAAYFNAAAAAAAAgV0AAAAAAAEBVQAAAAAAAwExAAAAAAAAgV0AAAAAAAEBQQAAAAAAAwFdAAAAAAABgU0AAAAAAAABUQAAAAAAAgFZAAAAAAAAAVEAAAAAAAOBVQAAAAAAAIFdAAAAAAADAUkAAAAAAAOBQQAAAAAAAYFNAAAAAAAAgUkAAAAAAACBSQAAAAAAAQFVAAAAAAADgVUAAAAAAAOBVQAAAAAAAgFZAAAAAAADgVUAAAAAAAABUQAAAAAAAgFZAAAAAAAAAVEAAAAAAAEBVQAAAAAAAQFVAAAAAAABgU0AAAAAAAEBVQAAAAAAAQFVAAAAAAABAVUAAAAAAAGBTQAAAAAAAgFZAAAAAAAAAWUAAAAAAAEBVQAAAAAAA4FVAAAAAAABgWEAAAAAAACBXQAAAAAAAAFlAAAAAAAAATkAAAAAAAMBXQAAAAAAAYFNAAAAAAABgU0AAAAAAAKBUQAAAAAAAAERAAAAAAADgVUAAAAAAAEBVQAAAAAAA4FVAAAAAAABgU0AAAAAAAEBPQAAAAAAAIFJAAAAAAABAVUAAAAAAACBXQAAAAAAAQFVAAAAAAAAgUkAAAAAAAIBWQAAAAAAAgFZAAAAAAACAS0AAAAAAAOBVQAAAAAAAAE5AAAAAAABgU0AAAAAAAOBVQAAAAAAAwFJAAAAAAACAUUAAAAAAAEBPQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[77]},\"psqi\":[1,5,1,5,7,7,3,3,10,4,5,2,2,2,5,2,3,3,4,9,5,2,1,4,8,2,2,6,3,1,5,7,3,6,6,1,6,4,4,3,5,2,7,4,0,5,1,1,4,1,8,4,2,7,4,1,7,4,5,6,4,2,3,4,3,1,5,2,1,1,3,6,8,8,2,4,5],\"sci\":[29,19,23,26,21,19,28,29,17,22,28,31,31,32,25,30,28,30,22,20,26,32,32,24,26,30,28,21,29,32,26,26,23,18,22,29,20,27,19,29,24,29,17,26,30,17,25,31,27,32,28,25,30,21,29,20,22,23,20,17,27,27,22,25,30,32,30,32,28,31,29,26,20,19,31,22,24]},\"selected\":{\"id\":\"1693\"},\"selection_policy\":{\"id\":\"1692\"}},\"id\":\"1677\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data\":{\"age\":[39,42,31,35,74,61,32,62,33,53,41,36,40,24,32,40,61,42,31,28,26,45,28,44,28],\"confidence when correct\":{\"__ndarray__\":\"AAAAAABAV0AAAAAAAMBSQAAAAAAAQFZAAAAAAAAAVkAAAAAAAEBQQAAAAAAAIFBAAAAAAACAUEAAAAAAAABPQAAAAAAAAFFAAAAAAADAUUAAAAAAAIBUQAAAAAAAAFNAAAAAAADgU0AAAAAAAIBLQAAAAAAAQFVAAAAAAACAUUAAAAAAAEBLQAAAAAAAIFZAAAAAAADgVUAAAAAAAABZQAAAAAAAQFNAAAAAAAAAWUAAAAAAAABUQAAAAAAAYFFAAAAAAABAVEA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"confidence when correct hit\":{\"__ndarray__\":\"AAAAAADAVkAAAAAAAOBSQAAAAAAAYFZAAAAAAABgVkAAAAAAACBRQAAAAAAAwFFAAAAAAADAUEAAAAAAAABLQAAAAAAAoFFAAAAAAACgUkAAAAAAAIBUQAAAAAAAIFNAAAAAAAAAVEAAAAAAAABNQAAAAAAAQFVAAAAAAABAUUAAAAAAAGBRQAAAAAAAwFVAAAAAAAAAV0AAAAAAAABZQAAAAAAAgFFAAAAAAAAAWUAAAAAAAGBWQAAAAAAAAE9AAAAAAADAVUA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"confidence when correct reject\":{\"__ndarray__\":\"AAAAAABAV0AAAAAAAKBRQAAAAAAAgFVAAAAAAADAUUAAAAAAAIBOQAAAAAAAAD9AAAAAAACAUEAAAAAAAEBQQAAAAAAAIFBAAAAAAABATkAAAAAAAEBSQAAAAAAAwFJAAAAAAADAU0AAAAAAAIBIQAAAAAAAQFVAAAAAAACAUUAAAAAAAEBGQAAAAAAAoFZAAAAAAABAVEAAAAAAAABZQAAAAAAAgFRAAAAAAAAAWUAAAAAAAMBQQAAAAAAAwFVAAAAAAAAAUUA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"confidence when incorrect\":{\"__ndarray__\":\"AAAAAACAVkAAAAAAAABJQAAAAAAAAFZAAAAAAAAAVEAAAAAAAIBIQAAAAAAAoFFAAAAAAAAAUEAAAAAAAIBOQAAAAAAAIFNAAAAAAABAUEAAAAAAAABQQAAAAAAA4FJAAAAAAACAT0AAAAAAAIBNQAAAAAAA4FRAAAAAAAAATEAAAAAAAEBSQAAAAAAAAFBAAAAAAAAATkAAAAAAAABZQAAAAAAAoFFAAAAAAAAAWUAAAAAAAABOQAAAAAAAYFJAAAAAAAAAS0A=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"confidence when incorrect hit\":{\"__ndarray__\":\"AAAAAACAVkAAAAAAAMBLQAAAAAAAgFZAAAAAAAAA+H8AAAAAAIBIQAAAAAAAgE9AAAAAAABATEAAAAAAAIBCQAAAAAAAIFNAAAAAAAAA+H8AAAAAAMBOQAAAAAAA4FJAAAAAAABAVkAAAAAAAABJQAAAAAAAQFRAAAAAAAAATEAAAAAAAAD4fwAAAAAAAFJAAAAAAAAA+H8AAAAAAAD4fwAAAAAAQFNAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAFJAAAAAAAAA+H8=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"confidence when incorrect reject\":{\"__ndarray__\":\"AAAAAADgVEAAAAAAAABJQAAAAAAAQFRAAAAAAAAAVEAAAAAAAIBIQAAAAAAAIFJAAAAAAABAUEAAAAAAAGBUQAAAAAAAAPh/AAAAAABAUEAAAAAAAEBRQAAAAAAAAPh/AAAAAABATUAAAAAAAABRQAAAAAAAgFVAAAAAAAAA+H8AAAAAAEBSQAAAAAAAwEVAAAAAAAAATkAAAAAAAABZQAAAAAAA4FBAAAAAAAAAWUAAAAAAAABOQAAAAAAAQFNAAAAAAAAAS0A=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"correct hit percentage\":[65,90,90,100,60,80,90,45,80,100,70,90,95,85,75,40,100,70,100,100,60,100,100,65,100],\"correct reject percentage\":[80,90,95,75,65,20,75,90,100,50,55,100,65,75,55,100,40,90,70,50,80,95,75,25,40],\"ess\":[2,7,3,20,12,2,3,9,10,7,19,0,8,4,7,14,12,10,11,12,1,6,4,6,2],\"gender\":[\"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\"],\"index\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24],\"insomnia\":[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],\"participant number\":[8,16,18,22,27,28,30,33,34,35,38,41,46,49,55,71,76,77,78,80,89,90,93,100,101],\"percent correct\":{\"__ndarray__\":\"AAAAAAAgUkAAAAAAAIBWQAAAAAAAIFdAAAAAAADgVUAAAAAAAEBPQAAAAAAAAElAAAAAAACgVEAAAAAAAOBQQAAAAAAAgFZAAAAAAADAUkAAAAAAAEBPQAAAAAAAwFdAAAAAAAAAVEAAAAAAAABUQAAAAAAAQFBAAAAAAACAUUAAAAAAAIBRQAAAAAAAAFRAAAAAAABAVUAAAAAAAMBSQAAAAAAAgFFAAAAAAABgWEAAAAAAAOBVQAAAAAAAgEZAAAAAAACAUUA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[25]},\"psqi\":[13,11,9,8,9,14,9,9,12,8,5,7,12,13,13,11,4,10,6,7,8,9,7,15,7],\"sci\":[9,4,10,13,13,15,16,14,14,14,14,15,10,14,5,0,16,11,14,12,14,14,16,1,14]},\"selected\":{\"id\":\"1715\"},\"selection_policy\":{\"id\":\"1714\"}},\"id\":\"1697\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1687\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1666\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"1688\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"1645\",\"type\":\"DataRange1d\"},{\"attributes\":{\"source\":{\"id\":\"1677\"}},\"id\":\"1683\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1647\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1661\",\"type\":\"PanTool\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1697\"},\"glyph\":{\"id\":\"1699\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1701\"},\"nonselection_glyph\":{\"id\":\"1700\"},\"view\":{\"id\":\"1703\"}},\"id\":\"1702\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.2},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1681\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1658\",\"type\":\"BasicTicker\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"orange\"},\"hatch_alpha\":{\"value\":0.2},\"hatch_color\":{\"value\":\"orange\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"orange\"},\"x\":{\"field\":\"confidence when correct\"},\"y\":{\"field\":\"confidence when incorrect\"}},\"id\":\"1701\",\"type\":\"Circle\"},{\"attributes\":{\"source\":{\"id\":\"1697\"}},\"id\":\"1703\",\"type\":\"CDSView\"}],\"root_ids\":[\"1644\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.2\"}};\n", " const render_items = [{\"docid\":\"28078892-a77c-4921-9715-3ea2513003db\",\"root_ids\":[\"1644\"],\"roots\":{\"1644\":\"2a1c736c-1b26-4656-a2e7-a8cfd1fc559a\"}}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " 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": "1644" } }, "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": 13, "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": 14, "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": 15, "metadata": { "tags": [ "hide-input" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Python implementation: CPython\n", "Python version : 3.9.12\n", "IPython version : 8.3.0\n", "\n", "pandas : 1.4.2\n", "bokeh : 2.4.2\n", "jupyterlab: 3.3.2\n", "\n" ] } ], "source": [ "%load_ext watermark\n", "%watermark -v -p pandas,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.9.12" } }, "nbformat": 4, "nbformat_minor": 4 }