{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Lesson 19: High level plotting with iqplot\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 numpy as np\n", "import pandas as pd\n", "\n", "import iqplot\n", "\n", "import bokeh.io\n", "import bokeh.models\n", "import bokeh.plotting\n", "\n", "bokeh.io.output_notebook()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\n", "In this lesson, we do some plotting with a high-level package [iqplot](https://iqplot.github.io/). You should have installed it in [Lesson 0](l00_configuring_your_computer.ipynb).\n", "\n", "We will use [the frog tongue data set from Kleinteich and Gorb](https://doi.org/10.1038/srep05225) that we used in our exercises with Pandas. Let's get the data frame loaded in so we can be on our way." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
dateIDtrial numberimpact force (mN)impact time (ms)impact force / body weightadhesive force (mN)time frog pulls on target (ms)adhesive force / body weightadhesive impulse (N-s)total contact area (mm2)contact area without mucus (mm2)contact area with mucus / contact area without mucuscontact pressure (Pa)adhesive strength (Pa)
02013_02_26I31205461.95-7858841.27-0.290387700.823117-2030
12013_02_26I42527444.08-9832481.59-0.181101940.0724923-9695
22013_03_01I11745342.82-8502111.37-0.15783790.0521020-10239
32013_03_01I21556412.51-45510250.74-0.1703301580.524718-1381
42013_03_01I3493360.80-9744991.57-0.4232452160.122012-3975
\n", "
" ], "text/plain": [ " date ID trial number impact force (mN) impact time (ms) \\\n", "0 2013_02_26 I 3 1205 46 \n", "1 2013_02_26 I 4 2527 44 \n", "2 2013_03_01 I 1 1745 34 \n", "3 2013_03_01 I 2 1556 41 \n", "4 2013_03_01 I 3 493 36 \n", "\n", " impact force / body weight adhesive force (mN) \\\n", "0 1.95 -785 \n", "1 4.08 -983 \n", "2 2.82 -850 \n", "3 2.51 -455 \n", "4 0.80 -974 \n", "\n", " time frog pulls on target (ms) adhesive force / body weight \\\n", "0 884 1.27 \n", "1 248 1.59 \n", "2 211 1.37 \n", "3 1025 0.74 \n", "4 499 1.57 \n", "\n", " adhesive impulse (N-s) total contact area (mm2) \\\n", "0 -0.290 387 \n", "1 -0.181 101 \n", "2 -0.157 83 \n", "3 -0.170 330 \n", "4 -0.423 245 \n", "\n", " contact area without mucus (mm2) \\\n", "0 70 \n", "1 94 \n", "2 79 \n", "3 158 \n", "4 216 \n", "\n", " contact area with mucus / contact area without mucus \\\n", "0 0.82 \n", "1 0.07 \n", "2 0.05 \n", "3 0.52 \n", "4 0.12 \n", "\n", " contact pressure (Pa) adhesive strength (Pa) \n", "0 3117 -2030 \n", "1 24923 -9695 \n", "2 21020 -10239 \n", "3 4718 -1381 \n", "4 2012 -3975 " ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.read_csv('data/frog_tongue_adhesion.csv', comment='#')\n", "\n", "# Have a look so we remember\n", "df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plots with categorical variables\n", "\n", "Let us first consider the different kinds of data we may encounter as we think about constructing a plot.\n", "\n", "- **Quantitative** data may have continuously varying (and therefore ordered) values.\n", "- **Categorical** data has discrete, unordered values that a variable can take.\n", "- **Ordinal** data has discrete, ordered values. Integers are a classic example.\n", "- **Temporal** data refers to time, which can be represented as dates.\n", "\n", "In practice, ordinal data can be cast as quantitative or treated as categorical with an ordering enforced on the categories (e.g., categorical data `[1, 2, 3]` becomes `['1', '2', '3']`.). Temporal data can also be cast as quantitative, (e.g., second from the start time). We will therefore focus out attention on quantitative and categorical data.\n", "\n", "When we made scatter plots in the previous lesson, both types of data were quantitative. We did actually incorporate categorical information in the form of colors of the glyph (insomniacs and normal sleepers being colored differently) and in tooltips. \n", "\n", "But what if we wanted a single type of measurement, say impact force, for each frog? Here, we have the quantitative impact force data and the categorical frog ID data. One of our axes is now categorical." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Bar graph\n", "\n", "To demonstrate how to set up a categorical axis with Bokeh, I will make a bar graph of the mean impact force for each of the four frogs. But before I even begin this, I will give you the following piece of advice: *Don't make bar graphs.* More on that in a moment.\n", "\n", "Before we do that, we need to compute the means from the inputted data frame." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IDimpact force (mN)
0I1530.20
1II707.35
2III550.10
3IV419.10
\n", "
" ], "text/plain": [ " ID impact force (mN)\n", "0 I 1530.20\n", "1 II 707.35\n", "2 III 550.10\n", "3 IV 419.10" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_mean = df.groupby('ID')['impact force (mN)'].mean().reset_index()\n", "\n", "# Take a look\n", "df_mean" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To set up a categorical axis, you need to specify the `x_range` (or `y_range` if you want the y-axis to be categorical) as a list with the categories you want on the axis when you instantiate the figure. I will make a horizontal bar graph, so I will specify `y_range`. Also, when I instantiate this figure, because it is not very tall and I do not want the reset tool cut off, I will also explicitly set the tools I want in the toolbar." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "p = bokeh.plotting.figure(\n", " frame_height=200,\n", " frame_width=400,\n", " x_axis_label='impact force (mN)',\n", " y_range=df_mean['ID'].unique()[::-1],\n", " tools='pan,wheel_zoom,save,reset'\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now that we have the figure, we can put the bars on. The `p.hbar()` method populates the figure with horizontal bar glyphs. The `right` kwarg says what column of the data source dictates how far to the right to show the bar, while the `height` kwarg says how think the bars are.\n", "\n", "I will also ensure the quantitative axis starts at zero and turn off the grid lines on the categorical axis, which is commonly done." ] }, { "cell_type": "code", "execution_count": 5, "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 = {\"85e887bb-7489-4971-bdf6-1a5e7ec7d439\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1012\"}],\"center\":[{\"id\":\"1015\"},{\"id\":\"1018\"}],\"frame_height\":200,\"frame_width\":400,\"left\":[{\"id\":\"1016\"}],\"renderers\":[{\"id\":\"1033\"}],\"title\":{\"id\":\"1035\"},\"toolbar\":{\"id\":\"1023\"},\"x_range\":{\"id\":\"1004\"},\"x_scale\":{\"id\":\"1008\"},\"y_range\":{\"id\":\"1006\"},\"y_scale\":{\"id\":\"1010\"}},\"id\":\"1003\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1044\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1038\",\"type\":\"CategoricalTickFormatter\"},{\"attributes\":{\"factors\":[\"IV\",\"III\",\"II\",\"I\"]},\"id\":\"1006\",\"type\":\"FactorRange\"},{\"attributes\":{},\"id\":\"1039\",\"type\":\"AllLabels\"},{\"attributes\":{\"tools\":[{\"id\":\"1019\"},{\"id\":\"1020\"},{\"id\":\"1021\"},{\"id\":\"1022\"}]},\"id\":\"1023\",\"type\":\"Toolbar\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.2},\"height\":{\"value\":0.6},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#1f77b4\"},\"right\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"ID\"}},\"id\":\"1032\",\"type\":\"HBar\"},{\"attributes\":{},\"id\":\"1041\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"source\":{\"id\":\"1028\"}},\"id\":\"1034\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1042\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"1022\",\"type\":\"ResetTool\"},{\"attributes\":{\"fill_color\":{\"value\":\"#1f77b4\"},\"height\":{\"value\":0.6},\"line_color\":{\"value\":\"#1f77b4\"},\"right\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"ID\"}},\"id\":\"1030\",\"type\":\"HBar\"},{\"attributes\":{},\"id\":\"1021\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1019\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"1020\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"1017\",\"type\":\"CategoricalTicker\"},{\"attributes\":{\"axis\":{\"id\":\"1016\"},\"coordinates\":null,\"dimension\":1,\"grid_line_color\":null,\"group\":null,\"ticker\":null},\"id\":\"1018\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1043\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"coordinates\":null,\"formatter\":{\"id\":\"1038\"},\"group\":null,\"major_label_policy\":{\"id\":\"1039\"},\"ticker\":{\"id\":\"1017\"}},\"id\":\"1016\",\"type\":\"CategoricalAxis\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.1},\"height\":{\"value\":0.6},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"right\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"ID\"}},\"id\":\"1031\",\"type\":\"HBar\"},{\"attributes\":{},\"id\":\"1008\",\"type\":\"LinearScale\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1028\"},\"glyph\":{\"id\":\"1030\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1032\"},\"nonselection_glyph\":{\"id\":\"1031\"},\"view\":{\"id\":\"1034\"}},\"id\":\"1033\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"axis_label\":\"impact force (mN)\",\"coordinates\":null,\"formatter\":{\"id\":\"1041\"},\"group\":null,\"major_label_policy\":{\"id\":\"1042\"},\"ticker\":{\"id\":\"1013\"}},\"id\":\"1012\",\"type\":\"LinearAxis\"},{\"attributes\":{\"data\":{\"ID\":[\"I\",\"II\",\"III\",\"IV\"],\"impact force (mN)\":{\"__ndarray__\":\"zczMzMzol0DNzMzMzBqGQM3MzMzMMIFAmpmZmZkxekA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[4]},\"index\":[0,1,2,3]},\"selected\":{\"id\":\"1044\"},\"selection_policy\":{\"id\":\"1043\"}},\"id\":\"1028\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"axis\":{\"id\":\"1012\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1015\",\"type\":\"Grid\"},{\"attributes\":{\"start\":0},\"id\":\"1004\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1010\",\"type\":\"CategoricalScale\"},{\"attributes\":{},\"id\":\"1013\",\"type\":\"BasicTicker\"},{\"attributes\":{\"coordinates\":null,\"group\":null},\"id\":\"1035\",\"type\":\"Title\"}],\"root_ids\":[\"1003\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.2\"}};\n", " const render_items = [{\"docid\":\"85e887bb-7489-4971-bdf6-1a5e7ec7d439\",\"root_ids\":[\"1003\"],\"roots\":{\"1003\":\"153a1baf-b922-4bbf-8037-f67fb909ac24\"}}];\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": [ "source = bokeh.models.ColumnDataSource(df_mean)\n", "\n", "p.hbar(\n", " source=source,\n", " y='ID',\n", " right='impact force (mN)',\n", " height=0.6\n", ")\n", "\n", "# Turn off gridlines on categorical axis\n", "p.ygrid.grid_line_color = None\n", "\n", "# Start axes at origin on quantitative axis\n", "p.x_range.start = 0\n", "\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We similarly make vertical bar graphs specifying `x_range` and using `p.vbar()`." ] }, { "cell_type": "code", "execution_count": 6, "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 = {\"951b7b29-60ed-4c6d-9f06-d1444dcbb6e0\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1104\"}],\"center\":[{\"id\":\"1106\"},{\"id\":\"1110\"}],\"frame_height\":250,\"frame_width\":250,\"left\":[{\"id\":\"1107\"}],\"renderers\":[{\"id\":\"1129\"}],\"title\":{\"id\":\"1141\"},\"toolbar\":{\"id\":\"1118\"},\"x_range\":{\"id\":\"1096\"},\"x_scale\":{\"id\":\"1100\"},\"y_range\":{\"id\":\"1098\"},\"y_scale\":{\"id\":\"1102\"}},\"id\":\"1095\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"axis_label\":\"impact force (mN)\",\"coordinates\":null,\"formatter\":{\"id\":\"1144\"},\"group\":null,\"major_label_policy\":{\"id\":\"1145\"},\"ticker\":{\"id\":\"1108\"}},\"id\":\"1107\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1044\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1111\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"1112\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"axis\":{\"id\":\"1107\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"1110\",\"type\":\"Grid\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.2},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#1f77b4\"},\"top\":{\"field\":\"impact force (mN)\"},\"width\":{\"value\":0.6},\"x\":{\"field\":\"ID\"}},\"id\":\"1128\",\"type\":\"VBar\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1028\"},\"glyph\":{\"id\":\"1126\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1128\"},\"nonselection_glyph\":{\"id\":\"1127\"},\"view\":{\"id\":\"1130\"}},\"id\":\"1129\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"1028\"}},\"id\":\"1130\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1108\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1144\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1114\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1116\",\"type\":\"HelpTool\"},{\"attributes\":{\"overlay\":{\"id\":\"1117\"}},\"id\":\"1113\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"coordinates\":null,\"group\":null},\"id\":\"1141\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1115\",\"type\":\"ResetTool\"},{\"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\":\"1117\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"axis\":{\"id\":\"1104\"},\"coordinates\":null,\"grid_line_color\":null,\"group\":null,\"ticker\":null},\"id\":\"1106\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1105\",\"type\":\"CategoricalTicker\"},{\"attributes\":{\"coordinates\":null,\"formatter\":{\"id\":\"1147\"},\"group\":null,\"major_label_policy\":{\"id\":\"1148\"},\"ticker\":{\"id\":\"1105\"}},\"id\":\"1104\",\"type\":\"CategoricalAxis\"},{\"attributes\":{},\"id\":\"1148\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"1147\",\"type\":\"CategoricalTickFormatter\"},{\"attributes\":{},\"id\":\"1100\",\"type\":\"CategoricalScale\"},{\"attributes\":{},\"id\":\"1102\",\"type\":\"LinearScale\"},{\"attributes\":{\"factors\":[\"I\",\"II\",\"III\",\"IV\"]},\"id\":\"1096\",\"type\":\"FactorRange\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.1},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"top\":{\"field\":\"impact force (mN)\"},\"width\":{\"value\":0.6},\"x\":{\"field\":\"ID\"}},\"id\":\"1127\",\"type\":\"VBar\"},{\"attributes\":{\"fill_color\":{\"value\":\"#1f77b4\"},\"line_color\":{\"value\":\"#1f77b4\"},\"top\":{\"field\":\"impact force (mN)\"},\"width\":{\"value\":0.6},\"x\":{\"field\":\"ID\"}},\"id\":\"1126\",\"type\":\"VBar\"},{\"attributes\":{\"tools\":[{\"id\":\"1111\"},{\"id\":\"1112\"},{\"id\":\"1113\"},{\"id\":\"1114\"},{\"id\":\"1115\"},{\"id\":\"1116\"}]},\"id\":\"1118\",\"type\":\"Toolbar\"},{\"attributes\":{\"data\":{\"ID\":[\"I\",\"II\",\"III\",\"IV\"],\"impact force (mN)\":{\"__ndarray__\":\"zczMzMzol0DNzMzMzBqGQM3MzMzMMIFAmpmZmZkxekA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[4]},\"index\":[0,1,2,3]},\"selected\":{\"id\":\"1044\"},\"selection_policy\":{\"id\":\"1043\"}},\"id\":\"1028\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1043\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1145\",\"type\":\"AllLabels\"},{\"attributes\":{\"start\":0},\"id\":\"1098\",\"type\":\"DataRange1d\"}],\"root_ids\":[\"1095\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.2\"}};\n", " const render_items = [{\"docid\":\"951b7b29-60ed-4c6d-9f06-d1444dcbb6e0\",\"root_ids\":[\"1095\"],\"roots\":{\"1095\":\"45d8217d-3e6f-4d90-adcf-fd7bad564ede\"}}];\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": "1095" } }, "output_type": "display_data" } ], "source": [ "p = bokeh.plotting.figure(\n", " frame_height=250,\n", " frame_width=250,\n", " y_axis_label='impact force (mN)',\n", " x_range=df_mean['ID'].unique(),\n", ")\n", "\n", "p.vbar(\n", " source=source,\n", " x='ID',\n", " top='impact force (mN)',\n", " width=0.6\n", ")\n", "\n", "p.xgrid.grid_line_color = None\n", "p.y_range.start = 0\n", "\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## iqplot\n", "\n", "Generating the bar graphs was not too painful, even tough we used Bokeh, a low-level plotting library. Nonetheless, we would like to make plots more **declaratively**. We do not want to have to explicitly pre-process the data, set up the categorical axis, etc. We would like to just provide a data set, say which column(s) is/are categorical and which is quantitative, and then just get our plot.\n", "\n", "iqplot generates plots from tidy data frames where one or more columns contain categorical data and the column of interest in the plot is quantitative.\n", "\n", "There are six (really four) types of plots that iqplot can generate. As you will see, all four of these modes of plotting are meant to give a picture about how the quantitative measurements are *distributed* for each category.\n", "\n", "- **Plots with a categorical axis**\n", " + Box plots: `iqplot.box()`\n", " + Strip plots: `iqplot.strip()`\n", " + Strip-box plots `iqplot.stripbox()`, which is an overlay of a strip and box plot\n", " + Parallel coordinate plots `iqplot.strip()` with a `parcoord_column` kwarg. This is a strip plot with the dots connected across categories.\n", " \n", " \n", "- **Plots without a categorical axis**\n", " + Histograms: `iqplot.histogram()`\n", " + [ECDFs](https://en.wikipedia.org/wiki/Empirical_distribution_function): `iqplot.ecdf()`\n", " \n", "\n", "This first seven arguments are the same for all plots. They are:\n", "\n", "- `data`: A tidy data frame or Numpy array.\n", "- `q`: The column of the data frame to be treated as the quantitative variable.\n", "- `cats`: A list of columns in the data frame that are to be considered as categorical variables in the plot. If `None`, a single box, strip, histogram, or ECDF is plotted.\n", "- `q_axis`: Along which axis, x or y that the quantitative variable varies. The default is `'x'`.\n", "- `palette`: A list of hex colors to use for coloring the markers for each category. By default, it uses the Glasbey Category 10 color palette from [colorcet](https://colorcet.holoviz.org/).\n", "- `order`: If specified, the ordering of the categories to use on the categorical axis and legend (if applicable). Otherwise, the order of the inputted data frame is used.\n", "- `p`: If specified, the `bokeh.plotting.Figure` object to use for the plot. If not specified, a new figure is created.\n", "\n", "With this in mind, we will put iqplot to use on the frog data set." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Box plots with iqplot\n", "\n", "As I [discuss below](#Don't-make-bar-graphs), bar graphs are almost never a good choice for visualization. You distill all of the information in the data set down to one or two summary statistics, and then use giant glyphs to show them. As a start for improvement, you could distill the data set down to five or so summary statistics and show those graphically, as opposed to just one or two. \n", "\n", "Box plots provide such a summary. I will first make one using `iqplot.box()` and then describe how a box plot is interpreted." ] }, { "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 = {\"756c848b-a988-43e2-af82-232a18e256a1\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1216\"}],\"center\":[{\"id\":\"1219\"},{\"id\":\"1222\"}],\"frame_height\":275,\"frame_width\":375,\"left\":[{\"id\":\"1220\"}],\"renderers\":[{\"id\":\"1246\"},{\"id\":\"1252\"},{\"id\":\"1258\"},{\"id\":\"1264\"},{\"id\":\"1270\"}],\"title\":{\"id\":\"1293\"},\"toolbar\":{\"id\":\"1230\"},\"toolbar_location\":\"above\",\"x_range\":{\"id\":\"1209\"},\"x_scale\":{\"id\":\"1212\"},\"y_range\":{\"id\":\"1207\"},\"y_scale\":{\"id\":\"1214\"}},\"id\":\"1208\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"source\":{\"id\":\"1237\"}},\"id\":\"1265\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1217\",\"type\":\"BasicTicker\"},{\"attributes\":{\"coordinates\":null,\"group\":null},\"id\":\"1293\",\"type\":\"Title\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.2},\"height\":{\"value\":0.4},\"left\":{\"field\":\"middle\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"middle\"},\"y\":{\"field\":\"cat\"}},\"id\":\"1263\",\"type\":\"HBar\"},{\"attributes\":{},\"id\":\"1300\",\"type\":\"AllLabels\"},{\"attributes\":{\"factors\":[\"I\",\"II\",\"III\",\"IV\"],\"palette\":[\"#1f77b3\",\"#ff7e0e\",\"#2ba02b\",\"#d62628\",\"#9367bc\",\"#8c564b\",\"#e277c1\",\"#7e7e7e\",\"#bcbc21\",\"#16bdcf\",\"#3a0182\",\"#004201\",\"#0fffa8\",\"#5d003f\",\"#bcbcff\",\"#d8afa1\",\"#b80080\",\"#004d52\",\"#6b6400\",\"#7c0100\",\"#6026ff\",\"#ffff9a\",\"#564964\",\"#8cb893\",\"#93fbff\",\"#018267\",\"#90ff00\",\"#8200a0\",\"#ac8944\",\"#5b3400\",\"#ffbff2\",\"#ff6e75\",\"#798cff\",\"#dd00ff\",\"#505646\",\"#004489\",\"#ffbf60\",\"#ff018c\",\"#bdc8cf\",\"#af97b5\",\"#b65600\",\"#017000\",\"#cd87ff\",\"#1cd646\",\"#bfebc3\",\"#7997b5\",\"#a56089\",\"#6e8956\",\"#bc7c75\",\"#8a2844\",\"#00acff\",\"#8ed4ff\",\"#4b6d77\",\"#00d4b1\",\"#9300f2\",\"#8a9500\",\"#5d5b9e\",\"#fddfba\",\"#00939e\",\"#ffdb00\",\"#00aa79\",\"#520067\",\"#000091\",\"#0a5d3d\",\"#a5e275\",\"#623b41\",\"#c6c689\",\"#ff9eb5\",\"#cd4f6b\",\"#ff07d6\",\"#8a3a05\",\"#7e3d70\",\"#ff4901\",\"#602ba5\",\"#1c00ff\",\"#e6dfff\",\"#aa3baf\",\"#d89c00\",\"#a3a39e\",\"#3f69ff\",\"#46490c\",\"#7b6985\",\"#6b978c\",\"#ff9a75\",\"#835bff\",\"#7c6b46\",\"#80b654\",\"#bc0049\",\"#fd93ff\",\"#5d0018\",\"#89d1d1\",\"#9c8cd3\",\"#da6d42\",\"#8a5700\",\"#3b5069\",\"#4b6b3b\",\"#edcfd8\",\"#cfedff\",\"#aa1500\",\"#dfff4f\",\"#ff2a56\",\"#d1499e\",\"#707cb8\",\"#598000\",\"#00e4fd\",\"#774b95\",\"#67d48c\",\"#3d3a72\",\"#ac413f\",\"#d6a166\",\"#c169cd\",\"#69595d\",\"#87aced\",\"#a0a569\",\"#d1aae6\",\"#870062\",\"#00fddb\",\"#672818\",\"#b342ff\",\"#0e59c4\",\"#168742\",\"#90d300\",\"#cd7900\",\"#f959ff\",\"#5b7466\",\"#8eaeb3\",\"#9c7c8c\",\"#4600c6\",\"#6b4d2d\",\"#a56d46\",\"#9e8972\",\"#a8afca\",\"#cd8ca7\",\"#00fd64\",\"#917900\",\"#ff62a1\",\"#f4ffd8\",\"#018cf0\",\"#13aca0\",\"#5b2d59\",\"#89859e\",\"#cfccba\",\"#d4afc4\",\"#dbdd6d\",\"#cffff4\",\"#006485\",\"#006962\",\"#a84167\",\"#2d97c4\",\"#a874ff\",\"#26ba5d\",\"#57b600\",\"#caffa7\",\"#a379aa\",\"#ffbc93\",\"#89e2c1\",\"#0fc8ff\",\"#d400c4\",\"#626d89\",\"#69858e\",\"#4b4d52\",\"#aa6067\",\"#79b5d4\",\"#2b5916\",\"#9a0024\",\"#bdd1f2\",\"#896e67\",\"#69a56b\",\"#855467\",\"#aecdba\",\"#87997e\",\"#cadb00\",\"#9a0390\",\"#ebbc1a\",\"#eb9cd1\",\"#70006e\",\"#b1a131\",\"#ca6b93\",\"#4146a3\",\"#e48c89\",\"#d44400\",\"#c68aca\",\"#b69597\",\"#d41f75\",\"#724bcc\",\"#674d00\",\"#672138\",\"#38564f\",\"#6ebaaa\",\"#853a31\",\"#a5d397\",\"#b8af8e\",\"#d8e4df\",\"#aa00df\",\"#cac1db\",\"#ffdf8c\",\"#e2524d\",\"#66696e\",\"#ff001c\",\"#522d72\",\"#4d906b\",\"#a86d11\",\"#ff9e26\",\"#5ea3af\",\"#c88556\",\"#915997\",\"#a3a1ff\",\"#fdbaba\",\"#242a87\",\"#dbe6a8\",\"#97f2a7\",\"#6793d6\",\"#ba5b3f\",\"#3a5d91\",\"#364f2f\",\"#267c95\",\"#89959a\",\"#cfb356\",\"#004664\",\"#5e5d2f\",\"#8e8e41\",\"#ac3f13\",\"#69953b\",\"#a13d85\",\"#bfb6ba\",\"#acc667\",\"#6469cf\",\"#91af00\",\"#2be2da\",\"#016e36\",\"#ff7952\",\"#42807e\",\"#4fe800\",\"#995428\",\"#5d0a00\",\"#a30057\",\"#0c8700\",\"#5982a7\",\"#ffebfb\",\"#4b6901\",\"#8775d4\",\"#e6c6ff\",\"#a5ffda\",\"#d86e77\",\"#df014b\",\"#69675b\",\"#776ba1\",\"#7e8067\",\"#594685\",\"#0000ca\",\"#7c002a\",\"#97ff72\",\"#b5e2e1\",\"#db52c8\",\"#777734\",\"#57bd8e\"]},\"id\":\"1241\",\"type\":\"CategoricalColorMapper\"},{\"attributes\":{\"axis\":{\"id\":\"1216\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1219\",\"type\":\"Grid\"},{\"attributes\":{\"source\":{\"id\":\"1237\"}},\"id\":\"1253\",\"type\":\"CDSView\"},{\"attributes\":{\"data\":{\"ID\":[\"II\",\"II\",\"II\"],\"__label\":[\"II\",\"II\",\"II\"],\"cat\":[\"II\",\"II\",\"II\"],\"impact force (mN)\":[1612,1539,1453]},\"selected\":{\"id\":\"1304\"},\"selection_policy\":{\"id\":\"1303\"}},\"id\":\"1238\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"x0\":{\"field\":\"top\"},\"x1\":{\"field\":\"top_whisker\"},\"y0\":{\"field\":\"cat\"},\"y1\":{\"field\":\"cat\"}},\"id\":\"1243\",\"type\":\"Segment\"},{\"attributes\":{},\"id\":\"1212\",\"type\":\"LinearScale\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"field\":\"cat\",\"transform\":{\"id\":\"1239\"}},\"hatch_alpha\":{\"value\":0.1},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"field\":\"cat\",\"transform\":{\"id\":\"1240\"}},\"x\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"cat\"}},\"id\":\"1268\",\"type\":\"Circle\"},{\"attributes\":{\"axis\":{\"id\":\"1220\"},\"coordinates\":null,\"dimension\":1,\"grid_line_color\":null,\"group\":null,\"ticker\":null},\"id\":\"1222\",\"type\":\"Grid\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"x0\":{\"field\":\"top\"},\"x1\":{\"field\":\"top_whisker\"},\"y0\":{\"field\":\"cat\"},\"y1\":{\"field\":\"cat\"}},\"id\":\"1244\",\"type\":\"Segment\"},{\"attributes\":{\"axis_label\":\"impact force (mN)\",\"coordinates\":null,\"formatter\":{\"id\":\"1299\"},\"group\":null,\"major_label_policy\":{\"id\":\"1300\"},\"ticker\":{\"id\":\"1217\"}},\"id\":\"1216\",\"type\":\"LinearAxis\"},{\"attributes\":{\"source\":{\"id\":\"1237\"}},\"id\":\"1247\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1228\",\"type\":\"HelpTool\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1237\"},\"glyph\":{\"id\":\"1261\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1263\"},\"nonselection_glyph\":{\"id\":\"1262\"},\"view\":{\"id\":\"1265\"}},\"id\":\"1264\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":{\"value\":0.2},\"x0\":{\"field\":\"top\"},\"x1\":{\"field\":\"top_whisker\"},\"y0\":{\"field\":\"cat\"},\"y1\":{\"field\":\"cat\"}},\"id\":\"1245\",\"type\":\"Segment\"},{\"attributes\":{\"coordinates\":null,\"formatter\":{\"id\":\"1296\"},\"group\":null,\"major_label_policy\":{\"id\":\"1297\"},\"ticker\":{\"id\":\"1221\"}},\"id\":\"1220\",\"type\":\"CategoricalAxis\"},{\"attributes\":{},\"id\":\"1296\",\"type\":\"CategoricalTickFormatter\"},{\"attributes\":{},\"id\":\"1299\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1302\",\"type\":\"Selection\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"field\":\"cat\",\"transform\":{\"id\":\"1241\"}},\"hatch_alpha\":{\"value\":0.1},\"height\":{\"value\":0.4},\"left\":{\"field\":\"bottom\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":null},\"right\":{\"field\":\"top\"},\"y\":{\"field\":\"cat\"}},\"id\":\"1256\",\"type\":\"HBar\"},{\"attributes\":{},\"id\":\"1214\",\"type\":\"CategoricalScale\"},{\"attributes\":{\"factors\":[\"IV\",\"III\",\"II\",\"I\"]},\"id\":\"1207\",\"type\":\"FactorRange\"},{\"attributes\":{\"x0\":{\"field\":\"bottom\"},\"x1\":{\"field\":\"bottom_whisker\"},\"y0\":{\"field\":\"cat\"},\"y1\":{\"field\":\"cat\"}},\"id\":\"1249\",\"type\":\"Segment\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"x0\":{\"field\":\"bottom\"},\"x1\":{\"field\":\"bottom_whisker\"},\"y0\":{\"field\":\"cat\"},\"y1\":{\"field\":\"cat\"}},\"id\":\"1250\",\"type\":\"Segment\"},{\"attributes\":{\"data\":{\"__label\":[\"I\",\"II\",\"III\",\"IV\"],\"bottom\":[1231.25,422.0,458.75,198.0],\"bottom_whisker\":[473.0,245.0,324.0,22.0],\"cat\":[\"I\",\"II\",\"III\",\"IV\"],\"middle\":[1550.5,573.0,544.0,460.5],\"top\":[1904.75,799.75,615.75,599.0],\"top_whisker\":[2641.0,1182.0,806.0,815.0]},\"selected\":{\"id\":\"1302\"},\"selection_policy\":{\"id\":\"1301\"}},\"id\":\"1237\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1221\",\"type\":\"CategoricalTicker\"},{\"attributes\":{\"source\":{\"id\":\"1238\"}},\"id\":\"1271\",\"type\":\"CDSView\"},{\"attributes\":{\"factors\":[\"I\",\"II\",\"III\",\"IV\"],\"palette\":[\"#1f77b3\",\"#ff7e0e\",\"#2ba02b\",\"#d62628\",\"#9367bc\",\"#8c564b\",\"#e277c1\",\"#7e7e7e\",\"#bcbc21\",\"#16bdcf\",\"#3a0182\",\"#004201\",\"#0fffa8\",\"#5d003f\",\"#bcbcff\",\"#d8afa1\",\"#b80080\",\"#004d52\",\"#6b6400\",\"#7c0100\",\"#6026ff\",\"#ffff9a\",\"#564964\",\"#8cb893\",\"#93fbff\",\"#018267\",\"#90ff00\",\"#8200a0\",\"#ac8944\",\"#5b3400\",\"#ffbff2\",\"#ff6e75\",\"#798cff\",\"#dd00ff\",\"#505646\",\"#004489\",\"#ffbf60\",\"#ff018c\",\"#bdc8cf\",\"#af97b5\",\"#b65600\",\"#017000\",\"#cd87ff\",\"#1cd646\",\"#bfebc3\",\"#7997b5\",\"#a56089\",\"#6e8956\",\"#bc7c75\",\"#8a2844\",\"#00acff\",\"#8ed4ff\",\"#4b6d77\",\"#00d4b1\",\"#9300f2\",\"#8a9500\",\"#5d5b9e\",\"#fddfba\",\"#00939e\",\"#ffdb00\",\"#00aa79\",\"#520067\",\"#000091\",\"#0a5d3d\",\"#a5e275\",\"#623b41\",\"#c6c689\",\"#ff9eb5\",\"#cd4f6b\",\"#ff07d6\",\"#8a3a05\",\"#7e3d70\",\"#ff4901\",\"#602ba5\",\"#1c00ff\",\"#e6dfff\",\"#aa3baf\",\"#d89c00\",\"#a3a39e\",\"#3f69ff\",\"#46490c\",\"#7b6985\",\"#6b978c\",\"#ff9a75\",\"#835bff\",\"#7c6b46\",\"#80b654\",\"#bc0049\",\"#fd93ff\",\"#5d0018\",\"#89d1d1\",\"#9c8cd3\",\"#da6d42\",\"#8a5700\",\"#3b5069\",\"#4b6b3b\",\"#edcfd8\",\"#cfedff\",\"#aa1500\",\"#dfff4f\",\"#ff2a56\",\"#d1499e\",\"#707cb8\",\"#598000\",\"#00e4fd\",\"#774b95\",\"#67d48c\",\"#3d3a72\",\"#ac413f\",\"#d6a166\",\"#c169cd\",\"#69595d\",\"#87aced\",\"#a0a569\",\"#d1aae6\",\"#870062\",\"#00fddb\",\"#672818\",\"#b342ff\",\"#0e59c4\",\"#168742\",\"#90d300\",\"#cd7900\",\"#f959ff\",\"#5b7466\",\"#8eaeb3\",\"#9c7c8c\",\"#4600c6\",\"#6b4d2d\",\"#a56d46\",\"#9e8972\",\"#a8afca\",\"#cd8ca7\",\"#00fd64\",\"#917900\",\"#ff62a1\",\"#f4ffd8\",\"#018cf0\",\"#13aca0\",\"#5b2d59\",\"#89859e\",\"#cfccba\",\"#d4afc4\",\"#dbdd6d\",\"#cffff4\",\"#006485\",\"#006962\",\"#a84167\",\"#2d97c4\",\"#a874ff\",\"#26ba5d\",\"#57b600\",\"#caffa7\",\"#a379aa\",\"#ffbc93\",\"#89e2c1\",\"#0fc8ff\",\"#d400c4\",\"#626d89\",\"#69858e\",\"#4b4d52\",\"#aa6067\",\"#79b5d4\",\"#2b5916\",\"#9a0024\",\"#bdd1f2\",\"#896e67\",\"#69a56b\",\"#855467\",\"#aecdba\",\"#87997e\",\"#cadb00\",\"#9a0390\",\"#ebbc1a\",\"#eb9cd1\",\"#70006e\",\"#b1a131\",\"#ca6b93\",\"#4146a3\",\"#e48c89\",\"#d44400\",\"#c68aca\",\"#b69597\",\"#d41f75\",\"#724bcc\",\"#674d00\",\"#672138\",\"#38564f\",\"#6ebaaa\",\"#853a31\",\"#a5d397\",\"#b8af8e\",\"#d8e4df\",\"#aa00df\",\"#cac1db\",\"#ffdf8c\",\"#e2524d\",\"#66696e\",\"#ff001c\",\"#522d72\",\"#4d906b\",\"#a86d11\",\"#ff9e26\",\"#5ea3af\",\"#c88556\",\"#915997\",\"#a3a1ff\",\"#fdbaba\",\"#242a87\",\"#dbe6a8\",\"#97f2a7\",\"#6793d6\",\"#ba5b3f\",\"#3a5d91\",\"#364f2f\",\"#267c95\",\"#89959a\",\"#cfb356\",\"#004664\",\"#5e5d2f\",\"#8e8e41\",\"#ac3f13\",\"#69953b\",\"#a13d85\",\"#bfb6ba\",\"#acc667\",\"#6469cf\",\"#91af00\",\"#2be2da\",\"#016e36\",\"#ff7952\",\"#42807e\",\"#4fe800\",\"#995428\",\"#5d0a00\",\"#a30057\",\"#0c8700\",\"#5982a7\",\"#ffebfb\",\"#4b6901\",\"#8775d4\",\"#e6c6ff\",\"#a5ffda\",\"#d86e77\",\"#df014b\",\"#69675b\",\"#776ba1\",\"#7e8067\",\"#594685\",\"#0000ca\",\"#7c002a\",\"#97ff72\",\"#b5e2e1\",\"#db52c8\",\"#777734\",\"#57bd8e\"]},\"id\":\"1240\",\"type\":\"CategoricalColorMapper\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1237\"},\"glyph\":{\"id\":\"1243\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1245\"},\"nonselection_glyph\":{\"id\":\"1244\"},\"view\":{\"id\":\"1247\"}},\"id\":\"1246\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"field\":\"cat\",\"transform\":{\"id\":\"1239\"}},\"hatch_alpha\":{\"value\":0.2},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"field\":\"cat\",\"transform\":{\"id\":\"1240\"}},\"x\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"cat\"}},\"id\":\"1269\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1224\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"1223\",\"type\":\"PanTool\"},{\"attributes\":{\"overlay\":{\"id\":\"1229\"}},\"id\":\"1225\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1238\"},\"glyph\":{\"id\":\"1267\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1269\"},\"nonselection_glyph\":{\"id\":\"1268\"},\"view\":{\"id\":\"1271\"}},\"id\":\"1270\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1226\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1227\",\"type\":\"ResetTool\"},{\"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\":\"1229\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"fill_color\":{\"field\":\"cat\",\"transform\":{\"id\":\"1239\"}},\"line_color\":{\"field\":\"cat\",\"transform\":{\"id\":\"1240\"}},\"x\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"cat\"}},\"id\":\"1267\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1209\",\"type\":\"DataRange1d\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1237\"},\"glyph\":{\"id\":\"1249\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1251\"},\"nonselection_glyph\":{\"id\":\"1250\"},\"view\":{\"id\":\"1253\"}},\"id\":\"1252\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"fill_color\":{\"value\":\"#1f77b4\"},\"height\":{\"value\":0.4},\"left\":{\"field\":\"middle\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"middle\"},\"y\":{\"field\":\"cat\"}},\"id\":\"1261\",\"type\":\"HBar\"},{\"attributes\":{},\"id\":\"1303\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1297\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"1301\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"source\":{\"id\":\"1237\"}},\"id\":\"1259\",\"type\":\"CDSView\"},{\"attributes\":{\"fill_color\":{\"field\":\"cat\",\"transform\":{\"id\":\"1241\"}},\"height\":{\"value\":0.4},\"left\":{\"field\":\"bottom\"},\"line_color\":{\"value\":null},\"right\":{\"field\":\"top\"},\"y\":{\"field\":\"cat\"}},\"id\":\"1255\",\"type\":\"HBar\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"field\":\"cat\",\"transform\":{\"id\":\"1241\"}},\"hatch_alpha\":{\"value\":0.2},\"height\":{\"value\":0.4},\"left\":{\"field\":\"bottom\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":null},\"right\":{\"field\":\"top\"},\"y\":{\"field\":\"cat\"}},\"id\":\"1257\",\"type\":\"HBar\"},{\"attributes\":{},\"id\":\"1304\",\"type\":\"Selection\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1237\"},\"glyph\":{\"id\":\"1255\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1257\"},\"nonselection_glyph\":{\"id\":\"1256\"},\"view\":{\"id\":\"1259\"}},\"id\":\"1258\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":{\"value\":0.2},\"x0\":{\"field\":\"bottom\"},\"x1\":{\"field\":\"bottom_whisker\"},\"y0\":{\"field\":\"cat\"},\"y1\":{\"field\":\"cat\"}},\"id\":\"1251\",\"type\":\"Segment\"},{\"attributes\":{\"factors\":[\"I\",\"II\",\"III\",\"IV\"],\"palette\":[\"#1f77b3\",\"#ff7e0e\",\"#2ba02b\",\"#d62628\",\"#9367bc\",\"#8c564b\",\"#e277c1\",\"#7e7e7e\",\"#bcbc21\",\"#16bdcf\",\"#3a0182\",\"#004201\",\"#0fffa8\",\"#5d003f\",\"#bcbcff\",\"#d8afa1\",\"#b80080\",\"#004d52\",\"#6b6400\",\"#7c0100\",\"#6026ff\",\"#ffff9a\",\"#564964\",\"#8cb893\",\"#93fbff\",\"#018267\",\"#90ff00\",\"#8200a0\",\"#ac8944\",\"#5b3400\",\"#ffbff2\",\"#ff6e75\",\"#798cff\",\"#dd00ff\",\"#505646\",\"#004489\",\"#ffbf60\",\"#ff018c\",\"#bdc8cf\",\"#af97b5\",\"#b65600\",\"#017000\",\"#cd87ff\",\"#1cd646\",\"#bfebc3\",\"#7997b5\",\"#a56089\",\"#6e8956\",\"#bc7c75\",\"#8a2844\",\"#00acff\",\"#8ed4ff\",\"#4b6d77\",\"#00d4b1\",\"#9300f2\",\"#8a9500\",\"#5d5b9e\",\"#fddfba\",\"#00939e\",\"#ffdb00\",\"#00aa79\",\"#520067\",\"#000091\",\"#0a5d3d\",\"#a5e275\",\"#623b41\",\"#c6c689\",\"#ff9eb5\",\"#cd4f6b\",\"#ff07d6\",\"#8a3a05\",\"#7e3d70\",\"#ff4901\",\"#602ba5\",\"#1c00ff\",\"#e6dfff\",\"#aa3baf\",\"#d89c00\",\"#a3a39e\",\"#3f69ff\",\"#46490c\",\"#7b6985\",\"#6b978c\",\"#ff9a75\",\"#835bff\",\"#7c6b46\",\"#80b654\",\"#bc0049\",\"#fd93ff\",\"#5d0018\",\"#89d1d1\",\"#9c8cd3\",\"#da6d42\",\"#8a5700\",\"#3b5069\",\"#4b6b3b\",\"#edcfd8\",\"#cfedff\",\"#aa1500\",\"#dfff4f\",\"#ff2a56\",\"#d1499e\",\"#707cb8\",\"#598000\",\"#00e4fd\",\"#774b95\",\"#67d48c\",\"#3d3a72\",\"#ac413f\",\"#d6a166\",\"#c169cd\",\"#69595d\",\"#87aced\",\"#a0a569\",\"#d1aae6\",\"#870062\",\"#00fddb\",\"#672818\",\"#b342ff\",\"#0e59c4\",\"#168742\",\"#90d300\",\"#cd7900\",\"#f959ff\",\"#5b7466\",\"#8eaeb3\",\"#9c7c8c\",\"#4600c6\",\"#6b4d2d\",\"#a56d46\",\"#9e8972\",\"#a8afca\",\"#cd8ca7\",\"#00fd64\",\"#917900\",\"#ff62a1\",\"#f4ffd8\",\"#018cf0\",\"#13aca0\",\"#5b2d59\",\"#89859e\",\"#cfccba\",\"#d4afc4\",\"#dbdd6d\",\"#cffff4\",\"#006485\",\"#006962\",\"#a84167\",\"#2d97c4\",\"#a874ff\",\"#26ba5d\",\"#57b600\",\"#caffa7\",\"#a379aa\",\"#ffbc93\",\"#89e2c1\",\"#0fc8ff\",\"#d400c4\",\"#626d89\",\"#69858e\",\"#4b4d52\",\"#aa6067\",\"#79b5d4\",\"#2b5916\",\"#9a0024\",\"#bdd1f2\",\"#896e67\",\"#69a56b\",\"#855467\",\"#aecdba\",\"#87997e\",\"#cadb00\",\"#9a0390\",\"#ebbc1a\",\"#eb9cd1\",\"#70006e\",\"#b1a131\",\"#ca6b93\",\"#4146a3\",\"#e48c89\",\"#d44400\",\"#c68aca\",\"#b69597\",\"#d41f75\",\"#724bcc\",\"#674d00\",\"#672138\",\"#38564f\",\"#6ebaaa\",\"#853a31\",\"#a5d397\",\"#b8af8e\",\"#d8e4df\",\"#aa00df\",\"#cac1db\",\"#ffdf8c\",\"#e2524d\",\"#66696e\",\"#ff001c\",\"#522d72\",\"#4d906b\",\"#a86d11\",\"#ff9e26\",\"#5ea3af\",\"#c88556\",\"#915997\",\"#a3a1ff\",\"#fdbaba\",\"#242a87\",\"#dbe6a8\",\"#97f2a7\",\"#6793d6\",\"#ba5b3f\",\"#3a5d91\",\"#364f2f\",\"#267c95\",\"#89959a\",\"#cfb356\",\"#004664\",\"#5e5d2f\",\"#8e8e41\",\"#ac3f13\",\"#69953b\",\"#a13d85\",\"#bfb6ba\",\"#acc667\",\"#6469cf\",\"#91af00\",\"#2be2da\",\"#016e36\",\"#ff7952\",\"#42807e\",\"#4fe800\",\"#995428\",\"#5d0a00\",\"#a30057\",\"#0c8700\",\"#5982a7\",\"#ffebfb\",\"#4b6901\",\"#8775d4\",\"#e6c6ff\",\"#a5ffda\",\"#d86e77\",\"#df014b\",\"#69675b\",\"#776ba1\",\"#7e8067\",\"#594685\",\"#0000ca\",\"#7c002a\",\"#97ff72\",\"#b5e2e1\",\"#db52c8\",\"#777734\",\"#57bd8e\"]},\"id\":\"1239\",\"type\":\"CategoricalColorMapper\"},{\"attributes\":{\"tools\":[{\"id\":\"1223\"},{\"id\":\"1224\"},{\"id\":\"1225\"},{\"id\":\"1226\"},{\"id\":\"1227\"},{\"id\":\"1228\"}]},\"id\":\"1230\",\"type\":\"Toolbar\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.1},\"height\":{\"value\":0.4},\"left\":{\"field\":\"middle\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"middle\"},\"y\":{\"field\":\"cat\"}},\"id\":\"1262\",\"type\":\"HBar\"}],\"root_ids\":[\"1208\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.2\"}};\n", " const render_items = [{\"docid\":\"756c848b-a988-43e2-af82-232a18e256a1\",\"root_ids\":[\"1208\"],\"roots\":{\"1208\":\"890aeef8-fde9-43d4-9afd-fc078a930a92\"}}];\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": "1208" } }, "output_type": "display_data" } ], "source": [ "p = iqplot.box(\n", " data=df,\n", " q=\"impact force (mN)\",\n", " cats=\"ID\",\n", ")\n", "\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The line in the middle of each box is the median and the top and bottom of the box at the 75th and 25th percentiles, respectively. The distance between the 25th and 75th percentiles is called the **interquartile range**, or IQR. The whiskers of the box plot extend to the most extreme data point within 1.5 times the interquartile range. If any data points are more extreme than the end of the whisker, they are shown individually, and are often referred to as _outliers_.\n", "\n", "A box plot can use a useful visualization if you have many data points and it is difficult to plot them all. I rarely find that there are situations where all data cannot be plotted, either with strip plots of ECDFs, which we will cover in a moment, so I generally do not use box plots. Nonetheless, I do not find them too objectionable, as they effectively display important nonparametric summary statistics of your data set." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plot all your data\n", "\n", "Box plots summarize a data set with summary statistics, but what not plot all your data? You work hard to acquire them. You should show them all. This is a mantra to live by.\n", "\n", "
\n", " \n", "Plot all of your data.\n", " \n", "
\n", "\n", "Let's do that now." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Strip plots\n", "\n", "A **strip plot** is like a scatter plot; it puts a glyph for every measured data point. The only difference is that one of the axes is categorical. In this case, you are plotting all of your data." ] }, { "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 = {\"1480291b-6c0c-46b6-a41c-7c327f93bfeb\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1380\"}],\"center\":[{\"id\":\"1383\"},{\"id\":\"1386\"}],\"frame_height\":275,\"frame_width\":375,\"left\":[{\"id\":\"1384\"}],\"renderers\":[{\"id\":\"1407\"}],\"title\":{\"id\":\"1443\"},\"toolbar\":{\"id\":\"1394\"},\"toolbar_location\":\"above\",\"x_range\":{\"id\":\"1373\"},\"x_scale\":{\"id\":\"1376\"},\"y_range\":{\"id\":\"1371\"},\"y_scale\":{\"id\":\"1378\"}},\"id\":\"1372\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1451\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1447\",\"type\":\"AllLabels\"},{\"attributes\":{\"coordinates\":null,\"group\":null},\"id\":\"1443\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1446\",\"type\":\"CategoricalTickFormatter\"},{\"attributes\":{},\"id\":\"1450\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"1452\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1381\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis\":{\"id\":\"1380\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1383\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1378\",\"type\":\"CategoricalScale\"},{\"attributes\":{\"axis_label\":\"impact force (mN)\",\"coordinates\":null,\"formatter\":{\"id\":\"1449\"},\"group\":null,\"major_label_policy\":{\"id\":\"1450\"},\"ticker\":{\"id\":\"1381\"}},\"id\":\"1380\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1392\",\"type\":\"HelpTool\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"field\":\"cat\",\"transform\":{\"id\":\"1401\"}},\"hatch_alpha\":{\"value\":0.2},\"hatch_color\":{\"field\":\"cat\",\"transform\":{\"id\":\"1401\"}},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"field\":\"cat\",\"transform\":{\"id\":\"1401\"}},\"x\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"cat\"}},\"id\":\"1406\",\"type\":\"Circle\"},{\"attributes\":{\"coordinates\":null,\"formatter\":{\"id\":\"1446\"},\"group\":null,\"major_label_policy\":{\"id\":\"1447\"},\"ticker\":{\"id\":\"1385\"}},\"id\":\"1384\",\"type\":\"CategoricalAxis\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1402\"},\"glyph\":{\"id\":\"1404\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1406\"},\"nonselection_glyph\":{\"id\":\"1405\"},\"view\":{\"id\":\"1408\"}},\"id\":\"1407\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"axis\":{\"id\":\"1384\"},\"coordinates\":null,\"dimension\":1,\"grid_line_color\":null,\"group\":null,\"ticker\":null},\"id\":\"1386\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1385\",\"type\":\"CategoricalTicker\"},{\"attributes\":{},\"id\":\"1388\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"fill_color\":{\"field\":\"cat\",\"transform\":{\"id\":\"1401\"}},\"hatch_color\":{\"field\":\"cat\",\"transform\":{\"id\":\"1401\"}},\"line_color\":{\"field\":\"cat\",\"transform\":{\"id\":\"1401\"}},\"x\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"cat\"}},\"id\":\"1404\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1387\",\"type\":\"PanTool\"},{\"attributes\":{\"tools\":[{\"id\":\"1387\"},{\"id\":\"1388\"},{\"id\":\"1389\"},{\"id\":\"1390\"},{\"id\":\"1391\"},{\"id\":\"1392\"}]},\"id\":\"1394\",\"type\":\"Toolbar\"},{\"attributes\":{\"overlay\":{\"id\":\"1393\"}},\"id\":\"1389\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1390\",\"type\":\"SaveTool\"},{\"attributes\":{\"data\":{\"ID\":[\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\"],\"__label\":[\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\"],\"cat\":[\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\"],\"impact force (mN)\":[1205,2527,1745,1556,493,2276,556,1928,2641,1897,1891,1545,1307,1692,1543,1282,775,2032,1240,473,1612,605,327,946,541,1539,529,628,1453,297,703,269,751,245,1182,515,435,383,457,730,614,414,324,776,611,544,538,579,806,459,458,626,621,544,535,385,401,614,665,488,172,142,37,453,355,22,502,273,720,582,198,198,597,516,815,402,605,711,614,468]},\"selected\":{\"id\":\"1452\"},\"selection_policy\":{\"id\":\"1451\"}},\"id\":\"1402\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1391\",\"type\":\"ResetTool\"},{\"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\":\"1393\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"field\":\"cat\",\"transform\":{\"id\":\"1401\"}},\"hatch_alpha\":{\"value\":0.1},\"hatch_color\":{\"field\":\"cat\",\"transform\":{\"id\":\"1401\"}},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"field\":\"cat\",\"transform\":{\"id\":\"1401\"}},\"x\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"cat\"}},\"id\":\"1405\",\"type\":\"Circle\"},{\"attributes\":{\"source\":{\"id\":\"1402\"}},\"id\":\"1408\",\"type\":\"CDSView\"},{\"attributes\":{\"factors\":[\"I\",\"II\",\"III\",\"IV\"],\"palette\":[\"#1f77b3\",\"#ff7e0e\",\"#2ba02b\",\"#d62628\",\"#9367bc\",\"#8c564b\",\"#e277c1\",\"#7e7e7e\",\"#bcbc21\",\"#16bdcf\",\"#3a0182\",\"#004201\",\"#0fffa8\",\"#5d003f\",\"#bcbcff\",\"#d8afa1\",\"#b80080\",\"#004d52\",\"#6b6400\",\"#7c0100\",\"#6026ff\",\"#ffff9a\",\"#564964\",\"#8cb893\",\"#93fbff\",\"#018267\",\"#90ff00\",\"#8200a0\",\"#ac8944\",\"#5b3400\",\"#ffbff2\",\"#ff6e75\",\"#798cff\",\"#dd00ff\",\"#505646\",\"#004489\",\"#ffbf60\",\"#ff018c\",\"#bdc8cf\",\"#af97b5\",\"#b65600\",\"#017000\",\"#cd87ff\",\"#1cd646\",\"#bfebc3\",\"#7997b5\",\"#a56089\",\"#6e8956\",\"#bc7c75\",\"#8a2844\",\"#00acff\",\"#8ed4ff\",\"#4b6d77\",\"#00d4b1\",\"#9300f2\",\"#8a9500\",\"#5d5b9e\",\"#fddfba\",\"#00939e\",\"#ffdb00\",\"#00aa79\",\"#520067\",\"#000091\",\"#0a5d3d\",\"#a5e275\",\"#623b41\",\"#c6c689\",\"#ff9eb5\",\"#cd4f6b\",\"#ff07d6\",\"#8a3a05\",\"#7e3d70\",\"#ff4901\",\"#602ba5\",\"#1c00ff\",\"#e6dfff\",\"#aa3baf\",\"#d89c00\",\"#a3a39e\",\"#3f69ff\",\"#46490c\",\"#7b6985\",\"#6b978c\",\"#ff9a75\",\"#835bff\",\"#7c6b46\",\"#80b654\",\"#bc0049\",\"#fd93ff\",\"#5d0018\",\"#89d1d1\",\"#9c8cd3\",\"#da6d42\",\"#8a5700\",\"#3b5069\",\"#4b6b3b\",\"#edcfd8\",\"#cfedff\",\"#aa1500\",\"#dfff4f\",\"#ff2a56\",\"#d1499e\",\"#707cb8\",\"#598000\",\"#00e4fd\",\"#774b95\",\"#67d48c\",\"#3d3a72\",\"#ac413f\",\"#d6a166\",\"#c169cd\",\"#69595d\",\"#87aced\",\"#a0a569\",\"#d1aae6\",\"#870062\",\"#00fddb\",\"#672818\",\"#b342ff\",\"#0e59c4\",\"#168742\",\"#90d300\",\"#cd7900\",\"#f959ff\",\"#5b7466\",\"#8eaeb3\",\"#9c7c8c\",\"#4600c6\",\"#6b4d2d\",\"#a56d46\",\"#9e8972\",\"#a8afca\",\"#cd8ca7\",\"#00fd64\",\"#917900\",\"#ff62a1\",\"#f4ffd8\",\"#018cf0\",\"#13aca0\",\"#5b2d59\",\"#89859e\",\"#cfccba\",\"#d4afc4\",\"#dbdd6d\",\"#cffff4\",\"#006485\",\"#006962\",\"#a84167\",\"#2d97c4\",\"#a874ff\",\"#26ba5d\",\"#57b600\",\"#caffa7\",\"#a379aa\",\"#ffbc93\",\"#89e2c1\",\"#0fc8ff\",\"#d400c4\",\"#626d89\",\"#69858e\",\"#4b4d52\",\"#aa6067\",\"#79b5d4\",\"#2b5916\",\"#9a0024\",\"#bdd1f2\",\"#896e67\",\"#69a56b\",\"#855467\",\"#aecdba\",\"#87997e\",\"#cadb00\",\"#9a0390\",\"#ebbc1a\",\"#eb9cd1\",\"#70006e\",\"#b1a131\",\"#ca6b93\",\"#4146a3\",\"#e48c89\",\"#d44400\",\"#c68aca\",\"#b69597\",\"#d41f75\",\"#724bcc\",\"#674d00\",\"#672138\",\"#38564f\",\"#6ebaaa\",\"#853a31\",\"#a5d397\",\"#b8af8e\",\"#d8e4df\",\"#aa00df\",\"#cac1db\",\"#ffdf8c\",\"#e2524d\",\"#66696e\",\"#ff001c\",\"#522d72\",\"#4d906b\",\"#a86d11\",\"#ff9e26\",\"#5ea3af\",\"#c88556\",\"#915997\",\"#a3a1ff\",\"#fdbaba\",\"#242a87\",\"#dbe6a8\",\"#97f2a7\",\"#6793d6\",\"#ba5b3f\",\"#3a5d91\",\"#364f2f\",\"#267c95\",\"#89959a\",\"#cfb356\",\"#004664\",\"#5e5d2f\",\"#8e8e41\",\"#ac3f13\",\"#69953b\",\"#a13d85\",\"#bfb6ba\",\"#acc667\",\"#6469cf\",\"#91af00\",\"#2be2da\",\"#016e36\",\"#ff7952\",\"#42807e\",\"#4fe800\",\"#995428\",\"#5d0a00\",\"#a30057\",\"#0c8700\",\"#5982a7\",\"#ffebfb\",\"#4b6901\",\"#8775d4\",\"#e6c6ff\",\"#a5ffda\",\"#d86e77\",\"#df014b\",\"#69675b\",\"#776ba1\",\"#7e8067\",\"#594685\",\"#0000ca\",\"#7c002a\",\"#97ff72\",\"#b5e2e1\",\"#db52c8\",\"#777734\",\"#57bd8e\"]},\"id\":\"1401\",\"type\":\"CategoricalColorMapper\"},{\"attributes\":{},\"id\":\"1373\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1449\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"factors\":[\"IV\",\"III\",\"II\",\"I\"]},\"id\":\"1371\",\"type\":\"FactorRange\"},{\"attributes\":{},\"id\":\"1376\",\"type\":\"LinearScale\"}],\"root_ids\":[\"1372\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.2\"}};\n", " const render_items = [{\"docid\":\"1480291b-6c0c-46b6-a41c-7c327f93bfeb\",\"root_ids\":[\"1372\"],\"roots\":{\"1372\":\"30b00d48-5616-42e3-a5e5-f4de6b3b7797\"}}];\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": "1372" } }, "output_type": "display_data" } ], "source": [ "p = iqplot.strip(\n", " data=df,\n", " q=\"impact force (mN)\",\n", " cats=\"ID\",\n", ")\n", "\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is a good plot to make since you are plotting all of your data, but it does have the problem that you cannot tell if multiple data points overlap." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Strip-box plots\n", "\n", "It is sometimes useful to overlay strip plots with box plots, as the box plots show useful quantile information. This is accomplished using the `iqplot.stripbox()` function." ] }, { "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 = {\"4206845e-02ef-4c47-93c8-24e47fd85836\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1518\"}],\"center\":[{\"id\":\"1521\"},{\"id\":\"1524\"}],\"frame_height\":275,\"frame_width\":375,\"left\":[{\"id\":\"1522\"}],\"renderers\":[{\"id\":\"1548\"},{\"id\":\"1554\"},{\"id\":\"1560\"},{\"id\":\"1566\"},{\"id\":\"1572\"},{\"id\":\"1578\"},{\"id\":\"1587\"}],\"title\":{\"id\":\"1634\"},\"toolbar\":{\"id\":\"1532\"},\"toolbar_location\":\"above\",\"x_range\":{\"id\":\"1511\"},\"x_scale\":{\"id\":\"1514\"},\"y_range\":{\"id\":\"1509\"},\"y_scale\":{\"id\":\"1516\"}},\"id\":\"1510\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"source\":{\"id\":\"1539\"}},\"id\":\"1549\",\"type\":\"CDSView\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.2},\"height\":{\"value\":0.4},\"left\":{\"field\":\"middle\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"gray\"},\"right\":{\"field\":\"middle\"},\"y\":{\"field\":\"cat\"}},\"id\":\"1577\",\"type\":\"HBar\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"field\":\"cat\",\"transform\":{\"id\":\"1581\"}},\"hatch_alpha\":{\"value\":0.2},\"hatch_color\":{\"field\":\"cat\",\"transform\":{\"id\":\"1581\"}},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"field\":\"cat\",\"transform\":{\"id\":\"1581\"}},\"x\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"cat\"}},\"id\":\"1586\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1644\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"fill_alpha\":{\"value\":0},\"fill_color\":{\"field\":\"cat\",\"transform\":{\"id\":\"1543\"}},\"height\":{\"value\":0.4},\"left\":{\"field\":\"bottom\"},\"line_color\":{\"value\":\"gray\"},\"right\":{\"field\":\"top\"},\"y\":{\"field\":\"cat\"}},\"id\":\"1569\",\"type\":\"HBar\"},{\"attributes\":{\"factors\":[\"I\",\"II\",\"III\",\"IV\"],\"palette\":[\"#1f77b3\",\"#ff7e0e\",\"#2ba02b\",\"#d62628\",\"#9367bc\",\"#8c564b\",\"#e277c1\",\"#7e7e7e\",\"#bcbc21\",\"#16bdcf\",\"#3a0182\",\"#004201\",\"#0fffa8\",\"#5d003f\",\"#bcbcff\",\"#d8afa1\",\"#b80080\",\"#004d52\",\"#6b6400\",\"#7c0100\",\"#6026ff\",\"#ffff9a\",\"#564964\",\"#8cb893\",\"#93fbff\",\"#018267\",\"#90ff00\",\"#8200a0\",\"#ac8944\",\"#5b3400\",\"#ffbff2\",\"#ff6e75\",\"#798cff\",\"#dd00ff\",\"#505646\",\"#004489\",\"#ffbf60\",\"#ff018c\",\"#bdc8cf\",\"#af97b5\",\"#b65600\",\"#017000\",\"#cd87ff\",\"#1cd646\",\"#bfebc3\",\"#7997b5\",\"#a56089\",\"#6e8956\",\"#bc7c75\",\"#8a2844\",\"#00acff\",\"#8ed4ff\",\"#4b6d77\",\"#00d4b1\",\"#9300f2\",\"#8a9500\",\"#5d5b9e\",\"#fddfba\",\"#00939e\",\"#ffdb00\",\"#00aa79\",\"#520067\",\"#000091\",\"#0a5d3d\",\"#a5e275\",\"#623b41\",\"#c6c689\",\"#ff9eb5\",\"#cd4f6b\",\"#ff07d6\",\"#8a3a05\",\"#7e3d70\",\"#ff4901\",\"#602ba5\",\"#1c00ff\",\"#e6dfff\",\"#aa3baf\",\"#d89c00\",\"#a3a39e\",\"#3f69ff\",\"#46490c\",\"#7b6985\",\"#6b978c\",\"#ff9a75\",\"#835bff\",\"#7c6b46\",\"#80b654\",\"#bc0049\",\"#fd93ff\",\"#5d0018\",\"#89d1d1\",\"#9c8cd3\",\"#da6d42\",\"#8a5700\",\"#3b5069\",\"#4b6b3b\",\"#edcfd8\",\"#cfedff\",\"#aa1500\",\"#dfff4f\",\"#ff2a56\",\"#d1499e\",\"#707cb8\",\"#598000\",\"#00e4fd\",\"#774b95\",\"#67d48c\",\"#3d3a72\",\"#ac413f\",\"#d6a166\",\"#c169cd\",\"#69595d\",\"#87aced\",\"#a0a569\",\"#d1aae6\",\"#870062\",\"#00fddb\",\"#672818\",\"#b342ff\",\"#0e59c4\",\"#168742\",\"#90d300\",\"#cd7900\",\"#f959ff\",\"#5b7466\",\"#8eaeb3\",\"#9c7c8c\",\"#4600c6\",\"#6b4d2d\",\"#a56d46\",\"#9e8972\",\"#a8afca\",\"#cd8ca7\",\"#00fd64\",\"#917900\",\"#ff62a1\",\"#f4ffd8\",\"#018cf0\",\"#13aca0\",\"#5b2d59\",\"#89859e\",\"#cfccba\",\"#d4afc4\",\"#dbdd6d\",\"#cffff4\",\"#006485\",\"#006962\",\"#a84167\",\"#2d97c4\",\"#a874ff\",\"#26ba5d\",\"#57b600\",\"#caffa7\",\"#a379aa\",\"#ffbc93\",\"#89e2c1\",\"#0fc8ff\",\"#d400c4\",\"#626d89\",\"#69858e\",\"#4b4d52\",\"#aa6067\",\"#79b5d4\",\"#2b5916\",\"#9a0024\",\"#bdd1f2\",\"#896e67\",\"#69a56b\",\"#855467\",\"#aecdba\",\"#87997e\",\"#cadb00\",\"#9a0390\",\"#ebbc1a\",\"#eb9cd1\",\"#70006e\",\"#b1a131\",\"#ca6b93\",\"#4146a3\",\"#e48c89\",\"#d44400\",\"#c68aca\",\"#b69597\",\"#d41f75\",\"#724bcc\",\"#674d00\",\"#672138\",\"#38564f\",\"#6ebaaa\",\"#853a31\",\"#a5d397\",\"#b8af8e\",\"#d8e4df\",\"#aa00df\",\"#cac1db\",\"#ffdf8c\",\"#e2524d\",\"#66696e\",\"#ff001c\",\"#522d72\",\"#4d906b\",\"#a86d11\",\"#ff9e26\",\"#5ea3af\",\"#c88556\",\"#915997\",\"#a3a1ff\",\"#fdbaba\",\"#242a87\",\"#dbe6a8\",\"#97f2a7\",\"#6793d6\",\"#ba5b3f\",\"#3a5d91\",\"#364f2f\",\"#267c95\",\"#89959a\",\"#cfb356\",\"#004664\",\"#5e5d2f\",\"#8e8e41\",\"#ac3f13\",\"#69953b\",\"#a13d85\",\"#bfb6ba\",\"#acc667\",\"#6469cf\",\"#91af00\",\"#2be2da\",\"#016e36\",\"#ff7952\",\"#42807e\",\"#4fe800\",\"#995428\",\"#5d0a00\",\"#a30057\",\"#0c8700\",\"#5982a7\",\"#ffebfb\",\"#4b6901\",\"#8775d4\",\"#e6c6ff\",\"#a5ffda\",\"#d86e77\",\"#df014b\",\"#69675b\",\"#776ba1\",\"#7e8067\",\"#594685\",\"#0000ca\",\"#7c002a\",\"#97ff72\",\"#b5e2e1\",\"#db52c8\",\"#777734\",\"#57bd8e\"]},\"id\":\"1581\",\"type\":\"CategoricalColorMapper\"},{\"attributes\":{\"fill_color\":{\"value\":\"#1f77b4\"},\"height\":{\"value\":0.1},\"left\":{\"field\":\"bottom_whisker\"},\"line_color\":{\"value\":\"gray\"},\"right\":{\"field\":\"bottom_whisker\"},\"y\":{\"field\":\"cat\"}},\"id\":\"1563\",\"type\":\"HBar\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.2},\"height\":{\"value\":0.1},\"left\":{\"field\":\"top_whisker\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"gray\"},\"right\":{\"field\":\"top_whisker\"},\"y\":{\"field\":\"cat\"}},\"id\":\"1559\",\"type\":\"HBar\"},{\"attributes\":{},\"id\":\"1641\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"1645\",\"type\":\"Selection\"},{\"attributes\":{\"factors\":[\"IV\",\"III\",\"II\",\"I\"]},\"id\":\"1509\",\"type\":\"FactorRange\"},{\"attributes\":{\"source\":{\"id\":\"1539\"}},\"id\":\"1573\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1642\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1514\",\"type\":\"LinearScale\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1539\"},\"glyph\":{\"id\":\"1545\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1547\"},\"nonselection_glyph\":{\"id\":\"1546\"},\"view\":{\"id\":\"1549\"}},\"id\":\"1548\",\"type\":\"GlyphRenderer\"},{\"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\":\"1531\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"gray\"},\"x0\":{\"field\":\"top\"},\"x1\":{\"field\":\"top_whisker\"},\"y0\":{\"field\":\"cat\"},\"y1\":{\"field\":\"cat\"}},\"id\":\"1546\",\"type\":\"Segment\"},{\"attributes\":{\"fill_color\":{\"value\":\"#1f77b4\"},\"height\":{\"value\":0.4},\"left\":{\"field\":\"middle\"},\"line_color\":{\"value\":\"gray\"},\"right\":{\"field\":\"middle\"},\"y\":{\"field\":\"cat\"}},\"id\":\"1575\",\"type\":\"HBar\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1539\"},\"glyph\":{\"id\":\"1575\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1577\"},\"nonselection_glyph\":{\"id\":\"1576\"},\"view\":{\"id\":\"1579\"}},\"id\":\"1578\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1519\",\"type\":\"BasicTicker\"},{\"attributes\":{\"data\":{\"__label\":[\"I\",\"II\",\"III\",\"IV\"],\"bottom\":[1231.25,422.0,458.75,198.0],\"bottom_whisker\":[473.0,245.0,324.0,22.0],\"cat\":[\"I\",\"II\",\"III\",\"IV\"],\"middle\":[1550.5,573.0,544.0,460.5],\"top\":[1904.75,799.75,615.75,599.0],\"top_whisker\":[2641.0,1182.0,806.0,815.0]},\"selected\":{\"id\":\"1643\"},\"selection_policy\":{\"id\":\"1642\"}},\"id\":\"1539\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"axis\":{\"id\":\"1518\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1521\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1638\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"1516\",\"type\":\"CategoricalScale\"},{\"attributes\":{\"axis_label\":\"impact force (mN)\",\"coordinates\":null,\"formatter\":{\"id\":\"1640\"},\"group\":null,\"major_label_policy\":{\"id\":\"1641\"},\"ticker\":{\"id\":\"1519\"}},\"id\":\"1518\",\"type\":\"LinearAxis\"},{\"attributes\":{\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"gray\"},\"x0\":{\"field\":\"bottom\"},\"x1\":{\"field\":\"bottom_whisker\"},\"y0\":{\"field\":\"cat\"},\"y1\":{\"field\":\"cat\"}},\"id\":\"1553\",\"type\":\"Segment\"},{\"attributes\":{\"fill_color\":{\"value\":\"#1f77b4\"},\"height\":{\"value\":0.1},\"left\":{\"field\":\"top_whisker\"},\"line_color\":{\"value\":\"gray\"},\"right\":{\"field\":\"top_whisker\"},\"y\":{\"field\":\"cat\"}},\"id\":\"1557\",\"type\":\"HBar\"},{\"attributes\":{\"tools\":[{\"id\":\"1525\"},{\"id\":\"1526\"},{\"id\":\"1527\"},{\"id\":\"1528\"},{\"id\":\"1529\"},{\"id\":\"1530\"}]},\"id\":\"1532\",\"type\":\"Toolbar\"},{\"attributes\":{\"source\":{\"id\":\"1539\"}},\"id\":\"1561\",\"type\":\"CDSView\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.2},\"height\":{\"value\":0.1},\"left\":{\"field\":\"bottom_whisker\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"gray\"},\"right\":{\"field\":\"bottom_whisker\"},\"y\":{\"field\":\"cat\"}},\"id\":\"1565\",\"type\":\"HBar\"},{\"attributes\":{},\"id\":\"1530\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"1640\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"coordinates\":null,\"formatter\":{\"id\":\"1637\"},\"group\":null,\"major_label_policy\":{\"id\":\"1638\"},\"ticker\":{\"id\":\"1523\"}},\"id\":\"1522\",\"type\":\"CategoricalAxis\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1582\"},\"glyph\":{\"id\":\"1584\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1586\"},\"nonselection_glyph\":{\"id\":\"1585\"},\"view\":{\"id\":\"1588\"}},\"id\":\"1587\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"axis\":{\"id\":\"1522\"},\"coordinates\":null,\"dimension\":1,\"grid_line_color\":null,\"group\":null,\"ticker\":null},\"id\":\"1524\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1523\",\"type\":\"CategoricalTicker\"},{\"attributes\":{\"data\":{\"ID\":[\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\"],\"__label\":[\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\"],\"cat\":[\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\"],\"impact force (mN)\":[1205,2527,1745,1556,493,2276,556,1928,2641,1897,1891,1545,1307,1692,1543,1282,775,2032,1240,473,1612,605,327,946,541,1539,529,628,1453,297,703,269,751,245,1182,515,435,383,457,730,614,414,324,776,611,544,538,579,806,459,458,626,621,544,535,385,401,614,665,488,172,142,37,453,355,22,502,273,720,582,198,198,597,516,815,402,605,711,614,468]},\"selected\":{\"id\":\"1645\"},\"selection_policy\":{\"id\":\"1644\"}},\"id\":\"1582\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_color\":{\"value\":\"gray\"},\"x0\":{\"field\":\"bottom\"},\"x1\":{\"field\":\"bottom_whisker\"},\"y0\":{\"field\":\"cat\"},\"y1\":{\"field\":\"cat\"}},\"id\":\"1551\",\"type\":\"Segment\"},{\"attributes\":{\"line_color\":{\"value\":\"gray\"},\"x0\":{\"field\":\"top\"},\"x1\":{\"field\":\"top_whisker\"},\"y0\":{\"field\":\"cat\"},\"y1\":{\"field\":\"cat\"}},\"id\":\"1545\",\"type\":\"Segment\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"field\":\"cat\",\"transform\":{\"id\":\"1543\"}},\"hatch_alpha\":{\"value\":0.1},\"height\":{\"value\":0.4},\"left\":{\"field\":\"bottom\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"gray\"},\"right\":{\"field\":\"top\"},\"y\":{\"field\":\"cat\"}},\"id\":\"1570\",\"type\":\"HBar\"},{\"attributes\":{},\"id\":\"1526\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"1643\",\"type\":\"Selection\"},{\"attributes\":{\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"gray\"},\"x0\":{\"field\":\"top\"},\"x1\":{\"field\":\"top_whisker\"},\"y0\":{\"field\":\"cat\"},\"y1\":{\"field\":\"cat\"}},\"id\":\"1547\",\"type\":\"Segment\"},{\"attributes\":{\"source\":{\"id\":\"1582\"}},\"id\":\"1588\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1525\",\"type\":\"PanTool\"},{\"attributes\":{\"overlay\":{\"id\":\"1531\"}},\"id\":\"1527\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1637\",\"type\":\"CategoricalTickFormatter\"},{\"attributes\":{},\"id\":\"1528\",\"type\":\"SaveTool\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"field\":\"cat\",\"transform\":{\"id\":\"1581\"}},\"hatch_alpha\":{\"value\":0.1},\"hatch_color\":{\"field\":\"cat\",\"transform\":{\"id\":\"1581\"}},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"field\":\"cat\",\"transform\":{\"id\":\"1581\"}},\"x\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"cat\"}},\"id\":\"1585\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1529\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"1511\",\"type\":\"DataRange1d\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"gray\"},\"x0\":{\"field\":\"bottom\"},\"x1\":{\"field\":\"bottom_whisker\"},\"y0\":{\"field\":\"cat\"},\"y1\":{\"field\":\"cat\"}},\"id\":\"1552\",\"type\":\"Segment\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"field\":\"cat\",\"transform\":{\"id\":\"1543\"}},\"hatch_alpha\":{\"value\":0.2},\"height\":{\"value\":0.4},\"left\":{\"field\":\"bottom\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"gray\"},\"right\":{\"field\":\"top\"},\"y\":{\"field\":\"cat\"}},\"id\":\"1571\",\"type\":\"HBar\"},{\"attributes\":{\"coordinates\":null,\"group\":null},\"id\":\"1634\",\"type\":\"Title\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1539\"},\"glyph\":{\"id\":\"1551\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1553\"},\"nonselection_glyph\":{\"id\":\"1552\"},\"view\":{\"id\":\"1555\"}},\"id\":\"1554\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.1},\"height\":{\"value\":0.4},\"left\":{\"field\":\"middle\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"gray\"},\"right\":{\"field\":\"middle\"},\"y\":{\"field\":\"cat\"}},\"id\":\"1576\",\"type\":\"HBar\"},{\"attributes\":{\"factors\":[\"I\",\"II\",\"III\",\"IV\"],\"palette\":[\"#1f77b3\",\"#ff7e0e\",\"#2ba02b\",\"#d62628\",\"#9367bc\",\"#8c564b\",\"#e277c1\",\"#7e7e7e\",\"#bcbc21\",\"#16bdcf\",\"#3a0182\",\"#004201\",\"#0fffa8\",\"#5d003f\",\"#bcbcff\",\"#d8afa1\",\"#b80080\",\"#004d52\",\"#6b6400\",\"#7c0100\",\"#6026ff\",\"#ffff9a\",\"#564964\",\"#8cb893\",\"#93fbff\",\"#018267\",\"#90ff00\",\"#8200a0\",\"#ac8944\",\"#5b3400\",\"#ffbff2\",\"#ff6e75\",\"#798cff\",\"#dd00ff\",\"#505646\",\"#004489\",\"#ffbf60\",\"#ff018c\",\"#bdc8cf\",\"#af97b5\",\"#b65600\",\"#017000\",\"#cd87ff\",\"#1cd646\",\"#bfebc3\",\"#7997b5\",\"#a56089\",\"#6e8956\",\"#bc7c75\",\"#8a2844\",\"#00acff\",\"#8ed4ff\",\"#4b6d77\",\"#00d4b1\",\"#9300f2\",\"#8a9500\",\"#5d5b9e\",\"#fddfba\",\"#00939e\",\"#ffdb00\",\"#00aa79\",\"#520067\",\"#000091\",\"#0a5d3d\",\"#a5e275\",\"#623b41\",\"#c6c689\",\"#ff9eb5\",\"#cd4f6b\",\"#ff07d6\",\"#8a3a05\",\"#7e3d70\",\"#ff4901\",\"#602ba5\",\"#1c00ff\",\"#e6dfff\",\"#aa3baf\",\"#d89c00\",\"#a3a39e\",\"#3f69ff\",\"#46490c\",\"#7b6985\",\"#6b978c\",\"#ff9a75\",\"#835bff\",\"#7c6b46\",\"#80b654\",\"#bc0049\",\"#fd93ff\",\"#5d0018\",\"#89d1d1\",\"#9c8cd3\",\"#da6d42\",\"#8a5700\",\"#3b5069\",\"#4b6b3b\",\"#edcfd8\",\"#cfedff\",\"#aa1500\",\"#dfff4f\",\"#ff2a56\",\"#d1499e\",\"#707cb8\",\"#598000\",\"#00e4fd\",\"#774b95\",\"#67d48c\",\"#3d3a72\",\"#ac413f\",\"#d6a166\",\"#c169cd\",\"#69595d\",\"#87aced\",\"#a0a569\",\"#d1aae6\",\"#870062\",\"#00fddb\",\"#672818\",\"#b342ff\",\"#0e59c4\",\"#168742\",\"#90d300\",\"#cd7900\",\"#f959ff\",\"#5b7466\",\"#8eaeb3\",\"#9c7c8c\",\"#4600c6\",\"#6b4d2d\",\"#a56d46\",\"#9e8972\",\"#a8afca\",\"#cd8ca7\",\"#00fd64\",\"#917900\",\"#ff62a1\",\"#f4ffd8\",\"#018cf0\",\"#13aca0\",\"#5b2d59\",\"#89859e\",\"#cfccba\",\"#d4afc4\",\"#dbdd6d\",\"#cffff4\",\"#006485\",\"#006962\",\"#a84167\",\"#2d97c4\",\"#a874ff\",\"#26ba5d\",\"#57b600\",\"#caffa7\",\"#a379aa\",\"#ffbc93\",\"#89e2c1\",\"#0fc8ff\",\"#d400c4\",\"#626d89\",\"#69858e\",\"#4b4d52\",\"#aa6067\",\"#79b5d4\",\"#2b5916\",\"#9a0024\",\"#bdd1f2\",\"#896e67\",\"#69a56b\",\"#855467\",\"#aecdba\",\"#87997e\",\"#cadb00\",\"#9a0390\",\"#ebbc1a\",\"#eb9cd1\",\"#70006e\",\"#b1a131\",\"#ca6b93\",\"#4146a3\",\"#e48c89\",\"#d44400\",\"#c68aca\",\"#b69597\",\"#d41f75\",\"#724bcc\",\"#674d00\",\"#672138\",\"#38564f\",\"#6ebaaa\",\"#853a31\",\"#a5d397\",\"#b8af8e\",\"#d8e4df\",\"#aa00df\",\"#cac1db\",\"#ffdf8c\",\"#e2524d\",\"#66696e\",\"#ff001c\",\"#522d72\",\"#4d906b\",\"#a86d11\",\"#ff9e26\",\"#5ea3af\",\"#c88556\",\"#915997\",\"#a3a1ff\",\"#fdbaba\",\"#242a87\",\"#dbe6a8\",\"#97f2a7\",\"#6793d6\",\"#ba5b3f\",\"#3a5d91\",\"#364f2f\",\"#267c95\",\"#89959a\",\"#cfb356\",\"#004664\",\"#5e5d2f\",\"#8e8e41\",\"#ac3f13\",\"#69953b\",\"#a13d85\",\"#bfb6ba\",\"#acc667\",\"#6469cf\",\"#91af00\",\"#2be2da\",\"#016e36\",\"#ff7952\",\"#42807e\",\"#4fe800\",\"#995428\",\"#5d0a00\",\"#a30057\",\"#0c8700\",\"#5982a7\",\"#ffebfb\",\"#4b6901\",\"#8775d4\",\"#e6c6ff\",\"#a5ffda\",\"#d86e77\",\"#df014b\",\"#69675b\",\"#776ba1\",\"#7e8067\",\"#594685\",\"#0000ca\",\"#7c002a\",\"#97ff72\",\"#b5e2e1\",\"#db52c8\",\"#777734\",\"#57bd8e\"]},\"id\":\"1543\",\"type\":\"CategoricalColorMapper\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1539\"},\"glyph\":{\"id\":\"1557\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1559\"},\"nonselection_glyph\":{\"id\":\"1558\"},\"view\":{\"id\":\"1561\"}},\"id\":\"1560\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.1},\"height\":{\"value\":0.1},\"left\":{\"field\":\"bottom_whisker\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"gray\"},\"right\":{\"field\":\"bottom_whisker\"},\"y\":{\"field\":\"cat\"}},\"id\":\"1564\",\"type\":\"HBar\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1539\"},\"glyph\":{\"id\":\"1569\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1571\"},\"nonselection_glyph\":{\"id\":\"1570\"},\"view\":{\"id\":\"1573\"}},\"id\":\"1572\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"1539\"}},\"id\":\"1555\",\"type\":\"CDSView\"},{\"attributes\":{\"fill_color\":{\"field\":\"cat\",\"transform\":{\"id\":\"1581\"}},\"hatch_color\":{\"field\":\"cat\",\"transform\":{\"id\":\"1581\"}},\"line_color\":{\"field\":\"cat\",\"transform\":{\"id\":\"1581\"}},\"x\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"cat\"}},\"id\":\"1584\",\"type\":\"Circle\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.1},\"height\":{\"value\":0.1},\"left\":{\"field\":\"top_whisker\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"gray\"},\"right\":{\"field\":\"top_whisker\"},\"y\":{\"field\":\"cat\"}},\"id\":\"1558\",\"type\":\"HBar\"},{\"attributes\":{\"source\":{\"id\":\"1539\"}},\"id\":\"1579\",\"type\":\"CDSView\"},{\"attributes\":{\"source\":{\"id\":\"1539\"}},\"id\":\"1567\",\"type\":\"CDSView\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1539\"},\"glyph\":{\"id\":\"1563\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1565\"},\"nonselection_glyph\":{\"id\":\"1564\"},\"view\":{\"id\":\"1567\"}},\"id\":\"1566\",\"type\":\"GlyphRenderer\"}],\"root_ids\":[\"1510\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.2\"}};\n", " const render_items = [{\"docid\":\"4206845e-02ef-4c47-93c8-24e47fd85836\",\"root_ids\":[\"1510\"],\"roots\":{\"1510\":\"48c1f281-b041-4de7-95b3-60331a52ad72\"}}];\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": "1510" } }, "output_type": "display_data" } ], "source": [ "p = iqplot.stripbox(\n", " data=df,\n", " q=\"impact force (mN)\",\n", " cats=\"ID\",\n", ")\n", "\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Histograms\n", "\n", "In plotting all of our data in a strip plot, we can roughly see how the data are distributed. There are more measurements where there are more glyphs. We ofter seek to visualize the *distribution* of the data. **Histograms** are commonly used for this. They are typically interpreted to as an empirical representation of the probability density function." ] }, { "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 = {\"53fcf4db-b38e-4a23-99ae-4e37fbc19361\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1721\"}],\"center\":[{\"id\":\"1724\"},{\"id\":\"1728\"}],\"frame_height\":275,\"frame_width\":375,\"left\":[{\"id\":\"1725\"}],\"renderers\":[{\"id\":\"1747\"},{\"id\":\"1753\"},{\"id\":\"1759\"},{\"id\":\"1765\"},{\"id\":\"1771\"},{\"id\":\"1777\"},{\"id\":\"1783\"},{\"id\":\"1789\"},{\"id\":\"1795\"},{\"id\":\"1801\"},{\"id\":\"1807\"},{\"id\":\"1813\"}],\"right\":[{\"id\":\"1815\"}],\"title\":{\"id\":\"1878\"},\"toolbar\":{\"id\":\"1736\"},\"toolbar_location\":\"above\",\"x_range\":{\"id\":\"1714\"},\"x_scale\":{\"id\":\"1717\"},\"y_range\":{\"id\":\"1712\"},\"y_scale\":{\"id\":\"1719\"}},\"id\":\"1713\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1809\"},\"glyph\":{\"id\":\"1810\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1812\"},\"nonselection_glyph\":{\"id\":\"1811\"},\"view\":{\"id\":\"1814\"}},\"id\":\"1813\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1904\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1905\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1896\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"source\":{\"id\":\"1809\"}},\"id\":\"1814\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1897\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1888\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1889\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1906\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"axis\":{\"id\":\"1721\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1724\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1907\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1717\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1719\",\"type\":\"LinearScale\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"AAAAAACgbkAAAAAAAKBuQDMzMzMzM4BAMzMzMzMzgEBmZmZmZr6IQGZmZmZmvohAzMzMzMykkEDMzMzMzKSQQGZmZmZm6pRAZmZmZmbqlEAAAAAAADCZQAAAAAAAMJlA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[12]},\"y\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAgQAAAAAAAACBAAAAAAAAAHEAAAAAAAAAcQAAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAACEAAAAAAAAAIQAAAAAAAAAAA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[12]}},\"selected\":{\"id\":\"1891\"},\"selection_policy\":{\"id\":\"1890\"}},\"id\":\"1755\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1898\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1899\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1722\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1890\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1730\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"1891\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1908\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1909\",\"type\":\"Selection\"},{\"attributes\":{\"axis_label\":\"impact force (mN)\",\"coordinates\":null,\"formatter\":{\"id\":\"1884\"},\"group\":null,\"major_label_policy\":{\"id\":\"1885\"},\"ticker\":{\"id\":\"1722\"}},\"id\":\"1721\",\"type\":\"LinearAxis\"},{\"attributes\":{\"start\":0},\"id\":\"1712\",\"type\":\"DataRange1d\"},{\"attributes\":{\"line_color\":\"#ff7e0e\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1756\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1714\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1900\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"label\":{\"value\":\"III\"},\"renderers\":[{\"id\":\"1771\"},{\"id\":\"1777\"}]},\"id\":\"1818\",\"type\":\"LegendItem\"},{\"attributes\":{\"axis_label\":\"count\",\"coordinates\":null,\"formatter\":{\"id\":\"1881\"},\"group\":null,\"major_label_policy\":{\"id\":\"1882\"},\"ticker\":{\"id\":\"1726\"}},\"id\":\"1725\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1901\",\"type\":\"Selection\"},{\"attributes\":{\"axis\":{\"id\":\"1725\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"1728\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1726\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1892\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1734\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"1729\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"1893\",\"type\":\"Selection\"},{\"attributes\":{\"overlay\":{\"id\":\"1735\"}},\"id\":\"1731\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1881\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1732\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1733\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"1882\",\"type\":\"AllLabels\"},{\"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\":\"1735\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"tools\":[{\"id\":\"1729\"},{\"id\":\"1730\"},{\"id\":\"1731\"},{\"id\":\"1732\"},{\"id\":\"1733\"},{\"id\":\"1734\"}]},\"id\":\"1736\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"1884\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1902\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1885\",\"type\":\"AllLabels\"},{\"attributes\":{\"source\":{\"id\":\"1773\"}},\"id\":\"1778\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1903\",\"type\":\"Selection\"},{\"attributes\":{\"label\":{\"value\":\"II\"},\"renderers\":[{\"id\":\"1759\"},{\"id\":\"1765\"}]},\"id\":\"1817\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"1894\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"fill_alpha\":0.2,\"fill_color\":\"#2ba02b\",\"hatch_alpha\":0.2,\"hatch_color\":\"#2ba02b\",\"line_alpha\":0.2,\"line_color\":\"#2ba02b\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1776\",\"type\":\"Patch\"},{\"attributes\":{},\"id\":\"1895\",\"type\":\"Selection\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1773\"},\"glyph\":{\"id\":\"1774\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1776\"},\"nonselection_glyph\":{\"id\":\"1775\"},\"view\":{\"id\":\"1778\"}},\"id\":\"1777\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1886\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1887\",\"type\":\"Selection\"},{\"attributes\":{\"label\":{\"value\":\"I\"},\"renderers\":[{\"id\":\"1747\"},{\"id\":\"1753\"}]},\"id\":\"1816\",\"type\":\"LegendItem\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"AAAAAACgbkAAAAAAAKBuQDMzMzMzM4BAMzMzMzMzgEBmZmZmZr6IQGZmZmZmvohAzMzMzMykkEDMzMzMzKSQQGZmZmZm6pRAZmZmZmbqlEAAAAAAADCZQAAAAAAAMJlAAAAAAAAwmUAAAAAAAKBuQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[14]},\"y\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAgQAAAAAAAACBAAAAAAAAAHEAAAAAAAAAcQAAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAACEAAAAAAAAAIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[14]}},\"selected\":{\"id\":\"1893\"},\"selection_policy\":{\"id\":\"1892\"}},\"id\":\"1761\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1761\"},\"glyph\":{\"id\":\"1762\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1764\"},\"nonselection_glyph\":{\"id\":\"1763\"},\"view\":{\"id\":\"1766\"}},\"id\":\"1765\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_color\":\"#d62628\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1780\",\"type\":\"Line\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAANkAAAAAAAAA2QFVVVVVV5XFAVVVVVVXlcUBVVVVVVTWBQFVVVVVVNYFAAAAAAAB4iUAAAAAAAHiJQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[8]},\"y\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAcQAAAAAAAABxAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABxAAAAAAAAAHEAAAAAAAAAAAA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[8]}},\"selected\":{\"id\":\"1899\"},\"selection_policy\":{\"id\":\"1898\"}},\"id\":\"1779\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#2ba02b\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1770\",\"type\":\"Line\"},{\"attributes\":{\"fill_alpha\":0.3,\"fill_color\":\"#d62628\",\"hatch_color\":\"#d62628\",\"line_alpha\":0,\"line_color\":\"#d62628\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1786\",\"type\":\"Patch\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"AAAAAABAdEAAAAAAAEB0QGZmZmZmRnpAZmZmZmZGekBmZmZmZiaAQGZmZmZmJoBAmpmZmZkpg0CamZmZmSmDQM3MzMzMLIZAzczMzMwshkAAAAAAADCJQAAAAAAAMIlAAAAAAAAwiUAAAAAAAEB0QA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[14]},\"y\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAQQAAAAAAAABBAAAAAAAAACEAAAAAAAAAIQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[14]}},\"selected\":{\"id\":\"1897\"},\"selection_policy\":{\"id\":\"1896\"}},\"id\":\"1773\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"fill_alpha\":0.3,\"fill_color\":\"#ff7e0e\",\"hatch_color\":\"#ff7e0e\",\"line_alpha\":0,\"line_color\":\"#ff7e0e\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1762\",\"type\":\"Patch\"},{\"attributes\":{\"source\":{\"id\":\"1767\"}},\"id\":\"1772\",\"type\":\"CDSView\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1779\"},\"glyph\":{\"id\":\"1780\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1782\"},\"nonselection_glyph\":{\"id\":\"1781\"},\"view\":{\"id\":\"1784\"}},\"id\":\"1783\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"AAAAAACQfUAAAAAAAJB9QM3MzMzMVIxAzczMzMxUjEDNzMzMzPCUQM3MzMzM8JRANDMzMzO3m0A0MzMzM7ebQM3MzMzMPqFAzczMzMw+oUAAAAAAAKKkQAAAAAAAoqRA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[12]},\"y\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAQQAAAAAAAABBAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAAA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[12]}},\"selected\":{\"id\":\"1887\"},\"selection_policy\":{\"id\":\"1886\"}},\"id\":\"1743\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"label\":{\"value\":\"IV\"},\"renderers\":[{\"id\":\"1783\"},{\"id\":\"1789\"}]},\"id\":\"1819\",\"type\":\"LegendItem\"},{\"attributes\":{\"line_color\":\"#1f77b3\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1744\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#1f77b3\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1746\",\"type\":\"Line\"},{\"attributes\":{\"data\":{\"xs\":[[172,172],[142,142],[37,37],[453,453],[355,355],[22,22],[502,502],[273,273],[720,720],[582,582],[198,198],[198,198],[597,597],[516,516],[815,815],[402,402],[605,605],[711,711],[614,614],[468,468]],\"ys\":[[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4]]},\"selected\":{\"id\":\"1909\"},\"selection_policy\":{\"id\":\"1908\"}},\"id\":\"1809\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1743\"},\"glyph\":{\"id\":\"1744\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1746\"},\"nonselection_glyph\":{\"id\":\"1745\"},\"view\":{\"id\":\"1748\"}},\"id\":\"1747\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"1743\"}},\"id\":\"1748\",\"type\":\"CDSView\"},{\"attributes\":{\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#1f77b3\"},\"line_width\":{\"value\":0.5},\"xs\":{\"field\":\"xs\"},\"ys\":{\"field\":\"ys\"}},\"id\":\"1794\",\"type\":\"MultiLine\"},{\"attributes\":{\"click_policy\":\"hide\",\"coordinates\":null,\"group\":null,\"items\":[{\"id\":\"1816\"},{\"id\":\"1817\"},{\"id\":\"1818\"},{\"id\":\"1819\"}],\"location\":\"center\"},\"id\":\"1815\",\"type\":\"Legend\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#2ba02b\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1769\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"1779\"}},\"id\":\"1784\",\"type\":\"CDSView\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#d62628\"},\"line_width\":{\"value\":0.5},\"xs\":{\"field\":\"xs\"},\"ys\":{\"field\":\"ys\"}},\"id\":\"1811\",\"type\":\"MultiLine\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b3\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1745\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#d62628\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1781\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"1761\"}},\"id\":\"1766\",\"type\":\"CDSView\"},{\"attributes\":{\"fill_alpha\":0.3,\"fill_color\":\"#1f77b3\",\"hatch_color\":\"#1f77b3\",\"line_alpha\":0,\"line_color\":\"#1f77b3\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1750\",\"type\":\"Patch\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"AAAAAACQfUAAAAAAAJB9QM3MzMzMVIxAzczMzMxUjEDNzMzMzPCUQM3MzMzM8JRANDMzMzO3m0A0MzMzM7ebQM3MzMzMPqFAzczMzMw+oUAAAAAAAKKkQAAAAAAAoqRAAAAAAACipEAAAAAAAJB9QA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[14]},\"y\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAQQAAAAAAAABBAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[14]}},\"selected\":{\"id\":\"1889\"},\"selection_policy\":{\"id\":\"1888\"}},\"id\":\"1749\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1767\"},\"glyph\":{\"id\":\"1768\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1770\"},\"nonselection_glyph\":{\"id\":\"1769\"},\"view\":{\"id\":\"1772\"}},\"id\":\"1771\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_color\":\"#2ba02b\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1768\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"1791\"}},\"id\":\"1796\",\"type\":\"CDSView\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1749\"},\"glyph\":{\"id\":\"1750\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1752\"},\"nonselection_glyph\":{\"id\":\"1751\"},\"view\":{\"id\":\"1754\"}},\"id\":\"1753\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"fill_alpha\":0.2,\"fill_color\":\"#1f77b3\",\"hatch_alpha\":0.2,\"hatch_color\":\"#1f77b3\",\"line_alpha\":0.2,\"line_color\":\"#1f77b3\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1752\",\"type\":\"Patch\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1755\"},\"glyph\":{\"id\":\"1756\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1758\"},\"nonselection_glyph\":{\"id\":\"1757\"},\"view\":{\"id\":\"1760\"}},\"id\":\"1759\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"fill_alpha\":0.1,\"fill_color\":\"#1f77b3\",\"hatch_alpha\":0.1,\"hatch_color\":\"#1f77b3\",\"line_alpha\":0.1,\"line_color\":\"#1f77b3\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1751\",\"type\":\"Patch\"},{\"attributes\":{\"source\":{\"id\":\"1749\"}},\"id\":\"1754\",\"type\":\"CDSView\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b3\"},\"line_width\":{\"value\":0.5},\"xs\":{\"field\":\"xs\"},\"ys\":{\"field\":\"ys\"}},\"id\":\"1793\",\"type\":\"MultiLine\"},{\"attributes\":{\"line_alpha\":{\"value\":0.5},\"line_color\":{\"value\":\"#2ba02b\"},\"line_width\":{\"value\":0.5},\"xs\":{\"field\":\"xs\"},\"ys\":{\"field\":\"ys\"}},\"id\":\"1804\",\"type\":\"MultiLine\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"AAAAAABAdEAAAAAAAEB0QGZmZmZmRnpAZmZmZmZGekBmZmZmZiaAQGZmZmZmJoBAmpmZmZkpg0CamZmZmSmDQM3MzMzMLIZAzczMzMwshkAAAAAAADCJQAAAAAAAMIlA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[12]},\"y\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAQQAAAAAAAABBAAAAAAAAACEAAAAAAAAAIQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[12]}},\"selected\":{\"id\":\"1895\"},\"selection_policy\":{\"id\":\"1894\"}},\"id\":\"1767\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"fill_alpha\":0.3,\"fill_color\":\"#2ba02b\",\"hatch_color\":\"#2ba02b\",\"line_alpha\":0,\"line_color\":\"#2ba02b\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1774\",\"type\":\"Patch\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#d62628\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1782\",\"type\":\"Line\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1791\"},\"glyph\":{\"id\":\"1792\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1794\"},\"nonselection_glyph\":{\"id\":\"1793\"},\"view\":{\"id\":\"1796\"}},\"id\":\"1795\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#2ba02b\"},\"line_width\":{\"value\":0.5},\"xs\":{\"field\":\"xs\"},\"ys\":{\"field\":\"ys\"}},\"id\":\"1805\",\"type\":\"MultiLine\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAANkAAAAAAAAA2QFVVVVVV5XFAVVVVVVXlcUBVVVVVVTWBQFVVVVVVNYFAAAAAAAB4iUAAAAAAAHiJQAAAAAAAeIlAAAAAAAAANkA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[10]},\"y\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAcQAAAAAAAABxAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABxAAAAAAAAAHEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[10]}},\"selected\":{\"id\":\"1901\"},\"selection_policy\":{\"id\":\"1900\"}},\"id\":\"1785\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"source\":{\"id\":\"1785\"}},\"id\":\"1790\",\"type\":\"CDSView\"},{\"attributes\":{\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#d62628\"},\"line_width\":{\"value\":0.5},\"xs\":{\"field\":\"xs\"},\"ys\":{\"field\":\"ys\"}},\"id\":\"1812\",\"type\":\"MultiLine\"},{\"attributes\":{\"coordinates\":null,\"group\":null},\"id\":\"1878\",\"type\":\"Title\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1797\"},\"glyph\":{\"id\":\"1798\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1800\"},\"nonselection_glyph\":{\"id\":\"1799\"},\"view\":{\"id\":\"1802\"}},\"id\":\"1801\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#ff7e0e\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1757\",\"type\":\"Line\"},{\"attributes\":{\"fill_alpha\":0.1,\"fill_color\":\"#2ba02b\",\"hatch_alpha\":0.1,\"hatch_color\":\"#2ba02b\",\"line_alpha\":0.1,\"line_color\":\"#2ba02b\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1775\",\"type\":\"Patch\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1785\"},\"glyph\":{\"id\":\"1786\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1788\"},\"nonselection_glyph\":{\"id\":\"1787\"},\"view\":{\"id\":\"1790\"}},\"id\":\"1789\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"fill_alpha\":0.2,\"fill_color\":\"#d62628\",\"hatch_alpha\":0.2,\"hatch_color\":\"#d62628\",\"line_alpha\":0.2,\"line_color\":\"#d62628\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1788\",\"type\":\"Patch\"},{\"attributes\":{\"fill_alpha\":0.1,\"fill_color\":\"#d62628\",\"hatch_alpha\":0.1,\"hatch_color\":\"#d62628\",\"line_alpha\":0.1,\"line_color\":\"#d62628\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1787\",\"type\":\"Patch\"},{\"attributes\":{\"source\":{\"id\":\"1755\"}},\"id\":\"1760\",\"type\":\"CDSView\"},{\"attributes\":{\"line_alpha\":{\"value\":0.5},\"line_color\":{\"value\":\"#1f77b3\"},\"line_width\":{\"value\":0.5},\"xs\":{\"field\":\"xs\"},\"ys\":{\"field\":\"ys\"}},\"id\":\"1792\",\"type\":\"MultiLine\"},{\"attributes\":{\"line_alpha\":{\"value\":0.5},\"line_color\":{\"value\":\"#d62628\"},\"line_width\":{\"value\":0.5},\"xs\":{\"field\":\"xs\"},\"ys\":{\"field\":\"ys\"}},\"id\":\"1810\",\"type\":\"MultiLine\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#ff7e0e\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1758\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":{\"value\":0.5},\"line_color\":{\"value\":\"#ff7e0e\"},\"line_width\":{\"value\":0.5},\"xs\":{\"field\":\"xs\"},\"ys\":{\"field\":\"ys\"}},\"id\":\"1798\",\"type\":\"MultiLine\"},{\"attributes\":{\"data\":{\"xs\":[[1612,1612],[605,605],[327,327],[946,946],[541,541],[1539,1539],[529,529],[628,628],[1453,1453],[297,297],[703,703],[269,269],[751,751],[245,245],[1182,1182],[515,515],[435,435],[383,383],[457,457],[730,730]],\"ys\":[[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4]]},\"selected\":{\"id\":\"1905\"},\"selection_policy\":{\"id\":\"1904\"}},\"id\":\"1797\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"source\":{\"id\":\"1797\"}},\"id\":\"1802\",\"type\":\"CDSView\"},{\"attributes\":{\"data\":{\"xs\":[[1205,1205],[2527,2527],[1745,1745],[1556,1556],[493,493],[2276,2276],[556,556],[1928,1928],[2641,2641],[1897,1897],[1891,1891],[1545,1545],[1307,1307],[1692,1692],[1543,1543],[1282,1282],[775,775],[2032,2032],[1240,1240],[473,473]],\"ys\":[[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4]]},\"selected\":{\"id\":\"1903\"},\"selection_policy\":{\"id\":\"1902\"}},\"id\":\"1791\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data\":{\"xs\":[[614,614],[414,414],[324,324],[776,776],[611,611],[544,544],[538,538],[579,579],[806,806],[459,459],[458,458],[626,626],[621,621],[544,544],[535,535],[385,385],[401,401],[614,614],[665,665],[488,488]],\"ys\":[[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4],[0,0.4]]},\"selected\":{\"id\":\"1907\"},\"selection_policy\":{\"id\":\"1906\"}},\"id\":\"1803\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#ff7e0e\"},\"line_width\":{\"value\":0.5},\"xs\":{\"field\":\"xs\"},\"ys\":{\"field\":\"ys\"}},\"id\":\"1800\",\"type\":\"MultiLine\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#ff7e0e\"},\"line_width\":{\"value\":0.5},\"xs\":{\"field\":\"xs\"},\"ys\":{\"field\":\"ys\"}},\"id\":\"1799\",\"type\":\"MultiLine\"},{\"attributes\":{\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#2ba02b\"},\"line_width\":{\"value\":0.5},\"xs\":{\"field\":\"xs\"},\"ys\":{\"field\":\"ys\"}},\"id\":\"1806\",\"type\":\"MultiLine\"},{\"attributes\":{\"source\":{\"id\":\"1803\"}},\"id\":\"1808\",\"type\":\"CDSView\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1803\"},\"glyph\":{\"id\":\"1804\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1806\"},\"nonselection_glyph\":{\"id\":\"1805\"},\"view\":{\"id\":\"1808\"}},\"id\":\"1807\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"fill_alpha\":0.1,\"fill_color\":\"#ff7e0e\",\"hatch_alpha\":0.1,\"hatch_color\":\"#ff7e0e\",\"line_alpha\":0.1,\"line_color\":\"#ff7e0e\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1763\",\"type\":\"Patch\"},{\"attributes\":{\"fill_alpha\":0.2,\"fill_color\":\"#ff7e0e\",\"hatch_alpha\":0.2,\"hatch_color\":\"#ff7e0e\",\"line_alpha\":0.2,\"line_color\":\"#ff7e0e\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1764\",\"type\":\"Patch\"}],\"root_ids\":[\"1713\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.2\"}};\n", " const render_items = [{\"docid\":\"53fcf4db-b38e-4a23-99ae-4e37fbc19361\",\"root_ids\":[\"1713\"],\"roots\":{\"1713\":\"36f17352-a1aa-41d2-9ac6-f588726a56da\"}}];\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": "1713" } }, "output_type": "display_data" } ], "source": [ "p = iqplot.histogram(\n", " data=df,\n", " q=\"impact force (mN)\",\n", " cats=\"ID\",\n", ")\n", "\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that by default, iqplot includes a **rug plot** at the bottom of the histogram, showing each measurement." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## ECDFs\n", "\n", "I just mentioned that histograms are typically used to display how data are distributed, but it was hard to make out the distributions in the above plot, partly because we do not have very many measurements. As another example I will generate Normally distributed data and plot the histogram. (We will learn how to generate data like this when we study random number generation with NumPy in a future lesson. For now, this is for purposes of discussing plotting options.)\n", "\n", "Note that iqplot can take a Numpy array as the `data` argument, and makes a plot assuming it contains a single data set." ] }, { "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 = {\"5dfc5292-1471-42e1-b217-dcffcb5c586e\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"2085\"}],\"center\":[{\"id\":\"2088\"},{\"id\":\"2092\"}],\"frame_height\":275,\"frame_width\":375,\"left\":[{\"id\":\"2089\"}],\"renderers\":[{\"id\":\"2111\"},{\"id\":\"2117\"}],\"title\":{\"id\":\"2210\"},\"toolbar\":{\"id\":\"2100\"},\"toolbar_location\":\"above\",\"x_range\":{\"id\":\"2078\"},\"x_scale\":{\"id\":\"2081\"},\"y_range\":{\"id\":\"2076\"},\"y_scale\":{\"id\":\"2083\"}},\"id\":\"2077\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"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\":\"2099\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"fill_alpha\":0.3,\"fill_color\":\"#1f77b3\",\"hatch_color\":\"#1f77b3\",\"line_alpha\":0,\"line_color\":\"#1f77b3\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2114\",\"type\":\"Patch\"},{\"attributes\":{},\"id\":\"2098\",\"type\":\"HelpTool\"},{\"attributes\":{\"tools\":[{\"id\":\"2093\"},{\"id\":\"2094\"},{\"id\":\"2095\"},{\"id\":\"2096\"},{\"id\":\"2097\"},{\"id\":\"2098\"}]},\"id\":\"2100\",\"type\":\"Toolbar\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"4D20Y8ElDcDgPbRjwSUNwDWMimLVxArANYyKYtXECsCL2mBh6WMIwIvaYGHpYwjA4Cg3YP0CBsDgKDdg/QIGwDZ3DV8RogPANncNXxGiA8CLxeNdJUEBwIvF410lQQHAwCd0uXLA/b/AJ3S5csD9v2zEILea/vi/bMQgt5r++L8WYc20wjz0vxZhzbTCPPS/gPvzZNX17r+A+/Nk1fXuv9g0TWAlcuW/2DRNYCVy5b9Y3Ey36tzXv1jcTLfq3Ne/ADz9typWs78APP23Klazv6B8nLaqY8w/oHyctqpjzD/Q5U2ympzgP9DlTbKanOA/gKz0tkog6j+ArPS2SiDqP5S5zV390fE/lLnNXf3R8T/oHCFg1ZP2P+gcIWDVk/Y/QIB0Yq1V+z9AgHRirVX7P8rxY7LCCwBAyvFjssILAEB0o42zrmwCQHSjjbOubAJAIFW3tJrNBEAgVbe0ms0EQCBVt7SazQRA4D20Y8ElDcA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[46]},\"y\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAADwPwAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAFEAAAAAAAAAUQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAuQAAAAAAAAC5AAAAAAAAALkAAAAAAAAAuQAAAAAAAAEFAAAAAAAAAQUAAAAAAAABAQAAAAAAAAEBAAAAAAAAASkAAAAAAAABKQAAAAAAAQFFAAAAAAABAUUAAAAAAAEBQQAAAAAAAQFBAAAAAAACAT0AAAAAAAIBPQAAAAAAAAEtAAAAAAAAAS0AAAAAAAABBQAAAAAAAAEFAAAAAAAAAN0AAAAAAAAA3QAAAAAAAACZAAAAAAAAAJkAAAAAAAAAiQAAAAAAAACJAAAAAAAAAIEAAAAAAAAAgQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[46]}},\"selected\":{\"id\":\"2221\"},\"selection_policy\":{\"id\":\"2220\"}},\"id\":\"2113\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"2097\",\"type\":\"ResetTool\"},{\"attributes\":{\"source\":{\"id\":\"2113\"}},\"id\":\"2118\",\"type\":\"CDSView\"},{\"attributes\":{\"line_color\":\"#1f77b3\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2108\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2093\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"2096\",\"type\":\"SaveTool\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2113\"},\"glyph\":{\"id\":\"2114\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2116\"},\"nonselection_glyph\":{\"id\":\"2115\"},\"view\":{\"id\":\"2118\"}},\"id\":\"2117\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"axis\":{\"id\":\"2089\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"2092\",\"type\":\"Grid\"},{\"attributes\":{\"fill_alpha\":0.2,\"fill_color\":\"#1f77b3\",\"hatch_alpha\":0.2,\"hatch_color\":\"#1f77b3\",\"line_alpha\":0.2,\"line_color\":\"#1f77b3\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2116\",\"type\":\"Patch\"},{\"attributes\":{\"fill_alpha\":0.1,\"fill_color\":\"#1f77b3\",\"hatch_alpha\":0.1,\"hatch_color\":\"#1f77b3\",\"line_alpha\":0.1,\"line_color\":\"#1f77b3\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2115\",\"type\":\"Patch\"},{\"attributes\":{},\"id\":\"2090\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"2218\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"2216\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"overlay\":{\"id\":\"2099\"}},\"id\":\"2095\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"axis_label\":\"count\",\"coordinates\":null,\"formatter\":{\"id\":\"2213\"},\"group\":null,\"major_label_policy\":{\"id\":\"2214\"},\"ticker\":{\"id\":\"2090\"}},\"id\":\"2089\",\"type\":\"LinearAxis\"},{\"attributes\":{\"start\":0},\"id\":\"2076\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"2094\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"2217\",\"type\":\"AllLabels\"},{\"attributes\":{\"axis_label\":\"x\",\"coordinates\":null,\"formatter\":{\"id\":\"2216\"},\"group\":null,\"major_label_policy\":{\"id\":\"2217\"},\"ticker\":{\"id\":\"2086\"}},\"id\":\"2085\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2083\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2220\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"2078\",\"type\":\"DataRange1d\"},{\"attributes\":{\"axis\":{\"id\":\"2085\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"2088\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"2221\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"2219\",\"type\":\"Selection\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#1f77b3\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2110\",\"type\":\"Line\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"4D20Y8ElDcDgPbRjwSUNwDWMimLVxArANYyKYtXECsCL2mBh6WMIwIvaYGHpYwjA4Cg3YP0CBsDgKDdg/QIGwDZ3DV8RogPANncNXxGiA8CLxeNdJUEBwIvF410lQQHAwCd0uXLA/b/AJ3S5csD9v2zEILea/vi/bMQgt5r++L8WYc20wjz0vxZhzbTCPPS/gPvzZNX17r+A+/Nk1fXuv9g0TWAlcuW/2DRNYCVy5b9Y3Ey36tzXv1jcTLfq3Ne/ADz9typWs78APP23Klazv6B8nLaqY8w/oHyctqpjzD/Q5U2ympzgP9DlTbKanOA/gKz0tkog6j+ArPS2SiDqP5S5zV390fE/lLnNXf3R8T/oHCFg1ZP2P+gcIWDVk/Y/QIB0Yq1V+z9AgHRirVX7P8rxY7LCCwBAyvFjssILAEB0o42zrmwCQHSjjbOubAJAIFW3tJrNBEAgVbe0ms0EQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[44]},\"y\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAADwPwAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAFEAAAAAAAAAUQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAuQAAAAAAAAC5AAAAAAAAALkAAAAAAAAAuQAAAAAAAAEFAAAAAAAAAQUAAAAAAAABAQAAAAAAAAEBAAAAAAAAASkAAAAAAAABKQAAAAAAAQFFAAAAAAABAUUAAAAAAAEBQQAAAAAAAQFBAAAAAAACAT0AAAAAAAIBPQAAAAAAAAEtAAAAAAAAAS0AAAAAAAABBQAAAAAAAAEFAAAAAAAAAN0AAAAAAAAA3QAAAAAAAACZAAAAAAAAAJkAAAAAAAAAiQAAAAAAAACJAAAAAAAAAIEAAAAAAAAAgQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAAAA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[44]}},\"selected\":{\"id\":\"2219\"},\"selection_policy\":{\"id\":\"2218\"}},\"id\":\"2107\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2107\"},\"glyph\":{\"id\":\"2108\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2110\"},\"nonselection_glyph\":{\"id\":\"2109\"},\"view\":{\"id\":\"2112\"}},\"id\":\"2111\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2081\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2214\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"2086\",\"type\":\"BasicTicker\"},{\"attributes\":{\"coordinates\":null,\"group\":null},\"id\":\"2210\",\"type\":\"Title\"},{\"attributes\":{\"source\":{\"id\":\"2107\"}},\"id\":\"2112\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2213\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b3\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2109\",\"type\":\"Line\"}],\"root_ids\":[\"2077\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.2\"}};\n", " const render_items = [{\"docid\":\"5dfc5292-1471-42e1-b217-dcffcb5c586e\",\"root_ids\":[\"2077\"],\"roots\":{\"2077\":\"05f73498-5f03-41d1-a1de-1da0b0f921d7\"}}];\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": "2077" } }, "output_type": "display_data" } ], "source": [ "# Generate normally distributed data\n", "rg = np.random.default_rng(3252)\n", "x = rg.normal(size=500)\n", "\n", "# Plot the histogram\n", "p = iqplot.histogram(x, rug=False)\n", "\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This looks similar to the standard Normal curve we are used to seeing and is a useful comparison to a **probability density function** (PDF). However, Histograms suffer from **binning bias**. By binning the data, you are not plotting all of them. In general, if you can **plot all of your data**, you should. For that reason, I prefer not to use histograms for studying how data are distributed, but rather prefer to use ECDFs, which enable plotting of all data.\n", "\n", "The ECDF evaluated at x for a set of measurements is defined as\n", "\n", "\\begin{align}\n", "\\text{ECDF}(x) = \\text{fraction of measurements } \\le x.\n", "\\end{align}\n", "\n", "While the histogram is an attempt to visualize a probability density function (PDF) of a distribution, the ECDF visualizes the **cumulative density function** (CDF). The CDF, $F(x)$, and PDF, $f(x)$, both completely define a univariate distribution and are related by\n", "\n", "\\begin{align}\n", "f(x) = \\frac{\\mathrm{d}F}{\\mathrm{d}x}.\n", "\\end{align}\n", "\n", "The definition of the ECDF is all that you need for interpretation. Once you get used to looking at CDFs, they will become as familiar to you as PDFs. A peak in a PDF corresponds to an inflection point in a CDF.\n", "\n", "To make this more clear, let us look at plot of a PDF and ECDF for familiar distributions, the Gaussian and Binomial.\n", "\n", "
\n", "\n", "![PDF/CDF](pdf_cdf.png)\n", " \n", "
\n", "\n", "Now that we know how to interpret ECDFs, lets plot the ECDF for our dummy Normally-distributed data." ] }, { "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 = {\"6e47f8bf-1185-44a9-8a6e-4b9783cbcd61\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"2297\"}],\"center\":[{\"id\":\"2300\"},{\"id\":\"2304\"}],\"frame_height\":275,\"frame_width\":375,\"left\":[{\"id\":\"2301\"}],\"renderers\":[{\"id\":\"2324\"}],\"title\":{\"id\":\"2430\"},\"toolbar\":{\"id\":\"2312\"},\"toolbar_location\":\"above\",\"x_range\":{\"id\":\"2289\"},\"x_scale\":{\"id\":\"2293\"},\"y_range\":{\"id\":\"2291\"},\"y_scale\":{\"id\":\"2295\"}},\"id\":\"2288\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"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\":\"2311\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"2295\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis_label\":\"x\",\"coordinates\":null,\"formatter\":{\"id\":\"2436\"},\"group\":null,\"major_label_policy\":{\"id\":\"2437\"},\"ticker\":{\"id\":\"2298\"}},\"id\":\"2297\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2291\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"2438\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"coordinates\":null,\"group\":null},\"id\":\"2430\",\"type\":\"Title\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2319\"},\"glyph\":{\"id\":\"2321\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2323\"},\"nonselection_glyph\":{\"id\":\"2322\"},\"view\":{\"id\":\"2325\"}},\"id\":\"2324\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2298\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"2436\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"2434\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"2289\",\"type\":\"DataRange1d\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b3\"},\"hatch_alpha\":{\"value\":0.1},\"hatch_color\":{\"value\":\"#1f77b3\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b3\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"__ECDF\"}},\"id\":\"2322\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"2437\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"2439\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"2433\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"axis_label\":\"ECDF\",\"coordinates\":null,\"formatter\":{\"id\":\"2433\"},\"group\":null,\"major_label_policy\":{\"id\":\"2434\"},\"ticker\":{\"id\":\"2302\"}},\"id\":\"2301\",\"type\":\"LinearAxis\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#1f77b3\"},\"hatch_alpha\":{\"value\":0.2},\"hatch_color\":{\"value\":\"#1f77b3\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#1f77b3\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"__ECDF\"}},\"id\":\"2323\",\"type\":\"Circle\"},{\"attributes\":{\"data\":{\"__ECDF\":{\"__ndarray__\":\"8tJNYhBYyT/sUbgehevpP8UgsHJokeU/g8DKoUW2wz/ZzvdT46W7P05iEFg5tOA/cT0K16NwzT/pJjEIrBy6P3sUrkfheqQ/2c73U+Olyz8tsp3vp8bjP1K4HoXrUeA/exSuR+F6hD9U46WbxCDQP39qvHSTGOw/8tJNYhBY6T8xCKwcWmTLPxSuR+F6FO4/K4cW2c730z9qvHSTGATWP3Noke18P+U/O99PjZduoj9oke18PzXOPwRWDi2ynd8/MzMzMzMzwz+6SQwCK4e2P8P1KFyPwu0/ukkMAiuHpj/VeOkmMQjcPzvfT42XbpI/I9v5fmq87D9iEFg5tMjuPxSuR+F6FOY/aJHtfD817j9GtvP91HjZP9nO91PjpeM/qvHSTWIQuD9QjZduEoPoP8uhRbbz/eQ/arx0kxgExj9MN4lBYOXAPxKDwMqhRdY/GQRWDi2yrT8730+Nl27iP/YoXI/C9eA//tR46SYx6D/Jdr6fGi/dP/YoXI/C9eg/XI/C9Shc3z+amZmZmZmpP6JFtvP91OA/fT81XrpJ5D9xPQrXo3DlPyuHFtnO98M/O99PjZduwj+F61G4HoXbP2q8dJMYBO4/mG4Sg8DK0T85tMh2vp/KP+Olm8QgsMI/JQaBlUOL7D/D9Shcj8LFP/7UeOkmMdg//Knx0k1iYD+gGi/dJAbhPwwCK4cW2eY/d76fGi/d7D/sUbgeheuxP5zEILByaOk/RIts5/up6T/8qfHSTWKwPzm0yHa+n6o/okW28/3U2D8pXI/C9SjkP1g5tMh2vu8/f2q8dJMY1D/RItv5fmrkP/yp8dJNYtA/BoGVQ4ts1z/6fmq8dJOoP8/3U+Olm+Q/hetRuB6F6z8X2c73U+PVP6wcWmQ73+8/+n5qvHSTmD/ByqFFtvPdPzeJQWDl0Oo/Di2yne+n7j93vp8aL93UP7x0kxgEVuY/cT0K16Nw7T8/NV66SQziPxfZzvdT4+0/pHA9Ctej4D+BlUOLbOfrP4/C9Shcj9I/mpmZmZmZ4T956SYxCKy8P+f7qfHSTdI/TmIQWDm02D+6SQwCK4fuP/p+arx0k9g/CKwcWmQ75z8zMzMzMzPTP0oMAiuHFtk/Gy/dJAaB5T+R7Xw/NV7qP7pJDAIrh9Y/nu+nxks36T+28/3UeOnWP4ts5/up8eo/pHA9Ctej6D/Jdr6fGi+9Pxsv3SQGgcU/JQaBlUOL5D+Nl24Sg8DqP8uhRbbz/ew/eekmMQis5D+uR+F6FK7XP8HKoUW2880/exSuR+F61D8ZBFYOLbLdPy2yne+nxus/001iEFg55D/pJjEIrBzqPzm0yHa+n+o/uB6F61G4vj+q8dJNYhDgP+XQItv5fuI/tMh2vp8a3z9iEFg5tMjGPzEIrBxaZOs/WDm0yHa+vz8dWmQ730/tPxkEVg4tsr0/aJHtfD813j/b+X5qvHTjP5ZDi2zn++E/O99PjZdu6j8EVg4tsp3nP9NNYhBYOdQ/+n5qvHSTeD956SYxCKycPyuHFtnO9+s/30+Nl24S6z9CYOXQItvhP/yp8dJNYug/0SLb+X5q3D9eukkMAivXPzeJQWDl0OI/4XoUrkfhyj8j2/l+arzkP0Jg5dAi2+k/PQrXo3A94j+oxks3iUHQP4GVQ4ts59s/XrpJDAIr5z8lBoGVQ4vcP1pkO99Pjac//Knx0k1icD9/arx0kxjkP0SLbOf7qdE/nMQgsHJowT+uR+F6FK7vP6AaL90kBuk/ObTIdr6fmj9I4XoUrkfhP5qZmZmZmek/SgwCK4cW6T8/NV66SQzqP1g5tMh2vuc/bxKDwMqh5T+yne+nxkvnPx1aZDvfT+U/nMQgsHJo4T8pXI/C9SjsP9nO91Pjpas/L90kBoGV4z9KDAIrhxbhP7pJDAIrh8Y/zczMzMzM7D+wcmiR7XzfP6JFtvP91Mg/mpmZmZmZuT+6SQwCK4fmP6abxCCwcuA/2/l+arx0sz+cxCCwcmjRP3npJjEIrMw/GQRWDi2y5T+sHFpkO9/nPzMzMzMzM+s/d76fGi/d5D9YObTIdr7PP1g5tMh2vt8/4XoUrkfh2j+8dJMYBFbuP0a28/3UeOE/z/dT46Wb7D+0yHa+nxrvP8dLN4lBYNU/NV66SQwC2z+28/3UeOnuP9ejcD0K19M/AAAAAAAA8D+mm8QgsHLYP5huEoPAyuk/kxgEVg4t4j8CK4cW2c7nP166SQwCK+8/aJHtfD815j+HFtnO91PTP2q8dJMYBLY/9ihcj8L12D++nxov3STuP1pkO99Pjcc/g8DKoUW24z/6fmq8dJPIP+F6FK5H4eI/ZmZmZmZm1j+yne+nxkvHP1yPwvUoXO8/i2zn+6nx4j/ByqFFtvPtP2ZmZmZmZuY/ke18PzVe2j+4HoXrUbjmP4PAyqFFttM/eekmMQisjD9SuB6F61HoPy/dJAaBles/x0s3iUFg5T8X2c73U+PlPw4tsp3vp9Y/zczMzMzM3D+BlUOLbOfjP4GVQ4ts58s/Gy/dJAaB7T/pJjEIrBzaP/hT46WbxNA/AiuHFtnO7z97FK5H4XrsP28Sg8DKoe0/Di2yne+n5j+q8dJNYhDIP0w3iUFg5bA/pHA9Ctej0D9MN4lBYOXgPzVeukkMAus/WmQ730+Ntz+yne+nxkvvPwisHFpkO98//tR46SYx4D9OYhBYObToPycxCKwcWuQ/BoGVQ4ts7z/D9Shcj8LlP/T91HjpJtE/+n5qvHSTiD9g5dAi2/neP3npJjEIrNw/AiuHFtnO1z91kxgEVg7dP5MYBFYOLeo/8KfGSzeJ6T/l0CLb+X7aP0SLbOf7qeE/uB6F61G47j+HFtnO91PrP7gehetRuJ4/JzEIrBxa7D9WDi2yne/vP0SLbOf7qcE/46WbxCCw0j+0yHa+nxrnP4XrUbgeheM/jZduEoPA2j8pXI/C9SjcP9nO91Pjpds//Knx0k1iwD/RItv5fmrMPx+F61G4HtU/x0s3iUFg7T/ZzvdT46XrPzEIrBxaZOM/3SQGgZVD6z/8qfHSTWLgPwwCK4cW2e4//Knx0k1igD8xCKwcWmTbP0oMAiuHFsk/H4XrUbge7T97FK5H4XrEPwrXo3A9Ctc/5/up8dJN6j9oke18PzW+PxKDwMqhRcY/KVyPwvUozD/y0k1iEFjZPxKDwMqhReY/O99PjZdusj+sHFpkO9/fP23n+6nx0u0/Vg4tsp3v1z/P91PjpZvUP30/NV66Sdw/ukkMAiuHlj9SuB6F61HIP4lBYOXQIrs/VOOlm8Qg6D9MN4lBYOXoP0Jg5dAi29k/+n5qvHST4D9t5/up8dLdP5zEILByaKE/BFYOLbKd7z/RItv5fmrsP5HtfD81Xso/ZDvfT42X5j/dJAaBlUPbPyPb+X5qvNQ/c2iR7Xw/xT/Jdr6fGi/lPwrXo3A9Cuc/16NwPQrX4z+wcmiR7XznP1pkO99Pje8/EFg5tMh27j+wcmiR7XzvPwrXo3A9Crc/K4cW2c734z8hsHJoke3kP2Dl0CLb+eY/30+Nl24S0z8QWDm0yHbeP83MzMzMzOQ/hxbZzvdT4z/FILByaJHtPzm0yHa+n9o/lkOLbOf76T+4HoXrUbjePx1aZDvfT90/+FPjpZvE4D+8dJMYBFbePwaBlUOLbOc/vp8aL90k1j8j2/l+arzEP/hT46WbxOg/1XjpJjEI5D9GtvP91HjpP0Jg5dAi28k/9P3UeOkmwT91kxgEVg7lP5HtfD81XuI/2/l+arx0oz8AAAAAAADgP5MYBFYOLdI/2/l+arx00z956SYxCKzsP8UgsHJokd0/fT81XrpJ7D+JQWDl0CLjP1CNl24Sg+A/vp8aL90k5j8Sg8DKoUXuP5zEILByaLE/K4cW2c73sz/wp8ZLN4nRP/yp8dJNYpA/Gy/dJAaBpT9kO99PjZfeP7ByaJHtfM8/y6FFtvP9xD8QWDm0yHbmP6jGSzeJQeg/CKwcWmQ7zz8bL90kBoG1P1pkO99Pjec/N4lBYOXQ0j/sUbgehevhP+xRuB6F69E/eekmMQisrD+uR+F6FK7nP3WTGARWDu0/001iEFg57D/VeOkmMQjsP6AaL90kBtE/Vg4tsp3v5z+YbhKDwMrhPx+F61G4HuU/VOOlm8Qg4D/Xo3A9CtfrP/yp8dJNYqA/46WbxCCw6j/jpZvEILDiPz0K16NwPdo/GQRWDi2y7T9iEFg5tMjWP4PAyqFFtus/7nw/NV664T9KDAIrhxa5PwIrhxbZzsc/w/UoXI/C1T8730+Nl27SP4/C9Shcj+I/CtejcD0Kxz/fT42XbhLjPy2yne+nxts/MzMzMzMz4z/0/dR46SbhP5MYBFYOLcI/c2iR7Xw/1T9xPQrXo3DdP6RwPQrXo8A/FK5H4XoU3j/pJjEIrBzKP8uhRbbz/bQ/qvHSTWIQ6D8nMQisHFrUP3Noke18P+0/lkOLbOf72T9qvHSTGATmP4ts5/up8dI/exSuR+F65D9vEoPAyqHVP1CNl24Sg9A/ObTIdr6f4j9SuB6F61HYP1yPwvUoXOc/8tJNYhBY4T8hsHJoke3cP+xRuB6F68E/WDm0yHa+rz97FK5H4XqUP8l2vp8aL80/mpmZmZmZ2T+e76fGSzfZP0w3iUFg5dA/Gy/dJAaB1T+oxks3iUHgPwisHFpkO78/PQrXo3A96j/wp8ZLN4nhP7gehetRuM4/jZduEoPA4j9I4XoUrkfRP4ts5/up8bI/y6FFtvP91D9aZDvfT43XP90kBoGVQ+M/VOOlm8QgwD9kO99PjZfuP7bz/dR46eY/001iEFg5xD+amZmZmZnJP6abxCCwcug/YOXQItv57j9g5dAi2/nOP0jhehSuR+k/i2zn+6nxwj9iEFg5tMjmP/p+arx0k7g/AAAAAAAA0D8hsHJoke3MP7gehetRuK4/+n5qvHST6D97FK5H4Xq0P9v5fmq8dMM/NV66SQwC4z8/NV66SQzSP+58PzVeutk/iUFg5dAi2z+JQWDl0CLLP+XQItv5fuo/ObTIdr6fuj8AAAAAAADoPxkEVg4tss0/sp3vp8ZL1z/0/dR46SbpPy/dJAaBldM/DAIrhxbZ3j+e76fGSzfhP23n+6nx0uU/qvHSTWIQ2D9mZmZmZmbuP8HKoUW28+U/2/l+arx06z+PwvUoXI/qPwrXo3A9Cu8/CKwcWmQ77z+iRbbz/dToP+F6FK5H4eo/IbByaJHt7D8QWDm0yHbOP4lBYOXQIus/yXa+nxov7T8pXI/C9Si8P+kmMQisHOI/5/up8dJN4j/ufD81XrrpPw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[500]},\"__dummy_cat\":[\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \"],\"__label\":[\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \"],\"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,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499],\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[500]}},\"selected\":{\"id\":\"2439\"},\"selection_policy\":{\"id\":\"2438\"}},\"id\":\"2319\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"fill_color\":{\"value\":\"#1f77b3\"},\"hatch_color\":{\"value\":\"#1f77b3\"},\"line_color\":{\"value\":\"#1f77b3\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"__ECDF\"}},\"id\":\"2321\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"2306\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"2302\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"2308\",\"type\":\"SaveTool\"},{\"attributes\":{\"overlay\":{\"id\":\"2311\"}},\"id\":\"2307\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"2309\",\"type\":\"ResetTool\"},{\"attributes\":{\"source\":{\"id\":\"2319\"}},\"id\":\"2325\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2310\",\"type\":\"HelpTool\"},{\"attributes\":{\"tools\":[{\"id\":\"2305\"},{\"id\":\"2306\"},{\"id\":\"2307\"},{\"id\":\"2308\"},{\"id\":\"2309\"},{\"id\":\"2310\"}]},\"id\":\"2312\",\"type\":\"Toolbar\"},{\"attributes\":{\"axis\":{\"id\":\"2297\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"2300\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"2293\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2305\",\"type\":\"PanTool\"},{\"attributes\":{\"axis\":{\"id\":\"2301\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"2304\",\"type\":\"Grid\"}],\"root_ids\":[\"2288\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.2\"}};\n", " const render_items = [{\"docid\":\"6e47f8bf-1185-44a9-8a6e-4b9783cbcd61\",\"root_ids\":[\"2288\"],\"roots\":{\"2288\":\"3fddaecc-e2aa-465d-95a5-96448b75c7ff\"}}];\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": "2288" } }, "output_type": "display_data" } ], "source": [ "p = iqplot.ecdf(x)\n", "\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now that we understand what an ECDF is and how to plot it, let's make a set of ECDFs for our frog data." ] }, { "cell_type": "code", "execution_count": 13, "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 = {\"edd63c4f-2a1c-4f60-a9b6-cc9fa0e9b3c8\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"2505\"}],\"center\":[{\"id\":\"2508\"},{\"id\":\"2512\"}],\"frame_height\":275,\"frame_width\":375,\"left\":[{\"id\":\"2509\"}],\"renderers\":[{\"id\":\"2532\"},{\"id\":\"2539\"},{\"id\":\"2546\"},{\"id\":\"2553\"}],\"right\":[{\"id\":\"2555\"}],\"title\":{\"id\":\"2675\"},\"toolbar\":{\"id\":\"2520\"},\"toolbar_location\":\"above\",\"x_range\":{\"id\":\"2497\"},\"x_scale\":{\"id\":\"2501\"},\"y_range\":{\"id\":\"2499\"},\"y_scale\":{\"id\":\"2503\"}},\"id\":\"2496\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"2501\",\"type\":\"LinearScale\"},{\"attributes\":{\"click_policy\":\"hide\",\"coordinates\":null,\"group\":null,\"items\":[{\"id\":\"2556\"},{\"id\":\"2557\"},{\"id\":\"2558\"},{\"id\":\"2559\"}],\"location\":\"center\"},\"id\":\"2555\",\"type\":\"Legend\"},{\"attributes\":{},\"id\":\"2678\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"2685\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"2681\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"axis_label\":\"ECDF\",\"coordinates\":null,\"formatter\":{\"id\":\"2678\"},\"group\":null,\"major_label_policy\":{\"id\":\"2679\"},\"ticker\":{\"id\":\"2510\"}},\"id\":\"2509\",\"type\":\"LinearAxis\"},{\"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\":\"2519\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"2514\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"source\":{\"id\":\"2541\"}},\"id\":\"2547\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2499\",\"type\":\"DataRange1d\"},{\"attributes\":{\"fill_color\":{\"value\":\"#1f77b3\"},\"hatch_color\":{\"value\":\"#1f77b3\"},\"line_color\":{\"value\":\"#1f77b3\"},\"x\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"__ECDF\"}},\"id\":\"2529\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"2679\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"2517\",\"type\":\"ResetTool\"},{\"attributes\":{\"axis_label\":\"impact force (mN)\",\"coordinates\":null,\"formatter\":{\"id\":\"2681\"},\"group\":null,\"major_label_policy\":{\"id\":\"2682\"},\"ticker\":{\"id\":\"2506\"}},\"id\":\"2505\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2689\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"fill_color\":{\"value\":\"#ff7e0e\"},\"hatch_color\":{\"value\":\"#ff7e0e\"},\"line_color\":{\"value\":\"#ff7e0e\"},\"x\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"__ECDF\"}},\"id\":\"2536\",\"type\":\"Circle\"},{\"attributes\":{\"label\":{\"value\":\"I\"},\"renderers\":[{\"id\":\"2532\"}]},\"id\":\"2556\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"2690\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"2686\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"2513\",\"type\":\"PanTool\"},{\"attributes\":{\"data\":{\"ID\":[\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\"],\"__ECDF\":{\"__ndarray__\":\"AAAAAAAA8D+amZmZmZnhP5qZmZmZmck/mpmZmZmZ6T8AAAAAAADgP2ZmZmZmZu4/zczMzMzM3D8zMzMzMzPjP83MzMzMzOw/MzMzMzMzwz/NzMzMzMzkP5qZmZmZmbk/AAAAAAAA6D+amZmZmZmpPzMzMzMzM+s/mpmZmZmZ2T8zMzMzMzPTPwAAAAAAANA/ZmZmZmZm1j9mZmZmZmbmPw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"__label\":[\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\"],\"adhesive force (mN)\":[-655,-292,-246,-245,-553,-664,-261,-691,-92,-566,-223,-512,-227,-573,-522,-599,-364,-469,-844,-648],\"adhesive force / body weight\":{\"__ndarray__\":\"pHA9Ctej+D8UrkfhehTmP4/C9Shcj+I/j8L1KFyP4j/NzMzMzMz0P/YoXI/C9fg/hetRuB6F4z8UrkfhehT6Pylcj8L1KMw/SOF6FK5H9T+kcD0K16PgPzMzMzMzM/M/9ihcj8L14D+amZmZmZn1P65H4XoUrvM/j8L1KFyP9j+F61G4HoXrP5qZmZmZmfE/16NwPQrX/z9SuB6F61H4Pw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"adhesive impulse (N-s)\":{\"__ndarray__\":\"pHA9Ctej2L83iUFg5dDSvz81XrpJDNK/w/UoXI/C1b/ZzvdT46Xbv1pkO99Pjae/5dAi2/l+2r+TGARWDi2yv/yp8dJNYoC/Gy/dJAaBtb+Nl24Sg8DKvylcj8L1KKy/ObTIdr6fmr+F61G4HoXLv2iR7Xw/Nb6/IbByaJHtzL81XrpJDALLv6RwPQrXo9C/y6FFtvP91L9g5dAi2/m+vw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"adhesive strength (Pa)\":[-1881,-1177,-1894,-2301,-2004,-7802,-803,-2860,-678,-4506,-942,-17652,-1101,-3014,-1860,-2757,-1927,-2129,-4925,-4573],\"contact area with mucus / contact area without mucus\":{\"__ndarray__\":\"uB6F61G47j/NzMzMzMzsP65H4XoUruc/UrgehetR6D8UrkfhehTuPwrXo3A9Cuc/zczMzMzM7D8K16NwPQrnPwAAAAAAAPA/CtejcD0K7z8K16NwPQrvP7gehetRuJ4/AAAAAAAA8D9SuB6F61HoPwAAAAAAAPA/AAAAAAAA8D/2KFyPwvXgP3E9CtejcOU/UrgehetR2D9mZmZmZmbmPw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"contact area without mucus (mm2)\":[15,24,34,26,16,24,33,67,0,4,8,28,0,46,0,0,89,72,106,43],\"contact pressure (Pa)\":[4633,2441,2517,8893,1959,18073,1627,2600,10645,2367,2972,9279,3647,1288,4213,2369,2302,1737,2665,5149],\"date\":[\"2013_03_19\",\"2013_03_19\",\"2013_03_19\",\"2013_03_19\",\"2013_03_21\",\"2013_03_21\",\"2013_03_21\",\"2013_03_21\",\"2013_03_25\",\"2013_03_25\",\"2013_03_25\",\"2013_03_25\",\"2013_03_28\",\"2013_03_28\",\"2013_04_03\",\"2013_04_03\",\"2013_04_08\",\"2013_04_08\",\"2013_04_08\",\"2013_04_12\"],\"impact force (mN)\":[1612,605,327,946,541,1539,529,628,1453,297,703,269,751,245,1182,515,435,383,457,730],\"impact force / body weight\":{\"__ndarray__\":\"UrgehetRDkC4HoXrUbj2P6RwPQrXo+g/16NwPQrXAUBSuB6F61H0P/YoXI/C9QxA16NwPQrX8z+uR+F6FK73P1yPwvUoXAtAZmZmZmZm5j9mZmZmZmb6Pylcj8L1KOQ/UrgehetR/D+PwvUoXI/iPz0K16NwPQZAXI/C9Shc8z9SuB6F61HwP83MzMzMzOw/SOF6FK5H8T+F61G4HoX7Pw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"impact time (ms)\":[18,55,51,59,33,43,28,31,72,42,33,57,39,21,28,29,26,31,15,42],\"index\":[20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],\"time frog pulls on target (ms)\":[3087,1261,1508,1841,3126,741,2482,998,1652,936,2152,189,1195,1466,1197,1486,1017,974,780,786],\"total contact area (mm2)\":[348,248,130,106,276,85,325,242,136,126,237,29,206,190,281,217,189,221,171,142],\"trial number\":[1,2,3,4,1,2,3,4,1,2,3,4,1,2,1,2,1,2,3,1]},\"selected\":{\"id\":\"2686\"},\"selection_policy\":{\"id\":\"2685\"}},\"id\":\"2534\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"source\":{\"id\":\"2548\"}},\"id\":\"2554\",\"type\":\"CDSView\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#ff7e0e\"},\"hatch_alpha\":{\"value\":0.2},\"hatch_color\":{\"value\":\"#ff7e0e\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#ff7e0e\"},\"x\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"__ECDF\"}},\"id\":\"2538\",\"type\":\"Circle\"},{\"attributes\":{\"data\":{\"ID\":[\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\"],\"__ECDF\":{\"__ndarray__\":\"AAAAAAAA0D9mZmZmZmbuP83MzMzMzOQ/mpmZmZmZ4T+amZmZmZm5P83MzMzMzOw/MzMzMzMzwz+amZmZmZnpPwAAAAAAAPA/AAAAAAAA6D9mZmZmZmbmPwAAAAAAAOA/mpmZmZmZ2T8zMzMzMzPjP83MzMzMzNw/ZmZmZmZm1j+amZmZmZnJPzMzMzMzM+s/MzMzMzMz0z+amZmZmZmpPw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"__label\":[\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\"],\"adhesive force (mN)\":[-785,-983,-850,-455,-974,-592,-512,-804,-690,-462,-766,-715,-613,-677,-528,-452,-430,-652,-692,-536],\"adhesive force / body weight\":{\"__ndarray__\":\"UrgehetR9D9xPQrXo3D5P+xRuB6F6/U/rkfhehSu5z8fhetRuB75P7gehetRuO4/j8L1KFyP6j/NzMzMzMz0P+xRuB6F6/E/AAAAAAAA6D/Xo3A9CtfzP2ZmZmZmZvI/rkfhehSu7z9xPQrXo3DxPzMzMzMzM+s/XI/C9Shc5z9mZmZmZmbmP83MzMzMzPA/7FG4HoXr8T/Xo3A9CtfrPw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"adhesive impulse (N-s)\":{\"__ndarray__\":\"j8L1KFyP0r9eukkMAivHv39qvHSTGMS/w/UoXI/Cxb/fT42XbhLbv7pJDAIrh8a/PQrXo3A90r89CtejcD3Sv2Q730+Nl86/y6FFtvP91L9SuB6F61HYv99PjZduEtO/+n5qvHST6L9zaJHtfD/dv2Q730+Nl9a//tR46SYx0L9Ei2zn+6nRv6abxCCwctC/fT81XrpJ1L+mm8QgsHLYvw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"adhesive strength (Pa)\":[-2030,-9695,-10239,-1381,-3975,-1737,-1427,-3266,-2568,-1733,-1879,-5064,-1348,-3636,-3453,-1557,-1677,-4425,-1901,-2073],\"contact area with mucus / contact area without mucus\":{\"__ndarray__\":\"PQrXo3A96j/sUbgeheuxP5qZmZmZmak/pHA9Ctej4D+4HoXrUbi+PxSuR+F6FOY/FK5H4XoU5j/sUbgehevRP8P1KFyPwsU/w/UoXI/C1T9xPQrXo3DtP+F6FK5H4co/mpmZmZmZ6T/Xo3A9CtfTP7gehetRuJ4/exSuR+F65D+kcD0K16PgPwrXo3A9Crc/7FG4HoXr0T9mZmZmZmbWPw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"contact area without mucus (mm2)\":[70,94,79,158,216,106,110,178,224,176,33,112,92,129,148,105,124,134,260,168],\"contact pressure (Pa)\":[3117,24923,21020,4718,2012,6676,1550,7832,9824,7122,4638,10947,2874,9089,10095,4419,3019,13784,3406,1830],\"date\":[\"2013_02_26\",\"2013_02_26\",\"2013_03_01\",\"2013_03_01\",\"2013_03_01\",\"2013_03_01\",\"2013_03_05\",\"2013_03_05\",\"2013_03_05\",\"2013_03_05\",\"2013_03_12\",\"2013_03_12\",\"2013_03_12\",\"2013_03_12\",\"2013_03_12\",\"2013_03_15\",\"2013_03_15\",\"2013_03_15\",\"2013_03_15\",\"2013_03_15\"],\"impact force (mN)\":[1205,2527,1745,1556,493,2276,556,1928,2641,1897,1891,1545,1307,1692,1543,1282,775,2032,1240,473],\"impact force / body weight\":{\"__ndarray__\":\"MzMzMzMz/z9SuB6F61EQQI/C9ShcjwZAFK5H4XoUBECamZmZmZnpP3E9CtejcA1AzczMzMzM7D/hehSuR+EIQBSuR+F6FBFAexSuR+F6CEB7FK5H4XoIQAAAAAAAAARA4XoUrkfhAEDXo3A9CtcFQOxRuB6F6wNAj8L1KFyPAEAAAAAAAAD0Pz0K16NwPQpAAAAAAAAAAEBSuB6F61HoPw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"impact time (ms)\":[46,44,34,41,36,31,43,46,50,41,40,48,29,31,38,31,34,60,34,40],\"index\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],\"time frog pulls on target (ms)\":[884,248,211,1025,499,969,835,508,491,839,1069,649,1845,917,750,785,837,486,906,1218],\"total contact area (mm2)\":[387,101,83,330,245,341,359,246,269,266,408,141,455,186,153,290,257,147,364,259],\"trial number\":[3,4,1,2,3,4,1,2,3,4,1,2,3,4,5,1,2,3,4,5]},\"selected\":{\"id\":\"2684\"},\"selection_policy\":{\"id\":\"2683\"}},\"id\":\"2527\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"2516\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"2688\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"2503\",\"type\":\"LinearScale\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2527\"},\"glyph\":{\"id\":\"2529\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2531\"},\"nonselection_glyph\":{\"id\":\"2530\"},\"view\":{\"id\":\"2533\"}},\"id\":\"2532\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"overlay\":{\"id\":\"2519\"}},\"id\":\"2515\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"2682\",\"type\":\"AllLabels\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b3\"},\"hatch_alpha\":{\"value\":0.1},\"hatch_color\":{\"value\":\"#1f77b3\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b3\"},\"x\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"__ECDF\"}},\"id\":\"2530\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"2684\",\"type\":\"Selection\"},{\"attributes\":{\"label\":{\"value\":\"IV\"},\"renderers\":[{\"id\":\"2553\"}]},\"id\":\"2559\",\"type\":\"LegendItem\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#2ba02b\"},\"hatch_alpha\":{\"value\":0.1},\"hatch_color\":{\"value\":\"#2ba02b\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#2ba02b\"},\"x\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"__ECDF\"}},\"id\":\"2544\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"2683\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"2687\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#2ba02b\"},\"hatch_alpha\":{\"value\":0.2},\"hatch_color\":{\"value\":\"#2ba02b\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#2ba02b\"},\"x\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"__ECDF\"}},\"id\":\"2545\",\"type\":\"Circle\"},{\"attributes\":{\"source\":{\"id\":\"2534\"}},\"id\":\"2540\",\"type\":\"CDSView\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2548\"},\"glyph\":{\"id\":\"2550\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2552\"},\"nonselection_glyph\":{\"id\":\"2551\"},\"view\":{\"id\":\"2554\"}},\"id\":\"2553\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2518\",\"type\":\"HelpTool\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#d62628\"},\"hatch_alpha\":{\"value\":0.1},\"hatch_color\":{\"value\":\"#d62628\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#d62628\"},\"x\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"__ECDF\"}},\"id\":\"2551\",\"type\":\"Circle\"},{\"attributes\":{\"data\":{\"ID\":[\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\"],\"__ECDF\":{\"__ndarray__\":\"ZmZmZmZm5j+amZmZmZnJP5qZmZmZmak/ZmZmZmZm7j/NzMzMzMzkPwAAAAAAAOA/zczMzMzM3D8zMzMzMzPjPwAAAAAAAPA/MzMzMzMz0z8AAAAAAADQPzMzMzMzM+s/mpmZmZmZ6T+amZmZmZnhP5qZmZmZmdk/mpmZmZmZuT8zMzMzMzPDPwAAAAAAAOg/zczMzMzM7D9mZmZmZmbWPw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"__label\":[\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\"],\"adhesive force (mN)\":[-94,-163,-172,-225,-301,-93,-131,-289,-104,-229,-259,-231,-267,-178,-123,-151,-127,-372,-236,-390],\"adhesive force / body weight\":{\"__ndarray__\":\"UrgehetR6D/2KFyPwvX0PxSuR+F6FPY/9ihcj8L1/D9cj8L1KFwDQAAAAAAAAOg/zczMzMzM8D+kcD0K16MCQOF6FK5H4eo/mpmZmZmZ/T+kcD0K16MAQMP1KFyPwv0/H4XrUbgeAUDhehSuR+H2P65H4XoUru8/hetRuB6F8z9SuB6F61HwP+xRuB6F6wdAZmZmZmZm/j8fhetRuB4JQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"adhesive impulse (N-s)\":{\"__ndarray__\":\"/Knx0k1iUL/8qfHSTWKgv9NNYhBYObS/TDeJQWDlwL/Xo3A9CtfDvylcj8L1KLy/O99PjZduor/jpZvEILCyvylcj8L1KKy/8KfGSzeJwb+iRbbz/dTIvxsv3SQGgaW/BoGVQ4tsx7+cxCCwcmihvxkEVg4tsp2/y6FFtvP9tL+F61G4HoXLv+xRuB6F68G/aJHtfD81vr85tMh2vp/Kvw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"adhesive strength (Pa)\":[-967,-1507,-3149,-1818,-2354,-2181,-1005,-2555,-902,-2580,-2855,-2819,-2213,-9364,-5843,-4882,-896,-5136,-1834,-3492],\"contact area with mucus / contact area without mucus\":{\"__ndarray__\":\"j8L1KFyP6j8zMzMzMzPjP65H4XoUrtc/pHA9Ctej6D97FK5H4XqUP7gehetRuOY/AAAAAAAA8D+4HoXrUbjePx+F61G4HuU/ZmZmZmZm7j8zMzMzMzPDP3sUrkfheoQ/zczMzMzM7D+amZmZmZmpP5qZmZmZmak/uB6F61G4nj+F61G4HoXrP+F6FK5H4do/exSuR+F6xD/2KFyPwvXYPw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"contact area without mucus (mm2)\":[15,10,23,17,43,34,74,4,55,6,88,23,58,17,29,126,12,1,0,58],\"contact pressure (Pa)\":[6326,3824,5946,6272,4770,12699,4130,5110,6993,5165,5048,7633,5152,28641,25471,12409,2835,8475,5171,4376],\"date\":[\"2013_05_27\",\"2013_05_27\",\"2013_05_27\",\"2013_06_11\",\"2013_06_11\",\"2013_06_11\",\"2013_06_14\",\"2013_06_14\",\"2013_06_18\",\"2013_06_18\",\"2013_06_18\",\"2013_06_18\",\"2013_06_21\",\"2013_06_21\",\"2013_06_21\",\"2013_06_21\",\"2013_06_26\",\"2013_06_26\",\"2013_06_26\",\"2013_06_26\"],\"impact force (mN)\":[614,414,324,776,611,544,538,579,806,459,458,626,621,544,535,385,401,614,665,488],\"impact force / body weight\":{\"__ndarray__\":\"w/UoXI/CE0CkcD0K16MKQOF6FK5H4QRA9ihcj8L1GECkcD0K16MTQIXrUbgehRFASOF6FK5HEUCkcD0K16MSQPYoXI/C9RlAmpmZmZmZDUCF61G4HoUNQClcj8L1KBRA9ihcj8L1E0CF61G4HoURQDMzMzMzMxFAuB6F61G4CEDXo3A9CtcJQMP1KFyPwhNAZmZmZmZmFUBxPQrXo3APQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"impact time (ms)\":[88,143,105,35,29,16,38,31,29,32,30,16,27,30,35,39,36,34,40,34],\"index\":[40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59],\"time frog pulls on target (ms)\":[683,245,619,1823,918,1351,1790,1006,883,1218,910,550,2081,376,289,607,2932,680,685,1308],\"total contact area (mm2)\":[97,108,55,124,128,43,130,113,115,89,91,82,120,19,21,31,142,72,129,112],\"trial number\":[1,2,3,1,2,3,1,2,1,2,3,4,1,2,3,4,1,2,3,4]},\"selected\":{\"id\":\"2688\"},\"selection_policy\":{\"id\":\"2687\"}},\"id\":\"2541\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"label\":{\"value\":\"II\"},\"renderers\":[{\"id\":\"2539\"}]},\"id\":\"2557\",\"type\":\"LegendItem\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2541\"},\"glyph\":{\"id\":\"2543\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2545\"},\"nonselection_glyph\":{\"id\":\"2544\"},\"view\":{\"id\":\"2547\"}},\"id\":\"2546\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"fill_color\":{\"value\":\"#d62628\"},\"hatch_color\":{\"value\":\"#d62628\"},\"line_color\":{\"value\":\"#d62628\"},\"x\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"__ECDF\"}},\"id\":\"2550\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"2497\",\"type\":\"DataRange1d\"},{\"attributes\":{\"fill_color\":{\"value\":\"#2ba02b\"},\"hatch_color\":{\"value\":\"#2ba02b\"},\"line_color\":{\"value\":\"#2ba02b\"},\"x\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"__ECDF\"}},\"id\":\"2543\",\"type\":\"Circle\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#d62628\"},\"hatch_alpha\":{\"value\":0.2},\"hatch_color\":{\"value\":\"#d62628\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#d62628\"},\"x\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"__ECDF\"}},\"id\":\"2552\",\"type\":\"Circle\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#ff7e0e\"},\"hatch_alpha\":{\"value\":0.1},\"hatch_color\":{\"value\":\"#ff7e0e\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#ff7e0e\"},\"x\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"__ECDF\"}},\"id\":\"2537\",\"type\":\"Circle\"},{\"attributes\":{\"tools\":[{\"id\":\"2513\"},{\"id\":\"2514\"},{\"id\":\"2515\"},{\"id\":\"2516\"},{\"id\":\"2517\"},{\"id\":\"2518\"}]},\"id\":\"2520\",\"type\":\"Toolbar\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#1f77b3\"},\"hatch_alpha\":{\"value\":0.2},\"hatch_color\":{\"value\":\"#1f77b3\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#1f77b3\"},\"x\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"__ECDF\"}},\"id\":\"2531\",\"type\":\"Circle\"},{\"attributes\":{\"label\":{\"value\":\"III\"},\"renderers\":[{\"id\":\"2546\"}]},\"id\":\"2558\",\"type\":\"LegendItem\"},{\"attributes\":{\"data\":{\"ID\":[\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\"],\"__ECDF\":{\"__ndarray__\":\"mpmZmZmZyT8zMzMzMzPDP5qZmZmZmbk/AAAAAAAA4D+amZmZmZnZP5qZmZmZmak/MzMzMzMz4z9mZmZmZmbWP2ZmZmZmZu4/ZmZmZmZm5j8AAAAAAADQPzMzMzMzM9M/AAAAAAAA6D/NzMzMzMzkPwAAAAAAAPA/zczMzMzM3D+amZmZmZnpP83MzMzMzOw/MzMzMzMz6z+amZmZmZnhPw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"__label\":[\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\"],\"adhesive force (mN)\":[-456,-193,-236,-225,-217,-161,-139,-264,-342,-231,-209,-292,-339,-371,-331,-302,-216,-163,-367,-218],\"adhesive force / body weight\":{\"__ndarray__\":\"MzMzMzMzC0AK16NwPQr3Pylcj8L1KPw/4XoUrkfh+j/D9Shcj8L5PzMzMzMzM/M/pHA9Ctej8D+F61G4HoX/P2ZmZmZmZgRAhetRuB6F+z/NzMzMzMz4P1yPwvUoXAFAPQrXo3A9BEAUrkfhehQGQMP1KFyPwgNAAAAAAAAAAkDD9Shcj8L5P1yPwvUoXPM/16NwPQrXBUAUrkfhehT6Pw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"adhesive impulse (N-s)\":{\"__ndarray__\":\"mpmZmZmZqb+q8dJNYhCovxBYObTIdr6/KVyPwvUovL9aZDvfT42Xvzm0yHa+n6q/YhBYObTItr97FK5H4XrEvyGwcmiR7cy/TDeJQWDloL+HFtnO91PDvxkEVg4tss2/lkOLbOf70b+q8dJNYhC4v4PAyqFFtrO/CKwcWmQ7v7+YbhKDwMrBvy2yne+nxsu/8tJNYhBYyb8IrBxaZDu/vw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"adhesive strength (Pa)\":[-3440,-3400,-4647,-1581,-1245,-2866,-2141,-2136,-2497,-3847,-1889,-2018,-1772,-4447,-2190,-2591,-1759,-1257,-2857,-1688],\"contact area with mucus / contact area without mucus\":{\"__ndarray__\":\"KVyPwvUo7D+PwvUoXI/qP0jhehSuR+E/uB6F61G43j9cj8L1KFzvP3sUrkfhepQ/H4XrUbge7T+PwvUoXI/SP4/C9Shcj+o/uB6F61G4nj/hehSuR+HqP65H4XoUru8/AAAAAAAA8D+4HoXrUbi+P7gehetRuOY/7FG4HoXrsT8AAAAAAADwPwrXo3A9Cu8/cT0K16Nw3T+F61G4HoXjPw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"contact area without mucus (mm2)\":[0,74,44,108,39,4,77,81,0,4,69,50,12,18,20,30,20,42,108,68],\"contact pressure (Pa)\":[1297,2498,735,3177,2037,397,7713,2205,5259,9705,1793,1369,3116,6184,5386,3446,4928,5498,4776,3617],\"date\":[\"2013_05_27\",\"2013_05_27\",\"2013_05_27\",\"2013_05_30\",\"2013_05_30\",\"2013_05_30\",\"2013_06_03\",\"2013_06_11\",\"2013_06_11\",\"2013_06_11\",\"2013_06_11\",\"2013_06_14\",\"2013_06_18\",\"2013_06_18\",\"2013_06_18\",\"2013_06_18\",\"2013_06_21\",\"2013_06_21\",\"2013_06_21\",\"2013_06_21\"],\"impact force (mN)\":[172,142,37,453,355,22,502,273,720,582,198,198,597,516,815,402,605,711,614,468],\"impact force / body weight\":{\"__ndarray__\":\"exSuR+F69D/NzMzMzMzwP+xRuB6F69E/9ihcj8L1CkAfhetRuB4FQMP1KFyPwsU/7FG4HoXrDUA9CtejcD0AQHE9CtejcBVAXI/C9ShcEUCF61G4HoX3P4XrUbgehfc/w/UoXI/CEUC4HoXrUbgOQEjhehSuRxhAAAAAAAAACEAAAAAAAAASQDMzMzMzMxVASOF6FK5HEkDXo3A9CtcLQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"impact time (ms)\":[26,20,55,38,31,33,74,26,27,33,23,6,29,31,34,38,39,76,33,36],\"index\":[60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79],\"time frog pulls on target (ms)\":[462,250,743,844,728,472,959,844,1515,279,1427,2874,4251,626,1254,986,1627,2021,1366,1269],\"total contact area (mm2)\":[133,57,51,142,174,56,65,124,137,60,110,145,191,83,151,117,123,129,128,129],\"trial number\":[2,3,4,1,2,3,1,1,2,3,4,1,1,2,3,4,1,2,3,4]},\"selected\":{\"id\":\"2690\"},\"selection_policy\":{\"id\":\"2689\"}},\"id\":\"2548\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"2510\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"2506\",\"type\":\"BasicTicker\"},{\"attributes\":{\"source\":{\"id\":\"2527\"}},\"id\":\"2533\",\"type\":\"CDSView\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2534\"},\"glyph\":{\"id\":\"2536\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2538\"},\"nonselection_glyph\":{\"id\":\"2537\"},\"view\":{\"id\":\"2540\"}},\"id\":\"2539\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"axis\":{\"id\":\"2509\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"2512\",\"type\":\"Grid\"},{\"attributes\":{\"axis\":{\"id\":\"2505\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"2508\",\"type\":\"Grid\"},{\"attributes\":{\"coordinates\":null,\"group\":null},\"id\":\"2675\",\"type\":\"Title\"}],\"root_ids\":[\"2496\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.2\"}};\n", " const render_items = [{\"docid\":\"edd63c4f-2a1c-4f60-a9b6-cc9fa0e9b3c8\",\"root_ids\":[\"2496\"],\"roots\":{\"2496\":\"898c0f5d-63e0-45ee-b75c-76259358e1e2\"}}];\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": "2496" } }, "output_type": "display_data" } ], "source": [ "p = iqplot.ecdf(\n", " data=df,\n", " q=\"impact force (mN)\",\n", " cats=\"ID\",\n", ")\n", "\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Each dot in the ECDF is a single data point that we measured. Given the above definition of the ECDF, it is defined for all real $x$. So, formally, the ECDF is a continuous function (with discontinuous derivatives at each data point). So, it should be plotted like a staircase according to the formal definition. We can plot it that way using the `style` keyword argument." ] }, { "cell_type": "code", "execution_count": 14, "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 = {\"90883935-b0b5-4695-85ff-82b7892e49ca\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"2786\"}],\"center\":[{\"id\":\"2789\"},{\"id\":\"2793\"}],\"frame_height\":275,\"frame_width\":375,\"left\":[{\"id\":\"2790\"}],\"renderers\":[{\"id\":\"2812\"},{\"id\":\"2818\"},{\"id\":\"2824\"},{\"id\":\"2830\"},{\"id\":\"2836\"},{\"id\":\"2842\"},{\"id\":\"2848\"},{\"id\":\"2854\"},{\"id\":\"2860\"},{\"id\":\"2866\"},{\"id\":\"2872\"},{\"id\":\"2878\"}],\"right\":[{\"id\":\"2880\"}],\"title\":{\"id\":\"3017\"},\"toolbar\":{\"id\":\"2801\"},\"toolbar_location\":\"above\",\"x_range\":{\"id\":\"2778\"},\"x_scale\":{\"id\":\"2782\"},\"y_range\":{\"id\":\"2780\"},\"y_scale\":{\"id\":\"2784\"}},\"id\":\"2777\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"AAAAAACgbkAAAAAAAKBuQAAAAAAA0HBAAAAAAADQcEAAAAAAAJByQAAAAAAAkHJAAAAAAABwdEAAAAAAAHB0QAAAAAAA8HdAAAAAAADwd0AAAAAAADB7QAAAAAAAMHtAAAAAAACQfEAAAAAAAJB8QAAAAAAAGIBAAAAAAAAYgEAAAAAAAIiAQAAAAAAAiIBAAAAAAADogEAAAAAAAOiAQAAAAAAA6IJAAAAAAADogkAAAAAAAKCDQAAAAAAAoINAAAAAAAD4hUAAAAAAAPiFQAAAAAAA0IZAAAAAAADQhkAAAAAAAHiHQAAAAAAAeIdAAAAAAACQjUAAAAAAAJCNQAAAAAAAeJJAAAAAAAB4kkAAAAAAALSWQAAAAAAAtJZAAAAAAAAMmEAAAAAAAAyYQAAAAAAAMJlAAAAAAAAwmUA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[40]},\"y\":{\"__ndarray__\":\"AAAAAAAAAACamZmZmZmpP5qZmZmZmak/mpmZmZmZuT+amZmZmZm5PzMzMzMzM8M/MzMzMzMzwz+amZmZmZnJP5qZmZmZmck/AAAAAAAA0D8AAAAAAADQPzMzMzMzM9M/MzMzMzMz0z9mZmZmZmbWP2ZmZmZmZtY/mpmZmZmZ2T+amZmZmZnZP83MzMzMzNw/zczMzMzM3D8AAAAAAADgPwAAAAAAAOA/mpmZmZmZ4T+amZmZmZnhPzMzMzMzM+M/MzMzMzMz4z/NzMzMzMzkP83MzMzMzOQ/ZmZmZmZm5j9mZmZmZmbmPwAAAAAAAOg/AAAAAAAA6D+amZmZmZnpP5qZmZmZmek/MzMzMzMz6z8zMzMzMzPrP83MzMzMzOw/zczMzMzM7D9mZmZmZmbuP2ZmZmZmZu4/AAAAAAAA8D8=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[40]}},\"selected\":{\"id\":\"3032\"},\"selection_policy\":{\"id\":\"3031\"}},\"id\":\"2826\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"angle\":{\"value\":3.141592653589793},\"line_color\":{\"value\":\"#2ba02b\"},\"line_width\":{\"value\":2},\"x\":{\"value\":324.0},\"y\":{\"value\":0}},\"id\":\"2851\",\"type\":\"Ray\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2826\"},\"glyph\":{\"id\":\"2827\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2829\"},\"nonselection_glyph\":{\"id\":\"2828\"},\"view\":{\"id\":\"2831\"}},\"id\":\"2830\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"2844\"}},\"id\":\"2849\",\"type\":\"CDSView\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#2ba02b\"},\"line_width\":{\"value\":2},\"x\":{\"value\":806.0},\"y\":{\"value\":1}},\"id\":\"2858\",\"type\":\"Ray\"},{\"attributes\":{\"label\":{\"value\":\"II\"},\"renderers\":[{\"id\":\"2830\"}]},\"id\":\"2882\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"2780\",\"type\":\"DataRange1d\"},{\"attributes\":{\"data\":{},\"selected\":{\"id\":\"3034\"},\"selection_policy\":{\"id\":\"3033\"}},\"id\":\"2832\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_color\":\"#ff7e0e\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2827\",\"type\":\"Line\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"AAAAAABAdEAAAAAAAEB0QAAAAAAAEHhAAAAAAAAQeEAAAAAAABB5QAAAAAAAEHlAAAAAAADgeUAAAAAAAOB5QAAAAAAAoHxAAAAAAACgfEAAAAAAALB8QAAAAAAAsHxAAAAAAACAfkAAAAAAAIB+QAAAAAAAuIBAAAAAAAC4gEAAAAAAANCAQAAAAAAA0IBAAAAAAAAAgUAAAAAAAACBQAAAAAAAAIFAAAAAAAAAgUAAAAAAABiCQAAAAAAAGIJAAAAAAAAYg0AAAAAAABiDQAAAAAAAMINAAAAAAAAwg0AAAAAAADCDQAAAAAAAMINAAAAAAABog0AAAAAAAGiDQAAAAAAAkINAAAAAAACQg0AAAAAAAMiEQAAAAAAAyIRAAAAAAABAiEAAAAAAAECIQAAAAAAAMIlAAAAAAAAwiUA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[40]},\"y\":{\"__ndarray__\":\"AAAAAAAAAACamZmZmZmpP5qZmZmZmak/mpmZmZmZuT+amZmZmZm5PzMzMzMzM8M/MzMzMzMzwz+amZmZmZnJP5qZmZmZmck/AAAAAAAA0D8AAAAAAADQPzMzMzMzM9M/MzMzMzMz0z9mZmZmZmbWP2ZmZmZmZtY/mpmZmZmZ2T+amZmZmZnZP83MzMzMzNw/zczMzMzM3D8AAAAAAADgPwAAAAAAAOA/mpmZmZmZ4T+amZmZmZnhPzMzMzMzM+M/MzMzMzMz4z/NzMzMzMzkP83MzMzMzOQ/ZmZmZmZm5j9mZmZmZmbmPwAAAAAAAOg/AAAAAAAA6D+amZmZmZnpP5qZmZmZmek/MzMzMzMz6z8zMzMzMzPrP83MzMzMzOw/zczMzMzM7D9mZmZmZmbuP2ZmZmZmZu4/AAAAAAAA8D8=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[40]}},\"selected\":{\"id\":\"3038\"},\"selection_policy\":{\"id\":\"3037\"}},\"id\":\"2844\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data\":{},\"selected\":{\"id\":\"3028\"},\"selection_policy\":{\"id\":\"3027\"}},\"id\":\"2814\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"angle\":{\"value\":3.141592653589793},\"line_color\":{\"value\":\"#ff7e0e\"},\"line_width\":{\"value\":2},\"x\":{\"value\":245.0},\"y\":{\"value\":0}},\"id\":\"2833\",\"type\":\"Ray\"},{\"attributes\":{},\"id\":\"2795\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"2778\",\"type\":\"DataRange1d\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#1f77b3\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2811\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"2808\"}},\"id\":\"2813\",\"type\":\"CDSView\"},{\"attributes\":{\"axis\":{\"id\":\"2786\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"2789\",\"type\":\"Grid\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b3\"},\"line_width\":{\"value\":2},\"x\":{\"value\":2641.0},\"y\":{\"value\":1}},\"id\":\"2822\",\"type\":\"Ray\"},{\"attributes\":{},\"id\":\"2787\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"2784\",\"type\":\"LinearScale\"},{\"attributes\":{\"data\":{},\"selected\":{\"id\":\"3046\"},\"selection_policy\":{\"id\":\"3045\"}},\"id\":\"2868\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"2782\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis_label\":\"impact force (mN)\",\"coordinates\":null,\"formatter\":{\"id\":\"3023\"},\"group\":null,\"major_label_policy\":{\"id\":\"3024\"},\"ticker\":{\"id\":\"2787\"}},\"id\":\"2786\",\"type\":\"LinearAxis\"},{\"attributes\":{\"source\":{\"id\":\"2820\"}},\"id\":\"2825\",\"type\":\"CDSView\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2820\"},\"glyph\":{\"id\":\"2821\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2823\"},\"nonselection_glyph\":{\"id\":\"2822\"},\"view\":{\"id\":\"2825\"}},\"id\":\"2824\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"3020\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2844\"},\"glyph\":{\"id\":\"2845\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2847\"},\"nonselection_glyph\":{\"id\":\"2846\"},\"view\":{\"id\":\"2849\"}},\"id\":\"2848\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"axis_label\":\"ECDF\",\"coordinates\":null,\"formatter\":{\"id\":\"3020\"},\"group\":null,\"major_label_policy\":{\"id\":\"3021\"},\"ticker\":{\"id\":\"2791\"}},\"id\":\"2790\",\"type\":\"LinearAxis\"},{\"attributes\":{\"data\":{},\"selected\":{\"id\":\"3030\"},\"selection_policy\":{\"id\":\"3029\"}},\"id\":\"2820\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"3021\",\"type\":\"AllLabels\"},{\"attributes\":{\"axis\":{\"id\":\"2790\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"2793\",\"type\":\"Grid\"},{\"attributes\":{\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#1f77b3\"},\"line_width\":{\"value\":2},\"x\":{\"value\":2641.0},\"y\":{\"value\":1}},\"id\":\"2823\",\"type\":\"Ray\"},{\"attributes\":{},\"id\":\"2791\",\"type\":\"BasicTicker\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#ff7e0e\"},\"line_width\":{\"value\":2},\"x\":{\"value\":1612.0},\"y\":{\"value\":1}},\"id\":\"2840\",\"type\":\"Ray\"},{\"attributes\":{\"source\":{\"id\":\"2826\"}},\"id\":\"2831\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2799\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"2794\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"3023\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"angle\":{\"value\":3.141592653589793},\"line_color\":{\"value\":\"#d62628\"},\"line_width\":{\"value\":2},\"x\":{\"value\":22.0},\"y\":{\"value\":0}},\"id\":\"2869\",\"type\":\"Ray\"},{\"attributes\":{\"overlay\":{\"id\":\"2800\"}},\"id\":\"2796\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"2797\",\"type\":\"SaveTool\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#ff7e0e\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2829\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2798\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"3024\",\"type\":\"AllLabels\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2808\"},\"glyph\":{\"id\":\"2809\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2811\"},\"nonselection_glyph\":{\"id\":\"2810\"},\"view\":{\"id\":\"2813\"}},\"id\":\"2812\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#ff7e0e\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2828\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b3\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2810\",\"type\":\"Line\"},{\"attributes\":{\"angle\":{\"value\":3.141592653589793},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#ff7e0e\"},\"line_width\":{\"value\":2},\"x\":{\"value\":245.0},\"y\":{\"value\":0}},\"id\":\"2834\",\"type\":\"Ray\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2832\"},\"glyph\":{\"id\":\"2833\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2835\"},\"nonselection_glyph\":{\"id\":\"2834\"},\"view\":{\"id\":\"2837\"}},\"id\":\"2836\",\"type\":\"GlyphRenderer\"},{\"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\":\"2800\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"angle\":{\"value\":3.141592653589793},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#ff7e0e\"},\"line_width\":{\"value\":2},\"x\":{\"value\":245.0},\"y\":{\"value\":0}},\"id\":\"2835\",\"type\":\"Ray\"},{\"attributes\":{\"line_color\":{\"value\":\"#ff7e0e\"},\"line_width\":{\"value\":2},\"x\":{\"value\":1612.0},\"y\":{\"value\":1}},\"id\":\"2839\",\"type\":\"Ray\"},{\"attributes\":{\"source\":{\"id\":\"2832\"}},\"id\":\"2837\",\"type\":\"CDSView\"},{\"attributes\":{\"data\":{},\"selected\":{\"id\":\"3036\"},\"selection_policy\":{\"id\":\"3035\"}},\"id\":\"2838\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAANkAAAAAAAAA2QAAAAAAAgEJAAAAAAACAQkAAAAAAAMBhQAAAAAAAwGFAAAAAAACAZUAAAAAAAIBlQAAAAAAAwGhAAAAAAADAaEAAAAAAAMBoQAAAAAAAwGhAAAAAAAAQcUAAAAAAABBxQAAAAAAAMHZAAAAAAAAwdkAAAAAAACB5QAAAAAAAIHlAAAAAAABQfEAAAAAAAFB8QAAAAAAAQH1AAAAAAABAfUAAAAAAAGB/QAAAAAAAYH9AAAAAAAAggEAAAAAAACCAQAAAAAAAMIJAAAAAAAAwgkAAAAAAAKiCQAAAAAAAqIJAAAAAAADogkAAAAAAAOiCQAAAAAAAMINAAAAAAAAwg0AAAAAAADiGQAAAAAAAOIZAAAAAAACAhkAAAAAAAICGQAAAAAAAeIlAAAAAAAB4iUA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[40]},\"y\":{\"__ndarray__\":\"AAAAAAAAAACamZmZmZmpP5qZmZmZmak/mpmZmZmZuT+amZmZmZm5PzMzMzMzM8M/MzMzMzMzwz+amZmZmZnJP5qZmZmZmck/AAAAAAAA0D8AAAAAAADQPzMzMzMzM9M/MzMzMzMz0z9mZmZmZmbWP2ZmZmZmZtY/mpmZmZmZ2T+amZmZmZnZP83MzMzMzNw/zczMzMzM3D8AAAAAAADgPwAAAAAAAOA/mpmZmZmZ4T+amZmZmZnhPzMzMzMzM+M/MzMzMzMz4z/NzMzMzMzkP83MzMzMzOQ/ZmZmZmZm5j9mZmZmZmbmPwAAAAAAAOg/AAAAAAAA6D+amZmZmZnpP5qZmZmZmek/MzMzMzMz6z8zMzMzMzPrP83MzMzMzOw/zczMzMzM7D9mZmZmZmbuP2ZmZmZmZu4/AAAAAAAA8D8=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[40]}},\"selected\":{\"id\":\"3044\"},\"selection_policy\":{\"id\":\"3043\"}},\"id\":\"2862\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#2ba02b\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2846\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"2838\"}},\"id\":\"2843\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"3025\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2838\"},\"glyph\":{\"id\":\"2839\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2841\"},\"nonselection_glyph\":{\"id\":\"2840\"},\"view\":{\"id\":\"2843\"}},\"id\":\"2842\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_color\":\"#d62628\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2863\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#ff7e0e\"},\"line_width\":{\"value\":2},\"x\":{\"value\":1612.0},\"y\":{\"value\":1}},\"id\":\"2841\",\"type\":\"Ray\"},{\"attributes\":{\"label\":{\"value\":\"IV\"},\"renderers\":[{\"id\":\"2866\"}]},\"id\":\"2884\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"3026\",\"type\":\"Selection\"},{\"attributes\":{\"angle\":{\"value\":3.141592653589793},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#2ba02b\"},\"line_width\":{\"value\":2},\"x\":{\"value\":324.0},\"y\":{\"value\":0}},\"id\":\"2852\",\"type\":\"Ray\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#2ba02b\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2847\",\"type\":\"Line\"},{\"attributes\":{\"label\":{\"value\":\"I\"},\"renderers\":[{\"id\":\"2812\"}]},\"id\":\"2881\",\"type\":\"LegendItem\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2850\"},\"glyph\":{\"id\":\"2851\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2853\"},\"nonselection_glyph\":{\"id\":\"2852\"},\"view\":{\"id\":\"2855\"}},\"id\":\"2854\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"angle\":{\"value\":3.141592653589793},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#1f77b3\"},\"line_width\":{\"value\":2},\"x\":{\"value\":473.0},\"y\":{\"value\":0}},\"id\":\"2817\",\"type\":\"Ray\"},{\"attributes\":{\"data\":{},\"selected\":{\"id\":\"3040\"},\"selection_policy\":{\"id\":\"3039\"}},\"id\":\"2850\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"source\":{\"id\":\"2814\"}},\"id\":\"2819\",\"type\":\"CDSView\"},{\"attributes\":{\"angle\":{\"value\":3.141592653589793},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#2ba02b\"},\"line_width\":{\"value\":2},\"x\":{\"value\":324.0},\"y\":{\"value\":0}},\"id\":\"2853\",\"type\":\"Ray\"},{\"attributes\":{\"line_color\":{\"value\":\"#1f77b3\"},\"line_width\":{\"value\":2},\"x\":{\"value\":2641.0},\"y\":{\"value\":1}},\"id\":\"2821\",\"type\":\"Ray\"},{\"attributes\":{\"line_color\":{\"value\":\"#2ba02b\"},\"line_width\":{\"value\":2},\"x\":{\"value\":806.0},\"y\":{\"value\":1}},\"id\":\"2857\",\"type\":\"Ray\"},{\"attributes\":{\"click_policy\":\"hide\",\"coordinates\":null,\"group\":null,\"items\":[{\"id\":\"2881\"},{\"id\":\"2882\"},{\"id\":\"2883\"},{\"id\":\"2884\"}],\"location\":\"center\"},\"id\":\"2880\",\"type\":\"Legend\"},{\"attributes\":{\"source\":{\"id\":\"2850\"}},\"id\":\"2855\",\"type\":\"CDSView\"},{\"attributes\":{\"data\":{},\"selected\":{\"id\":\"3042\"},\"selection_policy\":{\"id\":\"3041\"}},\"id\":\"2856\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"3027\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"source\":{\"id\":\"2856\"}},\"id\":\"2861\",\"type\":\"CDSView\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2856\"},\"glyph\":{\"id\":\"2857\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2859\"},\"nonselection_glyph\":{\"id\":\"2858\"},\"view\":{\"id\":\"2861\"}},\"id\":\"2860\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#d62628\"},\"line_width\":{\"value\":2},\"x\":{\"value\":815.0},\"y\":{\"value\":1}},\"id\":\"2876\",\"type\":\"Ray\"},{\"attributes\":{},\"id\":\"3028\",\"type\":\"Selection\"},{\"attributes\":{\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#2ba02b\"},\"line_width\":{\"value\":2},\"x\":{\"value\":806.0},\"y\":{\"value\":1}},\"id\":\"2859\",\"type\":\"Ray\"},{\"attributes\":{\"source\":{\"id\":\"2862\"}},\"id\":\"2867\",\"type\":\"CDSView\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2862\"},\"glyph\":{\"id\":\"2863\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2865\"},\"nonselection_glyph\":{\"id\":\"2864\"},\"view\":{\"id\":\"2867\"}},\"id\":\"2866\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"coordinates\":null,\"group\":null},\"id\":\"3017\",\"type\":\"Title\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2814\"},\"glyph\":{\"id\":\"2815\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2817\"},\"nonselection_glyph\":{\"id\":\"2816\"},\"view\":{\"id\":\"2819\"}},\"id\":\"2818\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"tools\":[{\"id\":\"2794\"},{\"id\":\"2795\"},{\"id\":\"2796\"},{\"id\":\"2797\"},{\"id\":\"2798\"},{\"id\":\"2799\"}]},\"id\":\"2801\",\"type\":\"Toolbar\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#d62628\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2865\",\"type\":\"Line\"},{\"attributes\":{\"label\":{\"value\":\"III\"},\"renderers\":[{\"id\":\"2848\"}]},\"id\":\"2883\",\"type\":\"LegendItem\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#d62628\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2864\",\"type\":\"Line\"},{\"attributes\":{\"angle\":{\"value\":3.141592653589793},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#d62628\"},\"line_width\":{\"value\":2},\"x\":{\"value\":22.0},\"y\":{\"value\":0}},\"id\":\"2870\",\"type\":\"Ray\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2868\"},\"glyph\":{\"id\":\"2869\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2871\"},\"nonselection_glyph\":{\"id\":\"2870\"},\"view\":{\"id\":\"2873\"}},\"id\":\"2872\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"angle\":{\"value\":3.141592653589793},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#d62628\"},\"line_width\":{\"value\":2},\"x\":{\"value\":22.0},\"y\":{\"value\":0}},\"id\":\"2871\",\"type\":\"Ray\"},{\"attributes\":{\"line_color\":{\"value\":\"#d62628\"},\"line_width\":{\"value\":2},\"x\":{\"value\":815.0},\"y\":{\"value\":1}},\"id\":\"2875\",\"type\":\"Ray\"},{\"attributes\":{\"source\":{\"id\":\"2868\"}},\"id\":\"2873\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"3029\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data\":{},\"selected\":{\"id\":\"3048\"},\"selection_policy\":{\"id\":\"3047\"}},\"id\":\"2874\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"angle\":{\"value\":3.141592653589793},\"line_color\":{\"value\":\"#1f77b3\"},\"line_width\":{\"value\":2},\"x\":{\"value\":473.0},\"y\":{\"value\":0}},\"id\":\"2815\",\"type\":\"Ray\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2874\"},\"glyph\":{\"id\":\"2875\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2877\"},\"nonselection_glyph\":{\"id\":\"2876\"},\"view\":{\"id\":\"2879\"}},\"id\":\"2878\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"3030\",\"type\":\"Selection\"},{\"attributes\":{\"source\":{\"id\":\"2874\"}},\"id\":\"2879\",\"type\":\"CDSView\"},{\"attributes\":{\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#d62628\"},\"line_width\":{\"value\":2},\"x\":{\"value\":815.0},\"y\":{\"value\":1}},\"id\":\"2877\",\"type\":\"Ray\"},{\"attributes\":{},\"id\":\"3039\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"3040\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"3041\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"3031\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"3042\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"3032\",\"type\":\"Selection\"},{\"attributes\":{\"angle\":{\"value\":3.141592653589793},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b3\"},\"line_width\":{\"value\":2},\"x\":{\"value\":473.0},\"y\":{\"value\":0}},\"id\":\"2816\",\"type\":\"Ray\"},{\"attributes\":{\"line_color\":\"#1f77b3\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2809\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"3033\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"3043\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"3034\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"3044\",\"type\":\"Selection\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"AAAAAACQfUAAAAAAAJB9QAAAAAAA0H5AAAAAAADQfkAAAAAAAGCBQAAAAAAAYIFAAAAAAAA4iEAAAAAAADiIQAAAAAAA1JJAAAAAAADUkkAAAAAAAGCTQAAAAAAAYJNAAAAAAAAIlEAAAAAAAAiUQAAAAAAAbJRAAAAAAABslEAAAAAAAByYQAAAAAAAHJhAAAAAAAAkmEAAAAAAACSYQAAAAAAAUJhAAAAAAABQmEAAAAAAAHCaQAAAAAAAcJpAAAAAAABEm0AAAAAAAESbQAAAAAAAjJ1AAAAAAACMnUAAAAAAAKSdQAAAAAAApJ1AAAAAAAAgnkAAAAAAACCeQAAAAAAAwJ9AAAAAAADAn0AAAAAAAMihQAAAAAAAyKFAAAAAAAC+o0AAAAAAAL6jQAAAAAAAoqRAAAAAAACipEA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[40]},\"y\":{\"__ndarray__\":\"AAAAAAAAAACamZmZmZmpP5qZmZmZmak/mpmZmZmZuT+amZmZmZm5PzMzMzMzM8M/MzMzMzMzwz+amZmZmZnJP5qZmZmZmck/AAAAAAAA0D8AAAAAAADQPzMzMzMzM9M/MzMzMzMz0z9mZmZmZmbWP2ZmZmZmZtY/mpmZmZmZ2T+amZmZmZnZP83MzMzMzNw/zczMzMzM3D8AAAAAAADgPwAAAAAAAOA/mpmZmZmZ4T+amZmZmZnhPzMzMzMzM+M/MzMzMzMz4z/NzMzMzMzkP83MzMzMzOQ/ZmZmZmZm5j9mZmZmZmbmPwAAAAAAAOg/AAAAAAAA6D+amZmZmZnpP5qZmZmZmek/MzMzMzMz6z8zMzMzMzPrP83MzMzMzOw/zczMzMzM7D9mZmZmZmbuP2ZmZmZmZu4/AAAAAAAA8D8=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[40]}},\"selected\":{\"id\":\"3026\"},\"selection_policy\":{\"id\":\"3025\"}},\"id\":\"2808\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"3045\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"3035\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"3046\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"3036\",\"type\":\"Selection\"},{\"attributes\":{\"line_color\":\"#2ba02b\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2845\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"3047\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"3037\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"3048\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"3038\",\"type\":\"Selection\"}],\"root_ids\":[\"2777\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.2\"}};\n", " const render_items = [{\"docid\":\"90883935-b0b5-4695-85ff-82b7892e49ca\",\"root_ids\":[\"2777\"],\"roots\":{\"2777\":\"f07e1c72-3128-4bcc-ac05-de0040a4904e\"}}];\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": "2777" } }, "output_type": "display_data" } ], "source": [ "p = iqplot.ecdf(\n", " data=df,\n", " q=\"impact force (mN)\",\n", " cats=\"ID\",\n", " style=\"staircase\",\n", ")\n", "\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is still plotting all of your data. The concave corners of the staircase correspond to the measured data. This can be seen by overlaying the \"dot\" version of the ECDFs." ] }, { "cell_type": "code", "execution_count": 15, "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 = {\"02518782-ddc4-4309-a60e-74e3aca1cad2\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"2786\"}],\"center\":[{\"id\":\"2789\"},{\"id\":\"2793\"}],\"frame_height\":275,\"frame_width\":375,\"left\":[{\"id\":\"2790\"}],\"renderers\":[{\"id\":\"2812\"},{\"id\":\"2818\"},{\"id\":\"2824\"},{\"id\":\"2830\"},{\"id\":\"2836\"},{\"id\":\"2842\"},{\"id\":\"2848\"},{\"id\":\"2854\"},{\"id\":\"2860\"},{\"id\":\"2866\"},{\"id\":\"2872\"},{\"id\":\"2878\"},{\"id\":\"3220\"},{\"id\":\"3394\"},{\"id\":\"3570\"},{\"id\":\"3748\"}],\"right\":[{\"id\":\"2880\"}],\"title\":{\"id\":\"3017\"},\"toolbar\":{\"id\":\"2801\"},\"toolbar_location\":\"above\",\"x_range\":{\"id\":\"2778\"},\"x_scale\":{\"id\":\"2782\"},\"y_range\":{\"id\":\"2780\"},\"y_scale\":{\"id\":\"2784\"}},\"id\":\"2777\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"AAAAAACgbkAAAAAAAKBuQAAAAAAA0HBAAAAAAADQcEAAAAAAAJByQAAAAAAAkHJAAAAAAABwdEAAAAAAAHB0QAAAAAAA8HdAAAAAAADwd0AAAAAAADB7QAAAAAAAMHtAAAAAAACQfEAAAAAAAJB8QAAAAAAAGIBAAAAAAAAYgEAAAAAAAIiAQAAAAAAAiIBAAAAAAADogEAAAAAAAOiAQAAAAAAA6IJAAAAAAADogkAAAAAAAKCDQAAAAAAAoINAAAAAAAD4hUAAAAAAAPiFQAAAAAAA0IZAAAAAAADQhkAAAAAAAHiHQAAAAAAAeIdAAAAAAACQjUAAAAAAAJCNQAAAAAAAeJJAAAAAAAB4kkAAAAAAALSWQAAAAAAAtJZAAAAAAAAMmEAAAAAAAAyYQAAAAAAAMJlAAAAAAAAwmUA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[40]},\"y\":{\"__ndarray__\":\"AAAAAAAAAACamZmZmZmpP5qZmZmZmak/mpmZmZmZuT+amZmZmZm5PzMzMzMzM8M/MzMzMzMzwz+amZmZmZnJP5qZmZmZmck/AAAAAAAA0D8AAAAAAADQPzMzMzMzM9M/MzMzMzMz0z9mZmZmZmbWP2ZmZmZmZtY/mpmZmZmZ2T+amZmZmZnZP83MzMzMzNw/zczMzMzM3D8AAAAAAADgPwAAAAAAAOA/mpmZmZmZ4T+amZmZmZnhPzMzMzMzM+M/MzMzMzMz4z/NzMzMzMzkP83MzMzMzOQ/ZmZmZmZm5j9mZmZmZmbmPwAAAAAAAOg/AAAAAAAA6D+amZmZmZnpP5qZmZmZmek/MzMzMzMz6z8zMzMzMzPrP83MzMzMzOw/zczMzMzM7D9mZmZmZmbuP2ZmZmZmZu4/AAAAAAAA8D8=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[40]}},\"selected\":{\"id\":\"3032\"},\"selection_policy\":{\"id\":\"3031\"}},\"id\":\"2826\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"angle\":{\"value\":3.141592653589793},\"line_color\":{\"value\":\"#2ba02b\"},\"line_width\":{\"value\":2},\"x\":{\"value\":324.0},\"y\":{\"value\":0}},\"id\":\"2851\",\"type\":\"Ray\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2826\"},\"glyph\":{\"id\":\"2827\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2829\"},\"nonselection_glyph\":{\"id\":\"2828\"},\"view\":{\"id\":\"2831\"}},\"id\":\"2830\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"2844\"}},\"id\":\"2849\",\"type\":\"CDSView\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#2ba02b\"},\"line_width\":{\"value\":2},\"x\":{\"value\":806.0},\"y\":{\"value\":1}},\"id\":\"2858\",\"type\":\"Ray\"},{\"attributes\":{\"label\":{\"value\":\"II\"},\"renderers\":[{\"id\":\"2830\"}]},\"id\":\"2882\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"2780\",\"type\":\"DataRange1d\"},{\"attributes\":{\"data\":{},\"selected\":{\"id\":\"3034\"},\"selection_policy\":{\"id\":\"3033\"}},\"id\":\"2832\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_color\":\"#ff7e0e\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2827\",\"type\":\"Line\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"AAAAAABAdEAAAAAAAEB0QAAAAAAAEHhAAAAAAAAQeEAAAAAAABB5QAAAAAAAEHlAAAAAAADgeUAAAAAAAOB5QAAAAAAAoHxAAAAAAACgfEAAAAAAALB8QAAAAAAAsHxAAAAAAACAfkAAAAAAAIB+QAAAAAAAuIBAAAAAAAC4gEAAAAAAANCAQAAAAAAA0IBAAAAAAAAAgUAAAAAAAACBQAAAAAAAAIFAAAAAAAAAgUAAAAAAABiCQAAAAAAAGIJAAAAAAAAYg0AAAAAAABiDQAAAAAAAMINAAAAAAAAwg0AAAAAAADCDQAAAAAAAMINAAAAAAABog0AAAAAAAGiDQAAAAAAAkINAAAAAAACQg0AAAAAAAMiEQAAAAAAAyIRAAAAAAABAiEAAAAAAAECIQAAAAAAAMIlAAAAAAAAwiUA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[40]},\"y\":{\"__ndarray__\":\"AAAAAAAAAACamZmZmZmpP5qZmZmZmak/mpmZmZmZuT+amZmZmZm5PzMzMzMzM8M/MzMzMzMzwz+amZmZmZnJP5qZmZmZmck/AAAAAAAA0D8AAAAAAADQPzMzMzMzM9M/MzMzMzMz0z9mZmZmZmbWP2ZmZmZmZtY/mpmZmZmZ2T+amZmZmZnZP83MzMzMzNw/zczMzMzM3D8AAAAAAADgPwAAAAAAAOA/mpmZmZmZ4T+amZmZmZnhPzMzMzMzM+M/MzMzMzMz4z/NzMzMzMzkP83MzMzMzOQ/ZmZmZmZm5j9mZmZmZmbmPwAAAAAAAOg/AAAAAAAA6D+amZmZmZnpP5qZmZmZmek/MzMzMzMz6z8zMzMzMzPrP83MzMzMzOw/zczMzMzM7D9mZmZmZmbuP2ZmZmZmZu4/AAAAAAAA8D8=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[40]}},\"selected\":{\"id\":\"3038\"},\"selection_policy\":{\"id\":\"3037\"}},\"id\":\"2844\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data\":{},\"selected\":{\"id\":\"3028\"},\"selection_policy\":{\"id\":\"3027\"}},\"id\":\"2814\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"angle\":{\"value\":3.141592653589793},\"line_color\":{\"value\":\"#ff7e0e\"},\"line_width\":{\"value\":2},\"x\":{\"value\":245.0},\"y\":{\"value\":0}},\"id\":\"2833\",\"type\":\"Ray\"},{\"attributes\":{},\"id\":\"2795\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"2778\",\"type\":\"DataRange1d\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#1f77b3\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2811\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"2808\"}},\"id\":\"2813\",\"type\":\"CDSView\"},{\"attributes\":{\"axis\":{\"id\":\"2786\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"2789\",\"type\":\"Grid\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b3\"},\"line_width\":{\"value\":2},\"x\":{\"value\":2641.0},\"y\":{\"value\":1}},\"id\":\"2822\",\"type\":\"Ray\"},{\"attributes\":{},\"id\":\"2787\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"2784\",\"type\":\"LinearScale\"},{\"attributes\":{\"data\":{},\"selected\":{\"id\":\"3046\"},\"selection_policy\":{\"id\":\"3045\"}},\"id\":\"2868\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"2782\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis_label\":\"impact force (mN)\",\"coordinates\":null,\"formatter\":{\"id\":\"3023\"},\"group\":null,\"major_label_policy\":{\"id\":\"3024\"},\"ticker\":{\"id\":\"2787\"}},\"id\":\"2786\",\"type\":\"LinearAxis\"},{\"attributes\":{\"source\":{\"id\":\"2820\"}},\"id\":\"2825\",\"type\":\"CDSView\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2820\"},\"glyph\":{\"id\":\"2821\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2823\"},\"nonselection_glyph\":{\"id\":\"2822\"},\"view\":{\"id\":\"2825\"}},\"id\":\"2824\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"3020\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2844\"},\"glyph\":{\"id\":\"2845\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2847\"},\"nonselection_glyph\":{\"id\":\"2846\"},\"view\":{\"id\":\"2849\"}},\"id\":\"2848\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"axis_label\":\"ECDF\",\"coordinates\":null,\"formatter\":{\"id\":\"3020\"},\"group\":null,\"major_label_policy\":{\"id\":\"3021\"},\"ticker\":{\"id\":\"2791\"}},\"id\":\"2790\",\"type\":\"LinearAxis\"},{\"attributes\":{\"data\":{},\"selected\":{\"id\":\"3030\"},\"selection_policy\":{\"id\":\"3029\"}},\"id\":\"2820\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"3021\",\"type\":\"AllLabels\"},{\"attributes\":{\"axis\":{\"id\":\"2790\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"2793\",\"type\":\"Grid\"},{\"attributes\":{\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#1f77b3\"},\"line_width\":{\"value\":2},\"x\":{\"value\":2641.0},\"y\":{\"value\":1}},\"id\":\"2823\",\"type\":\"Ray\"},{\"attributes\":{},\"id\":\"2791\",\"type\":\"BasicTicker\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#ff7e0e\"},\"line_width\":{\"value\":2},\"x\":{\"value\":1612.0},\"y\":{\"value\":1}},\"id\":\"2840\",\"type\":\"Ray\"},{\"attributes\":{\"source\":{\"id\":\"2826\"}},\"id\":\"2831\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2799\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"2794\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"3023\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"angle\":{\"value\":3.141592653589793},\"line_color\":{\"value\":\"#d62628\"},\"line_width\":{\"value\":2},\"x\":{\"value\":22.0},\"y\":{\"value\":0}},\"id\":\"2869\",\"type\":\"Ray\"},{\"attributes\":{\"overlay\":{\"id\":\"2800\"}},\"id\":\"2796\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"2797\",\"type\":\"SaveTool\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#ff7e0e\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2829\",\"type\":\"Line\"},{\"attributes\":{\"fill_color\":{\"value\":\"#2ba02b\"},\"hatch_color\":{\"value\":\"#2ba02b\"},\"line_color\":{\"value\":\"#2ba02b\"},\"x\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"__ECDF\"}},\"id\":\"3567\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"2798\",\"type\":\"ResetTool\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2808\"},\"glyph\":{\"id\":\"2809\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2811\"},\"nonselection_glyph\":{\"id\":\"2810\"},\"view\":{\"id\":\"2813\"}},\"id\":\"2812\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#ff7e0e\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2828\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"3024\",\"type\":\"AllLabels\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b3\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2810\",\"type\":\"Line\"},{\"attributes\":{\"angle\":{\"value\":3.141592653589793},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#ff7e0e\"},\"line_width\":{\"value\":2},\"x\":{\"value\":245.0},\"y\":{\"value\":0}},\"id\":\"2834\",\"type\":\"Ray\"},{\"attributes\":{},\"id\":\"3920\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2832\"},\"glyph\":{\"id\":\"2833\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2835\"},\"nonselection_glyph\":{\"id\":\"2834\"},\"view\":{\"id\":\"2837\"}},\"id\":\"2836\",\"type\":\"GlyphRenderer\"},{\"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\":\"2800\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"angle\":{\"value\":3.141592653589793},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#ff7e0e\"},\"line_width\":{\"value\":2},\"x\":{\"value\":245.0},\"y\":{\"value\":0}},\"id\":\"2835\",\"type\":\"Ray\"},{\"attributes\":{\"line_color\":{\"value\":\"#ff7e0e\"},\"line_width\":{\"value\":2},\"x\":{\"value\":1612.0},\"y\":{\"value\":1}},\"id\":\"2839\",\"type\":\"Ray\"},{\"attributes\":{\"source\":{\"id\":\"2832\"}},\"id\":\"2837\",\"type\":\"CDSView\"},{\"attributes\":{\"data\":{},\"selected\":{\"id\":\"3036\"},\"selection_policy\":{\"id\":\"3035\"}},\"id\":\"2838\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"3921\",\"type\":\"Selection\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAANkAAAAAAAAA2QAAAAAAAgEJAAAAAAACAQkAAAAAAAMBhQAAAAAAAwGFAAAAAAACAZUAAAAAAAIBlQAAAAAAAwGhAAAAAAADAaEAAAAAAAMBoQAAAAAAAwGhAAAAAAAAQcUAAAAAAABBxQAAAAAAAMHZAAAAAAAAwdkAAAAAAACB5QAAAAAAAIHlAAAAAAABQfEAAAAAAAFB8QAAAAAAAQH1AAAAAAABAfUAAAAAAAGB/QAAAAAAAYH9AAAAAAAAggEAAAAAAACCAQAAAAAAAMIJAAAAAAAAwgkAAAAAAAKiCQAAAAAAAqIJAAAAAAADogkAAAAAAAOiCQAAAAAAAMINAAAAAAAAwg0AAAAAAADiGQAAAAAAAOIZAAAAAAACAhkAAAAAAAICGQAAAAAAAeIlAAAAAAAB4iUA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[40]},\"y\":{\"__ndarray__\":\"AAAAAAAAAACamZmZmZmpP5qZmZmZmak/mpmZmZmZuT+amZmZmZm5PzMzMzMzM8M/MzMzMzMzwz+amZmZmZnJP5qZmZmZmck/AAAAAAAA0D8AAAAAAADQPzMzMzMzM9M/MzMzMzMz0z9mZmZmZmbWP2ZmZmZmZtY/mpmZmZmZ2T+amZmZmZnZP83MzMzMzNw/zczMzMzM3D8AAAAAAADgPwAAAAAAAOA/mpmZmZmZ4T+amZmZmZnhPzMzMzMzM+M/MzMzMzMz4z/NzMzMzMzkP83MzMzMzOQ/ZmZmZmZm5j9mZmZmZmbmPwAAAAAAAOg/AAAAAAAA6D+amZmZmZnpP5qZmZmZmek/MzMzMzMz6z8zMzMzMzPrP83MzMzMzOw/zczMzMzM7D9mZmZmZmbuP2ZmZmZmZu4/AAAAAAAA8D8=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[40]}},\"selected\":{\"id\":\"3044\"},\"selection_policy\":{\"id\":\"3043\"}},\"id\":\"2862\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#2ba02b\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2846\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"2838\"}},\"id\":\"2843\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"3025\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2838\"},\"glyph\":{\"id\":\"2839\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2841\"},\"nonselection_glyph\":{\"id\":\"2840\"},\"view\":{\"id\":\"2843\"}},\"id\":\"2842\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_color\":\"#d62628\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2863\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#ff7e0e\"},\"line_width\":{\"value\":2},\"x\":{\"value\":1612.0},\"y\":{\"value\":1}},\"id\":\"2841\",\"type\":\"Ray\"},{\"attributes\":{\"label\":{\"value\":\"IV\"},\"renderers\":[{\"id\":\"2866\"}]},\"id\":\"2884\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"3026\",\"type\":\"Selection\"},{\"attributes\":{\"angle\":{\"value\":3.141592653589793},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#2ba02b\"},\"line_width\":{\"value\":2},\"x\":{\"value\":324.0},\"y\":{\"value\":0}},\"id\":\"2852\",\"type\":\"Ray\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#2ba02b\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2847\",\"type\":\"Line\"},{\"attributes\":{\"label\":{\"value\":\"I\"},\"renderers\":[{\"id\":\"2812\"}]},\"id\":\"2881\",\"type\":\"LegendItem\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2850\"},\"glyph\":{\"id\":\"2851\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2853\"},\"nonselection_glyph\":{\"id\":\"2852\"},\"view\":{\"id\":\"2855\"}},\"id\":\"2854\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"angle\":{\"value\":3.141592653589793},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#1f77b3\"},\"line_width\":{\"value\":2},\"x\":{\"value\":473.0},\"y\":{\"value\":0}},\"id\":\"2817\",\"type\":\"Ray\"},{\"attributes\":{\"data\":{},\"selected\":{\"id\":\"3040\"},\"selection_policy\":{\"id\":\"3039\"}},\"id\":\"2850\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"source\":{\"id\":\"2814\"}},\"id\":\"2819\",\"type\":\"CDSView\"},{\"attributes\":{\"angle\":{\"value\":3.141592653589793},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#2ba02b\"},\"line_width\":{\"value\":2},\"x\":{\"value\":324.0},\"y\":{\"value\":0}},\"id\":\"2853\",\"type\":\"Ray\"},{\"attributes\":{\"line_color\":{\"value\":\"#1f77b3\"},\"line_width\":{\"value\":2},\"x\":{\"value\":2641.0},\"y\":{\"value\":1}},\"id\":\"2821\",\"type\":\"Ray\"},{\"attributes\":{\"line_color\":{\"value\":\"#2ba02b\"},\"line_width\":{\"value\":2},\"x\":{\"value\":806.0},\"y\":{\"value\":1}},\"id\":\"2857\",\"type\":\"Ray\"},{\"attributes\":{\"click_policy\":\"hide\",\"coordinates\":null,\"group\":null,\"items\":[{\"id\":\"2881\"},{\"id\":\"2882\"},{\"id\":\"2883\"},{\"id\":\"2884\"}],\"location\":\"center\"},\"id\":\"2880\",\"type\":\"Legend\"},{\"attributes\":{\"source\":{\"id\":\"2850\"}},\"id\":\"2855\",\"type\":\"CDSView\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#d62628\"},\"hatch_alpha\":{\"value\":0.1},\"hatch_color\":{\"value\":\"#d62628\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#d62628\"},\"x\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"__ECDF\"}},\"id\":\"3746\",\"type\":\"Circle\"},{\"attributes\":{\"data\":{},\"selected\":{\"id\":\"3042\"},\"selection_policy\":{\"id\":\"3041\"}},\"id\":\"2856\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"3027\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"source\":{\"id\":\"2856\"}},\"id\":\"2861\",\"type\":\"CDSView\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2856\"},\"glyph\":{\"id\":\"2857\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2859\"},\"nonselection_glyph\":{\"id\":\"2858\"},\"view\":{\"id\":\"2861\"}},\"id\":\"2860\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"3743\"},\"glyph\":{\"id\":\"3745\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"3747\"},\"nonselection_glyph\":{\"id\":\"3746\"},\"view\":{\"id\":\"3749\"}},\"id\":\"3748\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#d62628\"},\"line_width\":{\"value\":2},\"x\":{\"value\":815.0},\"y\":{\"value\":1}},\"id\":\"2876\",\"type\":\"Ray\"},{\"attributes\":{},\"id\":\"3028\",\"type\":\"Selection\"},{\"attributes\":{\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#2ba02b\"},\"line_width\":{\"value\":2},\"x\":{\"value\":806.0},\"y\":{\"value\":1}},\"id\":\"2859\",\"type\":\"Ray\"},{\"attributes\":{},\"id\":\"3386\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"source\":{\"id\":\"2862\"}},\"id\":\"2867\",\"type\":\"CDSView\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2862\"},\"glyph\":{\"id\":\"2863\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2865\"},\"nonselection_glyph\":{\"id\":\"2864\"},\"view\":{\"id\":\"2867\"}},\"id\":\"2866\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"coordinates\":null,\"group\":null},\"id\":\"3017\",\"type\":\"Title\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2814\"},\"glyph\":{\"id\":\"2815\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2817\"},\"nonselection_glyph\":{\"id\":\"2816\"},\"view\":{\"id\":\"2819\"}},\"id\":\"2818\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"tools\":[{\"id\":\"2794\"},{\"id\":\"2795\"},{\"id\":\"2796\"},{\"id\":\"2797\"},{\"id\":\"2798\"},{\"id\":\"2799\"}]},\"id\":\"2801\",\"type\":\"Toolbar\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#d62628\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2865\",\"type\":\"Line\"},{\"attributes\":{\"label\":{\"value\":\"III\"},\"renderers\":[{\"id\":\"2848\"}]},\"id\":\"2883\",\"type\":\"LegendItem\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#d62628\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2864\",\"type\":\"Line\"},{\"attributes\":{\"angle\":{\"value\":3.141592653589793},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#d62628\"},\"line_width\":{\"value\":2},\"x\":{\"value\":22.0},\"y\":{\"value\":0}},\"id\":\"2870\",\"type\":\"Ray\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2868\"},\"glyph\":{\"id\":\"2869\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2871\"},\"nonselection_glyph\":{\"id\":\"2870\"},\"view\":{\"id\":\"2873\"}},\"id\":\"2872\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"angle\":{\"value\":3.141592653589793},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#d62628\"},\"line_width\":{\"value\":2},\"x\":{\"value\":22.0},\"y\":{\"value\":0}},\"id\":\"2871\",\"type\":\"Ray\"},{\"attributes\":{\"line_color\":{\"value\":\"#d62628\"},\"line_width\":{\"value\":2},\"x\":{\"value\":815.0},\"y\":{\"value\":1}},\"id\":\"2875\",\"type\":\"Ray\"},{\"attributes\":{},\"id\":\"3387\",\"type\":\"Selection\"},{\"attributes\":{\"source\":{\"id\":\"2868\"}},\"id\":\"2873\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"3029\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"source\":{\"id\":\"3743\"}},\"id\":\"3749\",\"type\":\"CDSView\"},{\"attributes\":{\"data\":{},\"selected\":{\"id\":\"3048\"},\"selection_policy\":{\"id\":\"3047\"}},\"id\":\"2874\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"angle\":{\"value\":3.141592653589793},\"line_color\":{\"value\":\"#1f77b3\"},\"line_width\":{\"value\":2},\"x\":{\"value\":473.0},\"y\":{\"value\":0}},\"id\":\"2815\",\"type\":\"Ray\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2874\"},\"glyph\":{\"id\":\"2875\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2877\"},\"nonselection_glyph\":{\"id\":\"2876\"},\"view\":{\"id\":\"2879\"}},\"id\":\"2878\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#d62628\"},\"hatch_alpha\":{\"value\":0.2},\"hatch_color\":{\"value\":\"#d62628\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#d62628\"},\"x\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"__ECDF\"}},\"id\":\"3747\",\"type\":\"Circle\"},{\"attributes\":{\"source\":{\"id\":\"2874\"}},\"id\":\"2879\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"3030\",\"type\":\"Selection\"},{\"attributes\":{\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#d62628\"},\"line_width\":{\"value\":2},\"x\":{\"value\":815.0},\"y\":{\"value\":1}},\"id\":\"2877\",\"type\":\"Ray\"},{\"attributes\":{},\"id\":\"3039\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"fill_color\":{\"value\":\"#1f77b3\"},\"hatch_color\":{\"value\":\"#1f77b3\"},\"line_color\":{\"value\":\"#1f77b3\"},\"x\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"__ECDF\"}},\"id\":\"3217\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"3040\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"3041\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"3031\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"3042\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"3032\",\"type\":\"Selection\"},{\"attributes\":{\"fill_color\":{\"value\":\"#d62628\"},\"hatch_color\":{\"value\":\"#d62628\"},\"line_color\":{\"value\":\"#d62628\"},\"x\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"__ECDF\"}},\"id\":\"3745\",\"type\":\"Circle\"},{\"attributes\":{\"angle\":{\"value\":3.141592653589793},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b3\"},\"line_width\":{\"value\":2},\"x\":{\"value\":473.0},\"y\":{\"value\":0}},\"id\":\"2816\",\"type\":\"Ray\"},{\"attributes\":{},\"id\":\"3741\",\"type\":\"Selection\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#2ba02b\"},\"hatch_alpha\":{\"value\":0.2},\"hatch_color\":{\"value\":\"#2ba02b\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#2ba02b\"},\"x\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"__ECDF\"}},\"id\":\"3569\",\"type\":\"Circle\"},{\"attributes\":{\"source\":{\"id\":\"3565\"}},\"id\":\"3571\",\"type\":\"CDSView\"},{\"attributes\":{\"line_color\":\"#1f77b3\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2809\",\"type\":\"Line\"},{\"attributes\":{\"data\":{\"ID\":[\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\"],\"__ECDF\":{\"__ndarray__\":\"mpmZmZmZyT8zMzMzMzPDP5qZmZmZmbk/AAAAAAAA4D+amZmZmZnZP5qZmZmZmak/MzMzMzMz4z9mZmZmZmbWP2ZmZmZmZu4/ZmZmZmZm5j8AAAAAAADQPzMzMzMzM9M/AAAAAAAA6D/NzMzMzMzkPwAAAAAAAPA/zczMzMzM3D+amZmZmZnpP83MzMzMzOw/MzMzMzMz6z+amZmZmZnhPw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"__label\":[\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\",\"IV\"],\"adhesive force (mN)\":[-456,-193,-236,-225,-217,-161,-139,-264,-342,-231,-209,-292,-339,-371,-331,-302,-216,-163,-367,-218],\"adhesive force / body weight\":{\"__ndarray__\":\"MzMzMzMzC0AK16NwPQr3Pylcj8L1KPw/4XoUrkfh+j/D9Shcj8L5PzMzMzMzM/M/pHA9Ctej8D+F61G4HoX/P2ZmZmZmZgRAhetRuB6F+z/NzMzMzMz4P1yPwvUoXAFAPQrXo3A9BEAUrkfhehQGQMP1KFyPwgNAAAAAAAAAAkDD9Shcj8L5P1yPwvUoXPM/16NwPQrXBUAUrkfhehT6Pw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"adhesive impulse (N-s)\":{\"__ndarray__\":\"mpmZmZmZqb+q8dJNYhCovxBYObTIdr6/KVyPwvUovL9aZDvfT42Xvzm0yHa+n6q/YhBYObTItr97FK5H4XrEvyGwcmiR7cy/TDeJQWDloL+HFtnO91PDvxkEVg4tss2/lkOLbOf70b+q8dJNYhC4v4PAyqFFtrO/CKwcWmQ7v7+YbhKDwMrBvy2yne+nxsu/8tJNYhBYyb8IrBxaZDu/vw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"adhesive strength (Pa)\":[-3440,-3400,-4647,-1581,-1245,-2866,-2141,-2136,-2497,-3847,-1889,-2018,-1772,-4447,-2190,-2591,-1759,-1257,-2857,-1688],\"contact area with mucus / contact area without mucus\":{\"__ndarray__\":\"KVyPwvUo7D+PwvUoXI/qP0jhehSuR+E/uB6F61G43j9cj8L1KFzvP3sUrkfhepQ/H4XrUbge7T+PwvUoXI/SP4/C9Shcj+o/uB6F61G4nj/hehSuR+HqP65H4XoUru8/AAAAAAAA8D+4HoXrUbi+P7gehetRuOY/7FG4HoXrsT8AAAAAAADwPwrXo3A9Cu8/cT0K16Nw3T+F61G4HoXjPw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"contact area without mucus (mm2)\":[0,74,44,108,39,4,77,81,0,4,69,50,12,18,20,30,20,42,108,68],\"contact pressure (Pa)\":[1297,2498,735,3177,2037,397,7713,2205,5259,9705,1793,1369,3116,6184,5386,3446,4928,5498,4776,3617],\"date\":[\"2013_05_27\",\"2013_05_27\",\"2013_05_27\",\"2013_05_30\",\"2013_05_30\",\"2013_05_30\",\"2013_06_03\",\"2013_06_11\",\"2013_06_11\",\"2013_06_11\",\"2013_06_11\",\"2013_06_14\",\"2013_06_18\",\"2013_06_18\",\"2013_06_18\",\"2013_06_18\",\"2013_06_21\",\"2013_06_21\",\"2013_06_21\",\"2013_06_21\"],\"impact force (mN)\":[172,142,37,453,355,22,502,273,720,582,198,198,597,516,815,402,605,711,614,468],\"impact force / body weight\":{\"__ndarray__\":\"exSuR+F69D/NzMzMzMzwP+xRuB6F69E/9ihcj8L1CkAfhetRuB4FQMP1KFyPwsU/7FG4HoXrDUA9CtejcD0AQHE9CtejcBVAXI/C9ShcEUCF61G4HoX3P4XrUbgehfc/w/UoXI/CEUC4HoXrUbgOQEjhehSuRxhAAAAAAAAACEAAAAAAAAASQDMzMzMzMxVASOF6FK5HEkDXo3A9CtcLQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"impact time (ms)\":[26,20,55,38,31,33,74,26,27,33,23,6,29,31,34,38,39,76,33,36],\"index\":[60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79],\"time frog pulls on target (ms)\":[462,250,743,844,728,472,959,844,1515,279,1427,2874,4251,626,1254,986,1627,2021,1366,1269],\"total contact area (mm2)\":[133,57,51,142,174,56,65,124,137,60,110,145,191,83,151,117,123,129,128,129],\"trial number\":[2,3,4,1,2,3,1,1,2,3,4,1,1,2,3,4,1,2,3,4]},\"selected\":{\"id\":\"3921\"},\"selection_policy\":{\"id\":\"3920\"}},\"id\":\"3743\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"3033\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"3043\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"3389\"},\"glyph\":{\"id\":\"3391\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"3393\"},\"nonselection_glyph\":{\"id\":\"3392\"},\"view\":{\"id\":\"3395\"}},\"id\":\"3394\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"3034\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"3044\",\"type\":\"Selection\"},{\"attributes\":{\"source\":{\"id\":\"3389\"}},\"id\":\"3395\",\"type\":\"CDSView\"},{\"attributes\":{\"data\":{\"ID\":[\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\"],\"__ECDF\":{\"__ndarray__\":\"AAAAAAAA0D9mZmZmZmbuP83MzMzMzOQ/mpmZmZmZ4T+amZmZmZm5P83MzMzMzOw/MzMzMzMzwz+amZmZmZnpPwAAAAAAAPA/AAAAAAAA6D9mZmZmZmbmPwAAAAAAAOA/mpmZmZmZ2T8zMzMzMzPjP83MzMzMzNw/ZmZmZmZm1j+amZmZmZnJPzMzMzMzM+s/MzMzMzMz0z+amZmZmZmpPw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"__label\":[\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\",\"I\"],\"adhesive force (mN)\":[-785,-983,-850,-455,-974,-592,-512,-804,-690,-462,-766,-715,-613,-677,-528,-452,-430,-652,-692,-536],\"adhesive force / body weight\":{\"__ndarray__\":\"UrgehetR9D9xPQrXo3D5P+xRuB6F6/U/rkfhehSu5z8fhetRuB75P7gehetRuO4/j8L1KFyP6j/NzMzMzMz0P+xRuB6F6/E/AAAAAAAA6D/Xo3A9CtfzP2ZmZmZmZvI/rkfhehSu7z9xPQrXo3DxPzMzMzMzM+s/XI/C9Shc5z9mZmZmZmbmP83MzMzMzPA/7FG4HoXr8T/Xo3A9CtfrPw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"adhesive impulse (N-s)\":{\"__ndarray__\":\"j8L1KFyP0r9eukkMAivHv39qvHSTGMS/w/UoXI/Cxb/fT42XbhLbv7pJDAIrh8a/PQrXo3A90r89CtejcD3Sv2Q730+Nl86/y6FFtvP91L9SuB6F61HYv99PjZduEtO/+n5qvHST6L9zaJHtfD/dv2Q730+Nl9a//tR46SYx0L9Ei2zn+6nRv6abxCCwctC/fT81XrpJ1L+mm8QgsHLYvw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"adhesive strength (Pa)\":[-2030,-9695,-10239,-1381,-3975,-1737,-1427,-3266,-2568,-1733,-1879,-5064,-1348,-3636,-3453,-1557,-1677,-4425,-1901,-2073],\"contact area with mucus / contact area without mucus\":{\"__ndarray__\":\"PQrXo3A96j/sUbgeheuxP5qZmZmZmak/pHA9Ctej4D+4HoXrUbi+PxSuR+F6FOY/FK5H4XoU5j/sUbgehevRP8P1KFyPwsU/w/UoXI/C1T9xPQrXo3DtP+F6FK5H4co/mpmZmZmZ6T/Xo3A9CtfTP7gehetRuJ4/exSuR+F65D+kcD0K16PgPwrXo3A9Crc/7FG4HoXr0T9mZmZmZmbWPw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"contact area without mucus (mm2)\":[70,94,79,158,216,106,110,178,224,176,33,112,92,129,148,105,124,134,260,168],\"contact pressure (Pa)\":[3117,24923,21020,4718,2012,6676,1550,7832,9824,7122,4638,10947,2874,9089,10095,4419,3019,13784,3406,1830],\"date\":[\"2013_02_26\",\"2013_02_26\",\"2013_03_01\",\"2013_03_01\",\"2013_03_01\",\"2013_03_01\",\"2013_03_05\",\"2013_03_05\",\"2013_03_05\",\"2013_03_05\",\"2013_03_12\",\"2013_03_12\",\"2013_03_12\",\"2013_03_12\",\"2013_03_12\",\"2013_03_15\",\"2013_03_15\",\"2013_03_15\",\"2013_03_15\",\"2013_03_15\"],\"impact force (mN)\":[1205,2527,1745,1556,493,2276,556,1928,2641,1897,1891,1545,1307,1692,1543,1282,775,2032,1240,473],\"impact force / body weight\":{\"__ndarray__\":\"MzMzMzMz/z9SuB6F61EQQI/C9ShcjwZAFK5H4XoUBECamZmZmZnpP3E9CtejcA1AzczMzMzM7D/hehSuR+EIQBSuR+F6FBFAexSuR+F6CEB7FK5H4XoIQAAAAAAAAARA4XoUrkfhAEDXo3A9CtcFQOxRuB6F6wNAj8L1KFyPAEAAAAAAAAD0Pz0K16NwPQpAAAAAAAAAAEBSuB6F61HoPw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"impact time (ms)\":[46,44,34,41,36,31,43,46,50,41,40,48,29,31,38,31,34,60,34,40],\"index\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],\"time frog pulls on target (ms)\":[884,248,211,1025,499,969,835,508,491,839,1069,649,1845,917,750,785,837,486,906,1218],\"total contact area (mm2)\":[387,101,83,330,245,341,359,246,269,266,408,141,455,186,153,290,257,147,364,259],\"trial number\":[3,4,1,2,3,4,1,2,3,4,1,2,3,4,5,1,2,3,4,5]},\"selected\":{\"id\":\"3387\"},\"selection_policy\":{\"id\":\"3386\"}},\"id\":\"3215\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#ff7e0e\"},\"hatch_alpha\":{\"value\":0.1},\"hatch_color\":{\"value\":\"#ff7e0e\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#ff7e0e\"},\"x\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"__ECDF\"}},\"id\":\"3392\",\"type\":\"Circle\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#2ba02b\"},\"hatch_alpha\":{\"value\":0.1},\"hatch_color\":{\"value\":\"#2ba02b\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#2ba02b\"},\"x\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"__ECDF\"}},\"id\":\"3568\",\"type\":\"Circle\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#ff7e0e\"},\"hatch_alpha\":{\"value\":0.2},\"hatch_color\":{\"value\":\"#ff7e0e\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#ff7e0e\"},\"x\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"__ECDF\"}},\"id\":\"3393\",\"type\":\"Circle\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"AAAAAACQfUAAAAAAAJB9QAAAAAAA0H5AAAAAAADQfkAAAAAAAGCBQAAAAAAAYIFAAAAAAAA4iEAAAAAAADiIQAAAAAAA1JJAAAAAAADUkkAAAAAAAGCTQAAAAAAAYJNAAAAAAAAIlEAAAAAAAAiUQAAAAAAAbJRAAAAAAABslEAAAAAAAByYQAAAAAAAHJhAAAAAAAAkmEAAAAAAACSYQAAAAAAAUJhAAAAAAABQmEAAAAAAAHCaQAAAAAAAcJpAAAAAAABEm0AAAAAAAESbQAAAAAAAjJ1AAAAAAACMnUAAAAAAAKSdQAAAAAAApJ1AAAAAAAAgnkAAAAAAACCeQAAAAAAAwJ9AAAAAAADAn0AAAAAAAMihQAAAAAAAyKFAAAAAAAC+o0AAAAAAAL6jQAAAAAAAoqRAAAAAAACipEA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[40]},\"y\":{\"__ndarray__\":\"AAAAAAAAAACamZmZmZmpP5qZmZmZmak/mpmZmZmZuT+amZmZmZm5PzMzMzMzM8M/MzMzMzMzwz+amZmZmZnJP5qZmZmZmck/AAAAAAAA0D8AAAAAAADQPzMzMzMzM9M/MzMzMzMz0z9mZmZmZmbWP2ZmZmZmZtY/mpmZmZmZ2T+amZmZmZnZP83MzMzMzNw/zczMzMzM3D8AAAAAAADgPwAAAAAAAOA/mpmZmZmZ4T+amZmZmZnhPzMzMzMzM+M/MzMzMzMz4z/NzMzMzMzkP83MzMzMzOQ/ZmZmZmZm5j9mZmZmZmbmPwAAAAAAAOg/AAAAAAAA6D+amZmZmZnpP5qZmZmZmek/MzMzMzMz6z8zMzMzMzPrP83MzMzMzOw/zczMzMzM7D9mZmZmZmbuP2ZmZmZmZu4/AAAAAAAA8D8=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[40]}},\"selected\":{\"id\":\"3026\"},\"selection_policy\":{\"id\":\"3025\"}},\"id\":\"2808\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"3740\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data\":{\"ID\":[\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\"],\"__ECDF\":{\"__ndarray__\":\"AAAAAAAA8D+amZmZmZnhP5qZmZmZmck/mpmZmZmZ6T8AAAAAAADgP2ZmZmZmZu4/zczMzMzM3D8zMzMzMzPjP83MzMzMzOw/MzMzMzMzwz/NzMzMzMzkP5qZmZmZmbk/AAAAAAAA6D+amZmZmZmpPzMzMzMzM+s/mpmZmZmZ2T8zMzMzMzPTPwAAAAAAANA/ZmZmZmZm1j9mZmZmZmbmPw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"__label\":[\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\",\"II\"],\"adhesive force (mN)\":[-655,-292,-246,-245,-553,-664,-261,-691,-92,-566,-223,-512,-227,-573,-522,-599,-364,-469,-844,-648],\"adhesive force / body weight\":{\"__ndarray__\":\"pHA9Ctej+D8UrkfhehTmP4/C9Shcj+I/j8L1KFyP4j/NzMzMzMz0P/YoXI/C9fg/hetRuB6F4z8UrkfhehT6Pylcj8L1KMw/SOF6FK5H9T+kcD0K16PgPzMzMzMzM/M/9ihcj8L14D+amZmZmZn1P65H4XoUrvM/j8L1KFyP9j+F61G4HoXrP5qZmZmZmfE/16NwPQrX/z9SuB6F61H4Pw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"adhesive impulse (N-s)\":{\"__ndarray__\":\"pHA9Ctej2L83iUFg5dDSvz81XrpJDNK/w/UoXI/C1b/ZzvdT46Xbv1pkO99Pjae/5dAi2/l+2r+TGARWDi2yv/yp8dJNYoC/Gy/dJAaBtb+Nl24Sg8DKvylcj8L1KKy/ObTIdr6fmr+F61G4HoXLv2iR7Xw/Nb6/IbByaJHtzL81XrpJDALLv6RwPQrXo9C/y6FFtvP91L9g5dAi2/m+vw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"adhesive strength (Pa)\":[-1881,-1177,-1894,-2301,-2004,-7802,-803,-2860,-678,-4506,-942,-17652,-1101,-3014,-1860,-2757,-1927,-2129,-4925,-4573],\"contact area with mucus / contact area without mucus\":{\"__ndarray__\":\"uB6F61G47j/NzMzMzMzsP65H4XoUruc/UrgehetR6D8UrkfhehTuPwrXo3A9Cuc/zczMzMzM7D8K16NwPQrnPwAAAAAAAPA/CtejcD0K7z8K16NwPQrvP7gehetRuJ4/AAAAAAAA8D9SuB6F61HoPwAAAAAAAPA/AAAAAAAA8D/2KFyPwvXgP3E9CtejcOU/UrgehetR2D9mZmZmZmbmPw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"contact area without mucus (mm2)\":[15,24,34,26,16,24,33,67,0,4,8,28,0,46,0,0,89,72,106,43],\"contact pressure (Pa)\":[4633,2441,2517,8893,1959,18073,1627,2600,10645,2367,2972,9279,3647,1288,4213,2369,2302,1737,2665,5149],\"date\":[\"2013_03_19\",\"2013_03_19\",\"2013_03_19\",\"2013_03_19\",\"2013_03_21\",\"2013_03_21\",\"2013_03_21\",\"2013_03_21\",\"2013_03_25\",\"2013_03_25\",\"2013_03_25\",\"2013_03_25\",\"2013_03_28\",\"2013_03_28\",\"2013_04_03\",\"2013_04_03\",\"2013_04_08\",\"2013_04_08\",\"2013_04_08\",\"2013_04_12\"],\"impact force (mN)\":[1612,605,327,946,541,1539,529,628,1453,297,703,269,751,245,1182,515,435,383,457,730],\"impact force / body weight\":{\"__ndarray__\":\"UrgehetRDkC4HoXrUbj2P6RwPQrXo+g/16NwPQrXAUBSuB6F61H0P/YoXI/C9QxA16NwPQrX8z+uR+F6FK73P1yPwvUoXAtAZmZmZmZm5j9mZmZmZmb6Pylcj8L1KOQ/UrgehetR/D+PwvUoXI/iPz0K16NwPQZAXI/C9Shc8z9SuB6F61HwP83MzMzMzOw/SOF6FK5H8T+F61G4HoX7Pw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"impact time (ms)\":[18,55,51,59,33,43,28,31,72,42,33,57,39,21,28,29,26,31,15,42],\"index\":[20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],\"time frog pulls on target (ms)\":[3087,1261,1508,1841,3126,741,2482,998,1652,936,2152,189,1195,1466,1197,1486,1017,974,780,786],\"total contact area (mm2)\":[348,248,130,106,276,85,325,242,136,126,237,29,206,190,281,217,189,221,171,142],\"trial number\":[1,2,3,4,1,2,3,4,1,2,3,4,1,2,1,2,1,2,3,1]},\"selected\":{\"id\":\"3563\"},\"selection_policy\":{\"id\":\"3562\"}},\"id\":\"3389\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"3045\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"3035\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"3562\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"3565\"},\"glyph\":{\"id\":\"3567\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"3569\"},\"nonselection_glyph\":{\"id\":\"3568\"},\"view\":{\"id\":\"3571\"}},\"id\":\"3570\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"3046\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"3036\",\"type\":\"Selection\"},{\"attributes\":{\"line_color\":\"#2ba02b\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2845\",\"type\":\"Line\"},{\"attributes\":{\"data\":{\"ID\":[\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\"],\"__ECDF\":{\"__ndarray__\":\"ZmZmZmZm5j+amZmZmZnJP5qZmZmZmak/ZmZmZmZm7j/NzMzMzMzkPwAAAAAAAOA/zczMzMzM3D8zMzMzMzPjPwAAAAAAAPA/MzMzMzMz0z8AAAAAAADQPzMzMzMzM+s/mpmZmZmZ6T+amZmZmZnhP5qZmZmZmdk/mpmZmZmZuT8zMzMzMzPDPwAAAAAAAOg/zczMzMzM7D9mZmZmZmbWPw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"__label\":[\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\",\"III\"],\"adhesive force (mN)\":[-94,-163,-172,-225,-301,-93,-131,-289,-104,-229,-259,-231,-267,-178,-123,-151,-127,-372,-236,-390],\"adhesive force / body weight\":{\"__ndarray__\":\"UrgehetR6D/2KFyPwvX0PxSuR+F6FPY/9ihcj8L1/D9cj8L1KFwDQAAAAAAAAOg/zczMzMzM8D+kcD0K16MCQOF6FK5H4eo/mpmZmZmZ/T+kcD0K16MAQMP1KFyPwv0/H4XrUbgeAUDhehSuR+H2P65H4XoUru8/hetRuB6F8z9SuB6F61HwP+xRuB6F6wdAZmZmZmZm/j8fhetRuB4JQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"adhesive impulse (N-s)\":{\"__ndarray__\":\"/Knx0k1iUL/8qfHSTWKgv9NNYhBYObS/TDeJQWDlwL/Xo3A9CtfDvylcj8L1KLy/O99PjZduor/jpZvEILCyvylcj8L1KKy/8KfGSzeJwb+iRbbz/dTIvxsv3SQGgaW/BoGVQ4tsx7+cxCCwcmihvxkEVg4tsp2/y6FFtvP9tL+F61G4HoXLv+xRuB6F68G/aJHtfD81vr85tMh2vp/Kvw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"adhesive strength (Pa)\":[-967,-1507,-3149,-1818,-2354,-2181,-1005,-2555,-902,-2580,-2855,-2819,-2213,-9364,-5843,-4882,-896,-5136,-1834,-3492],\"contact area with mucus / contact area without mucus\":{\"__ndarray__\":\"j8L1KFyP6j8zMzMzMzPjP65H4XoUrtc/pHA9Ctej6D97FK5H4XqUP7gehetRuOY/AAAAAAAA8D+4HoXrUbjePx+F61G4HuU/ZmZmZmZm7j8zMzMzMzPDP3sUrkfheoQ/zczMzMzM7D+amZmZmZmpP5qZmZmZmak/uB6F61G4nj+F61G4HoXrP+F6FK5H4do/exSuR+F6xD/2KFyPwvXYPw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"contact area without mucus (mm2)\":[15,10,23,17,43,34,74,4,55,6,88,23,58,17,29,126,12,1,0,58],\"contact pressure (Pa)\":[6326,3824,5946,6272,4770,12699,4130,5110,6993,5165,5048,7633,5152,28641,25471,12409,2835,8475,5171,4376],\"date\":[\"2013_05_27\",\"2013_05_27\",\"2013_05_27\",\"2013_06_11\",\"2013_06_11\",\"2013_06_11\",\"2013_06_14\",\"2013_06_14\",\"2013_06_18\",\"2013_06_18\",\"2013_06_18\",\"2013_06_18\",\"2013_06_21\",\"2013_06_21\",\"2013_06_21\",\"2013_06_21\",\"2013_06_26\",\"2013_06_26\",\"2013_06_26\",\"2013_06_26\"],\"impact force (mN)\":[614,414,324,776,611,544,538,579,806,459,458,626,621,544,535,385,401,614,665,488],\"impact force / body weight\":{\"__ndarray__\":\"w/UoXI/CE0CkcD0K16MKQOF6FK5H4QRA9ihcj8L1GECkcD0K16MTQIXrUbgehRFASOF6FK5HEUCkcD0K16MSQPYoXI/C9RlAmpmZmZmZDUCF61G4HoUNQClcj8L1KBRA9ihcj8L1E0CF61G4HoURQDMzMzMzMxFAuB6F61G4CEDXo3A9CtcJQMP1KFyPwhNAZmZmZmZmFUBxPQrXo3APQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[20]},\"impact time (ms)\":[88,143,105,35,29,16,38,31,29,32,30,16,27,30,35,39,36,34,40,34],\"index\":[40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59],\"time frog pulls on target (ms)\":[683,245,619,1823,918,1351,1790,1006,883,1218,910,550,2081,376,289,607,2932,680,685,1308],\"total contact area (mm2)\":[97,108,55,124,128,43,130,113,115,89,91,82,120,19,21,31,142,72,129,112],\"trial number\":[1,2,3,1,2,3,1,2,1,2,3,4,1,2,3,4,1,2,3,4]},\"selected\":{\"id\":\"3741\"},\"selection_policy\":{\"id\":\"3740\"}},\"id\":\"3565\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"3563\",\"type\":\"Selection\"},{\"attributes\":{\"fill_color\":{\"value\":\"#ff7e0e\"},\"hatch_color\":{\"value\":\"#ff7e0e\"},\"line_color\":{\"value\":\"#ff7e0e\"},\"x\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"__ECDF\"}},\"id\":\"3391\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"3047\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"3037\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"3048\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"3038\",\"type\":\"Selection\"},{\"attributes\":{\"source\":{\"id\":\"3215\"}},\"id\":\"3221\",\"type\":\"CDSView\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#1f77b3\"},\"hatch_alpha\":{\"value\":0.2},\"hatch_color\":{\"value\":\"#1f77b3\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#1f77b3\"},\"x\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"__ECDF\"}},\"id\":\"3219\",\"type\":\"Circle\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b3\"},\"hatch_alpha\":{\"value\":0.1},\"hatch_color\":{\"value\":\"#1f77b3\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b3\"},\"x\":{\"field\":\"impact force (mN)\"},\"y\":{\"field\":\"__ECDF\"}},\"id\":\"3218\",\"type\":\"Circle\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"3215\"},\"glyph\":{\"id\":\"3217\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"3219\"},\"nonselection_glyph\":{\"id\":\"3218\"},\"view\":{\"id\":\"3221\"}},\"id\":\"3220\",\"type\":\"GlyphRenderer\"}],\"root_ids\":[\"2777\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.2\"}};\n", " const render_items = [{\"docid\":\"02518782-ddc4-4309-a60e-74e3aca1cad2\",\"root_ids\":[\"2777\"],\"roots\":{\"2777\":\"a88af95d-cd30-4f6c-ab5d-13639a1f22bc\"}}];\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": "2777" } }, "output_type": "display_data" } ], "source": [ "p = iqplot.ecdf(\n", " data=df,\n", " q=\"impact force (mN)\",\n", " cats=\"ID\",\n", " p=p,\n", " show_legend=False,\n", ")\n", "\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Don't make bar graphs\n", "\n", "Bar graphs, especially with error bars (in which case they are called dynamite plots), are typically awful. They are pervasive in biology papers. I have yet to find a single example where a bar graph is the best choice. Strip plots (with jitter) or even box plots, are more informative and almost always preferred. In fact, ECDFs are often better even than these. Here is a simple message:\n", "\n", "
\n", " \n", "Don't make bar graphs.\n", " \n", "
\n", "\n", "What should I do instead you ask? The answer is simple: **plot all of your data** when you can. If you can't, box plots are always better than bar graphs." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Computing environment" ] }, { "cell_type": "code", "execution_count": 16, "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", "numpy : 1.21.5\n", "pandas : 1.4.2\n", "bokeh : 2.4.2\n", "iqplot : 0.2.4\n", "jupyterlab: 3.3.2\n", "\n" ] } ], "source": [ "%load_ext watermark\n", "%watermark -v -p numpy,pandas,bokeh,iqplot,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 }