{ "cells": [ { "cell_type": "markdown", "id": "9a51a013-8798-4327-bd2b-5aaf0427cda4", "metadata": {}, "source": [ "# Panel-Segmentation" ] }, { "cell_type": "code", "execution_count": 1, "id": "50531b9f-821b-4f17-ae11-535b6241dee6", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\KANDERSO\\Software\\Anaconda3\\envs\\dev\\lib\\site-packages\\numpy\\_distributor_init.py:30: UserWarning: loaded more than 1 DLL from .libs:\n", "C:\\Users\\KANDERSO\\Software\\Anaconda3\\envs\\dev\\lib\\site-packages\\numpy\\.libs\\libopenblas.EL2C6PLE4ZYW3ECEVIV3OXXGRN2NRFM2.gfortran-win_amd64.dll\n", "C:\\Users\\KANDERSO\\Software\\Anaconda3\\envs\\dev\\lib\\site-packages\\numpy\\.libs\\libopenblas.FB5AE2TYXYH2IJRDKGDGQ3XBKLKTF43H.gfortran-win_amd64.dll\n", " warnings.warn(\"loaded more than 1 DLL from .libs:\"\n" ] } ], "source": [ "import utils\n", "import pandas as pd\n", "import numpy as np\n", "import datetime\n", "\n", "from bokeh.plotting import figure, show\n", "from bokeh.models import HoverTool\n", "from bokeh.transform import jitter\n", "from bokeh.io import output_notebook" ] }, { "cell_type": "code", "execution_count": 2, "id": "c987023b-ca0a-4ebf-9b9d-33793d3cf8f8", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " \n", " Loading BokehJS ...\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(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", " 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", " function run_callbacks() {\n", " try {\n", " root._bokeh_onload_callbacks.forEach(function(callback) {\n", " if (callback != null)\n", " callback();\n", " });\n", " } finally {\n", " delete root._bokeh_onload_callbacks\n", " }\n", " console.debug(\"Bokeh: all callbacks have finished\");\n", " }\n", "\n", " function load_libs(css_urls, js_urls, callback) {\n", " if (css_urls == null) css_urls = [];\n", " if (js_urls == null) js_urls = [];\n", "\n", " root._bokeh_onload_callbacks.push(callback);\n", " if (root._bokeh_is_loading > 0) {\n", " console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n", " return null;\n", " }\n", " if (js_urls == null || js_urls.length === 0) {\n", " run_callbacks();\n", " return null;\n", " }\n", " console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", " root._bokeh_is_loading = css_urls.length + js_urls.length;\n", "\n", " function on_load() {\n", " root._bokeh_is_loading--;\n", " if (root._bokeh_is_loading === 0) {\n", " console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n", " run_callbacks()\n", " }\n", " }\n", "\n", " function on_error(url) {\n", " console.error(\"failed to load \" + url);\n", " }\n", "\n", " for (let i = 0; i < css_urls.length; i++) {\n", " const url = css_urls[i];\n", " const element = document.createElement(\"link\");\n", " element.onload = on_load;\n", " element.onerror = on_error.bind(null, url);\n", " element.rel = \"stylesheet\";\n", " element.type = \"text/css\";\n", " element.href = url;\n", " console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n", " document.body.appendChild(element);\n", " }\n", "\n", " for (let i = 0; i < js_urls.length; i++) {\n", " const url = js_urls[i];\n", " const element = document.createElement('script');\n", " element.onload = on_load;\n", " element.onerror = on_error.bind(null, url);\n", " element.async = false;\n", " element.src = url;\n", " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", " document.head.appendChild(element);\n", " }\n", " };\n", "\n", " function inject_raw_css(css) {\n", " const element = document.createElement(\"style\");\n", " element.appendChild(document.createTextNode(css));\n", " document.body.appendChild(element);\n", " }\n", "\n", " const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-2.4.3.min.js\"];\n", " const css_urls = [];\n", "\n", " const inline_js = [ function(Bokeh) {\n", " Bokeh.set_log_level(\"info\");\n", " },\n", "function(Bokeh) {\n", " }\n", " ];\n", "\n", " function run_inline_js() {\n", " if (root.Bokeh !== undefined || force === true) {\n", " 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", " 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": "(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 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 function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-2.4.3.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\nif (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 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": [ "output_notebook()" ] }, { "cell_type": "markdown", "id": "4135857c-1ed8-4a5e-a240-4707fe72f21c", "metadata": {}, "source": [ "## ReadTheDocs" ] }, { "cell_type": "code", "execution_count": 3, "id": "6c7a30e9-97a4-4344-b832-ba526d2836e9", "metadata": {}, "outputs": [], "source": [ "df = utils.get_rtd_analytics_data('panel-segmentation')\n", "data_period = df['Date'].min().strftime('%Y-%m-%d') + ' to ' + df['Date'].max().strftime('%Y-%m-%d')" ] }, { "cell_type": "code", "execution_count": 4, "id": "60c947c9-f9c2-4ccf-b5e7-c9c9f3359e05", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " const docs_json = {\"4ec81b86-6a9c-4535-9afc-54df506f87de\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1014\"}],\"center\":[{\"id\":\"1016\"},{\"id\":\"1020\"}],\"height\":350,\"left\":[{\"id\":\"1017\"}],\"renderers\":[{\"id\":\"1042\"}],\"title\":{\"id\":\"1004\"},\"toolbar\":{\"id\":\"1029\"},\"x_range\":{\"id\":\"1006\"},\"x_scale\":{\"id\":\"1010\"},\"y_range\":{\"id\":\"1008\"},\"y_scale\":{\"id\":\"1012\"}},\"id\":\"1003\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.1},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"top\":{\"field\":\"Views\"},\"width\":{\"value\":0.75},\"x\":{\"field\":\"Version\"}},\"id\":\"1040\",\"type\":\"VBar\"},{\"attributes\":{\"callback\":null,\"tooltips\":[[\"Version\",\"@Version\"],[\"Views\",\"@Views\"]]},\"id\":\"1028\",\"type\":\"HoverTool\"},{\"attributes\":{},\"id\":\"1018\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis\":{\"id\":\"1017\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"1020\",\"type\":\"Grid\"},{\"attributes\":{\"source\":{\"id\":\"1037\"}},\"id\":\"1043\",\"type\":\"CDSView\"},{\"attributes\":{\"coordinates\":null,\"formatter\":{\"id\":\"1049\"},\"group\":null,\"major_label_orientation\":1.57,\"major_label_policy\":{\"id\":\"1050\"},\"ticker\":{\"id\":\"1015\"}},\"id\":\"1014\",\"type\":\"CategoricalAxis\"},{\"attributes\":{},\"id\":\"1051\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"axis\":{\"id\":\"1014\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1016\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1052\",\"type\":\"Selection\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1037\"},\"glyph\":{\"id\":\"1039\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1041\"},\"nonselection_glyph\":{\"id\":\"1040\"},\"view\":{\"id\":\"1043\"}},\"id\":\"1042\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1012\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis_label\":\"Total page views\",\"coordinates\":null,\"formatter\":{\"id\":\"1046\"},\"group\":null,\"major_label_policy\":{\"id\":\"1047\"},\"ticker\":{\"id\":\"1018\"}},\"id\":\"1017\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1026\",\"type\":\"HelpTool\"},{\"attributes\":{\"data\":{\"Version\":[\"latest\",\"stable\"],\"Views\":[27,13],\"index\":[0,1]},\"selected\":{\"id\":\"1052\"},\"selection_policy\":{\"id\":\"1051\"}},\"id\":\"1037\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"Page views by RTD version (2022-08-29 to 2022-12-23)\"},\"id\":\"1004\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1050\",\"type\":\"AllLabels\"},{\"attributes\":{\"tools\":[{\"id\":\"1021\"},{\"id\":\"1022\"},{\"id\":\"1023\"},{\"id\":\"1024\"},{\"id\":\"1025\"},{\"id\":\"1026\"},{\"id\":\"1028\"}]},\"id\":\"1029\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"1046\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.2},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"white\"},\"top\":{\"field\":\"Views\"},\"width\":{\"value\":0.75},\"x\":{\"field\":\"Version\"}},\"id\":\"1041\",\"type\":\"VBar\"},{\"attributes\":{\"factors\":[\"latest\",\"stable\"]},\"id\":\"1006\",\"type\":\"FactorRange\"},{\"attributes\":{},\"id\":\"1047\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"1010\",\"type\":\"CategoricalScale\"},{\"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\":\"1027\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"fill_color\":{\"value\":\"#1f77b4\"},\"line_color\":{\"value\":\"white\"},\"top\":{\"field\":\"Views\"},\"width\":{\"value\":0.75},\"x\":{\"field\":\"Version\"}},\"id\":\"1039\",\"type\":\"VBar\"},{\"attributes\":{},\"id\":\"1015\",\"type\":\"CategoricalTicker\"},{\"attributes\":{},\"id\":\"1049\",\"type\":\"CategoricalTickFormatter\"},{\"attributes\":{},\"id\":\"1008\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1025\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"1024\",\"type\":\"SaveTool\"},{\"attributes\":{\"overlay\":{\"id\":\"1027\"}},\"id\":\"1023\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1021\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"1022\",\"type\":\"WheelZoomTool\"}],\"root_ids\":[\"1003\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.3\"}};\n", " const render_items = [{\"docid\":\"4ec81b86-6a9c-4535-9afc-54df506f87de\",\"root_ids\":[\"1003\"],\"roots\":{\"1003\":\"688dc0bb-dde4-4ed5-9508-29cd93fd5fca\"}}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " let attempts = 0;\n", " const timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "1003" } }, "output_type": "display_data" } ], "source": [ "total_by_version = df.groupby('Version')['Views'].sum().reset_index()\n", "\n", "p = figure(x_range=total_by_version['Version'], height=350, tooltips=[(\"Version\", \"@Version\"), (\"Views\", \"@Views\")],\n", " title=f\"Page views by RTD version ({data_period})\",)\n", "p.vbar(x='Version', top='Views', width=0.75, source=total_by_version,\n", " line_color='white')\n", "p.xaxis.major_label_orientation = 3.14/2\n", "p.yaxis.axis_label = 'Total page views'\n", "show(p)" ] }, { "cell_type": "code", "execution_count": 5, "id": "2104961b-ff35-43b3-bf0b-dfdf7c932c55", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " const docs_json = {\"cd9434ef-cd66-4eb6-ba23-5047418d8cf5\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1115\"}],\"center\":[{\"id\":\"1118\"},{\"id\":\"1122\"},{\"id\":\"1167\"}],\"height\":350,\"left\":[{\"id\":\"1119\"}],\"renderers\":[{\"id\":\"1143\"}],\"title\":{\"id\":\"1105\"},\"toolbar\":{\"id\":\"1130\"},\"x_range\":{\"id\":\"1107\"},\"x_scale\":{\"id\":\"1111\"},\"y_range\":{\"id\":\"1109\"},\"y_scale\":{\"id\":\"1113\"}},\"id\":\"1104\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"label\":{\"value\":\"latest\"},\"renderers\":[{\"id\":\"1143\"}]},\"id\":\"1168\",\"type\":\"LegendItem\"},{\"attributes\":{\"mantissas\":[1,2,5],\"max_interval\":500.0,\"num_minor_ticks\":0},\"id\":\"1155\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{},\"id\":\"1127\",\"type\":\"ResetTool\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"AADAXW4ueEIAAIDDwC54QgAAQCkTL3hCAAAAj2UveEIAAMD0ty94QgAAgFoKMHhCAABAwFwweEIAAAAmrzB4QgAAwIsBMXhCAACA8VMxeEIAAEBXpjF4QgAAAL34MXhCAADAIksyeEIAAICInTJ4QgAAQO7vMnhCAAAAVEIzeEIAAMC5lDN4QgAAgB/nM3hCAABAhTk0eEIAAADrizR4QgAAwFDeNHhCAACAtjA1eEIAAEAcgzV4QgAAAILVNXhCAADA5yc2eEIAAIBNejZ4QgAAQLPMNnhCAAAAGR83eEIAAMB+cTd4QgAAgOTDN3hCAABAShY4eEIAAACwaDh4QgAAwBW7OHhCAACAew05eEIAAEDhXzl4QgAAAEeyOXhCAADArAQ6eEIAAIASVzp4QgAAQHipOnhCAAAA3vs6eEIAAMBDTjt4QgAAgKmgO3hCAABAD/M7eEIAAAB1RTx4QgAAwNqXPHhCAACAQOo8eEIAAECmPD14QgAAAAyPPXhCAADAceE9eEIAAIDXMz54QgAAQD2GPnhCAAAAo9g+eEIAAMAIKz94QgAAgG59P3hCAABA1M8/eEIAAAA6IkB4QgAAwJ90QHhCAACABcdAeEIAAEBrGUF4QgAAANFrQXhCAADANr5BeEIAAICcEEJ4QgAAQAJjQnhCAAAAaLVCeEIAAMDNB0N4QgAAgDNaQ3hCAABAmaxDeEIAAAD//kN4QgAAwGRRRHhCAACAyqNEeEIAAEAw9kR4QgAAAJZIRXhCAADA+5pFeEIAAIBh7UV4QgAAQMc/RnhCAAAALZJGeEIAAMCS5EZ4QgAAgPg2R3hCAABAXolHeEIAAADE20d4QgAAwCkuSHhCAACAj4BIeEIAAED10kh4QgAAAFslSXhCAADAwHdJeEIAAIAmykl4QgAAQIwcSnhCAAAA8m5KeEIAAMBXwUp4QgAAgL0TS3hCAABAI2ZLeEIAAACJuEt4QgAAwO4KTHhCAACAVF1MeEIAAEC6r0x4QgAAACACTXhCAADAhVRNeEIAAIDrpk14QgAAQFH5TXhCAAAAt0tOeEIAAMAcnk54QgAAgILwTnhCAABA6EJPeEIAAABOlU94QgAAwLPnT3hCAACAGTpQeEIAAEB/jFB4QgAAAOXeUHhCAADASjFReEIAAICwg1F4QgAAQBbWUXhCAAAAfChSeEIAAMDhelJ4QgAAgEfNUnhCAABArR9TeEIAAAATclN4QgAAwHjEU3hC\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[117]},\"y\":{\"__ndarray__\":\"AAAAAAAA8D8AAAAAAAAAAAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAAAAAAAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAAAAAAAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAAAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[117]}},\"selected\":{\"id\":\"1153\"},\"selection_policy\":{\"id\":\"1152\"}},\"id\":\"1139\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"base\":60,\"mantissas\":[1,2,5,10,15,20,30],\"max_interval\":1800000.0,\"min_interval\":1000.0,\"num_minor_ticks\":0},\"id\":\"1156\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{},\"id\":\"1107\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1166\",\"type\":\"YearsTicker\"},{\"attributes\":{},\"id\":\"1109\",\"type\":\"DataRange1d\"},{\"attributes\":{\"base\":24,\"mantissas\":[1,2,4,6,8,12],\"max_interval\":43200000.0,\"min_interval\":3600000.0,\"num_minor_ticks\":0},\"id\":\"1157\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{},\"id\":\"1111\",\"type\":\"LinearScale\"},{\"attributes\":{\"months\":[0,1,2,3,4,5,6,7,8,9,10,11]},\"id\":\"1162\",\"type\":\"MonthsTicker\"},{\"attributes\":{\"axis_label\":\"Daily page views\",\"coordinates\":null,\"formatter\":{\"id\":\"1147\"},\"group\":null,\"major_label_policy\":{\"id\":\"1148\"},\"ticker\":{\"id\":\"1120\"}},\"id\":\"1119\",\"type\":\"LinearAxis\"},{\"attributes\":{\"days\":[1,15]},\"id\":\"1161\",\"type\":\"DaysTicker\"},{\"attributes\":{\"coordinates\":null,\"formatter\":{\"id\":\"1150\"},\"group\":null,\"major_label_policy\":{\"id\":\"1151\"},\"ticker\":{\"id\":\"1116\"}},\"id\":\"1115\",\"type\":\"DatetimeAxis\"},{\"attributes\":{},\"id\":\"1120\",\"type\":\"BasicTicker\"},{\"attributes\":{\"days\":[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]},\"id\":\"1158\",\"type\":\"DaysTicker\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1139\"},\"glyph\":{\"id\":\"1140\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1142\"},\"nonselection_glyph\":{\"id\":\"1141\"},\"view\":{\"id\":\"1144\"}},\"id\":\"1143\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1113\",\"type\":\"LinearScale\"},{\"attributes\":{\"days\":[1,4,7,10,13,16,19,22,25,28]},\"id\":\"1159\",\"type\":\"DaysTicker\"},{\"attributes\":{\"days\":[1,8,15,22]},\"id\":\"1160\",\"type\":\"DaysTicker\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#ff7f0e\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1142\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#ff7f0e\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1141\",\"type\":\"Line\"},{\"attributes\":{\"months\":[0,6]},\"id\":\"1165\",\"type\":\"MonthsTicker\"},{\"attributes\":{\"axis\":{\"id\":\"1119\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"1122\",\"type\":\"Grid\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"items\":[{\"id\":\"1168\"}]},\"id\":\"1167\",\"type\":\"Legend\"},{\"attributes\":{\"source\":{\"id\":\"1139\"}},\"id\":\"1144\",\"type\":\"CDSView\"},{\"attributes\":{\"months\":[0,2,4,6,8,10]},\"id\":\"1163\",\"type\":\"MonthsTicker\"},{\"attributes\":{\"overlay\":{\"id\":\"1129\"}},\"id\":\"1125\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"months\":[0,4,8]},\"id\":\"1164\",\"type\":\"MonthsTicker\"},{\"attributes\":{},\"id\":\"1150\",\"type\":\"DatetimeTickFormatter\"},{\"attributes\":{\"line_color\":\"#ff7f0e\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1140\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"formatters\":{\"@x\":\"datetime\"},\"tooltips\":[[\"Date\",\"@x{%Y-%m-%d}\"],[\"Views\",\"@y\"]]},\"id\":\"1137\",\"type\":\"HoverTool\"},{\"attributes\":{},\"id\":\"1124\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"num_minor_ticks\":5,\"tickers\":[{\"id\":\"1155\"},{\"id\":\"1156\"},{\"id\":\"1157\"},{\"id\":\"1158\"},{\"id\":\"1159\"},{\"id\":\"1160\"},{\"id\":\"1161\"},{\"id\":\"1162\"},{\"id\":\"1163\"},{\"id\":\"1164\"},{\"id\":\"1165\"},{\"id\":\"1166\"}]},\"id\":\"1116\",\"type\":\"DatetimeTicker\"},{\"attributes\":{\"tools\":[{\"id\":\"1123\"},{\"id\":\"1124\"},{\"id\":\"1125\"},{\"id\":\"1126\"},{\"id\":\"1127\"},{\"id\":\"1128\"},{\"id\":\"1137\"}]},\"id\":\"1130\",\"type\":\"Toolbar\"},{\"attributes\":{\"axis\":{\"id\":\"1115\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1118\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1152\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1148\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"1151\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"1153\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1126\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1128\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"1147\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"Daily views by RTD version\"},\"id\":\"1105\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1123\",\"type\":\"PanTool\"},{\"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\":\"1129\",\"type\":\"BoxAnnotation\"}],\"root_ids\":[\"1104\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.3\"}};\n", " const render_items = [{\"docid\":\"cd9434ef-cd66-4eb6-ba23-5047418d8cf5\",\"root_ids\":[\"1104\"],\"roots\":{\"1104\":\"0122638d-c92d-4c07-9871-cf9a8ebfa1ec\"}}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " let attempts = 0;\n", " const timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "1104" } }, "output_type": "display_data" } ], "source": [ "daily_views = df.pivot_table(values='Views', index='Date', columns='Version', aggfunc='sum')[['latest']]\n", "daily_views = daily_views.reindex(pd.date_range(daily_views.index[0], daily_views.index[-1], freq='d')).fillna(0)\n", "\n", "p = figure(x_axis_type=\"datetime\", height=350, title=f\"Daily views by RTD version\")\n", "hover_tool = HoverTool(tooltips=[('Date', '@x{%Y-%m-%d}'), ('Views', '@y')],\n", " formatters={'@x': 'datetime'})\n", "hover_tool.point_policy = 'snap_to_data'\n", "p.add_tools(hover_tool)\n", "p.line(daily_views.index, daily_views['latest'], legend_label='latest', color='#ff7f0e')\n", "p.yaxis.axis_label = 'Daily page views'\n", "show(p)" ] }, { "cell_type": "code", "execution_count": 6, "id": "2413e533-b4fa-4b2b-b308-a4bd9a4254d0", "metadata": {}, "outputs": [], "source": [ "df2 = df.loc[df['Version'] == 'latest', :].copy()\n", "pathviews = df2.groupby('Path')['Views'].sum().reset_index()" ] }, { "cell_type": "code", "execution_count": 7, "id": "29f9acd5-f445-4aa9-a0c8-aa80b7af611d", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " const docs_json = {\"1bec0fc9-94a4-4fe9-81a7-642acdf8da29\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1322\"}],\"center\":[{\"id\":\"1325\"},{\"id\":\"1328\"}],\"height\":400,\"left\":[{\"id\":\"1326\"}],\"renderers\":[{\"id\":\"1350\"}],\"title\":{\"id\":\"1312\"},\"toolbar\":{\"id\":\"1337\"},\"width\":800,\"x_range\":{\"id\":\"1314\"},\"x_scale\":{\"id\":\"1318\"},\"y_range\":{\"id\":\"1316\"},\"y_scale\":{\"id\":\"1320\"}},\"id\":\"1311\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1390\",\"type\":\"AllLabels\"},{\"attributes\":{\"factors\":[\"/genindex.html\",\"/index.html\",\"/_modules/panel_segmentation/panel_detection.html\",\"/generated/panel_segmentation.panel_detection.PanelDetection.detectAzimuth.html\",\"/generated/panel_segmentation.panel_train.TrainPanelSegmentationModel.trainSegmentation.html\",\"/changelog.html\",\"/generated/panel_segmentation.panel_detection.PanelDetection.classifyMountingConfiguration.html\",\"/generated/panel_segmentation.panel_detection.PanelDetection.plotEdgeAz.html\",\"/generated/panel_segmentation.panel_detection.PanelDetection.runSiteAnalysisPipeline.html\",\"/generated/panel_segmentation.panel_detection.PanelDetection.testBatch.html\",\"/generated/panel_segmentation.panel_detection.PanelDetection.testSingle.html\",\"/generated/panel_segmentation.panel_train.TrainPanelSegmentationModel.diceCoeff.html\",\"/generated/panel_segmentation.panel_train.TrainPanelSegmentationModel.diceCoeffLoss.html\",\"/generated/panel_segmentation.panel_train.TrainPanelSegmentationModel.trainMountingConfigClassifier.html\",\"/getting_started.html\"]},\"id\":\"1316\",\"type\":\"FactorRange\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.1},\"height\":{\"value\":0.75},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"Views\"},\"y\":{\"field\":\"Path\"}},\"id\":\"1348\",\"type\":\"HBar\"},{\"attributes\":{\"axis_label\":\"Total page views\",\"coordinates\":null,\"formatter\":{\"id\":\"1389\"},\"group\":null,\"major_label_policy\":{\"id\":\"1390\"},\"ticker\":{\"id\":\"1323\"}},\"id\":\"1322\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1330\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"coordinates\":null,\"formatter\":{\"id\":\"1386\"},\"group\":null,\"major_label_policy\":{\"id\":\"1387\"},\"ticker\":{\"id\":\"1327\"}},\"id\":\"1326\",\"type\":\"CategoricalAxis\"},{\"attributes\":{},\"id\":\"1332\",\"type\":\"SaveTool\"},{\"attributes\":{\"tools\":[{\"id\":\"1329\"},{\"id\":\"1330\"},{\"id\":\"1331\"},{\"id\":\"1332\"},{\"id\":\"1333\"},{\"id\":\"1334\"},{\"id\":\"1336\"}]},\"id\":\"1337\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"1333\",\"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\":\"1335\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"1329\",\"type\":\"PanTool\"},{\"attributes\":{\"axis\":{\"id\":\"1326\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"1328\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1334\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"1327\",\"type\":\"CategoricalTicker\"},{\"attributes\":{},\"id\":\"1392\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1314\",\"type\":\"DataRange1d\"},{\"attributes\":{\"source\":{\"id\":\"1345\"}},\"id\":\"1351\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1320\",\"type\":\"CategoricalScale\"},{\"attributes\":{},\"id\":\"1389\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1387\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"1318\",\"type\":\"LinearScale\"},{\"attributes\":{\"overlay\":{\"id\":\"1335\"}},\"id\":\"1331\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"fill_color\":{\"value\":\"#1f77b4\"},\"height\":{\"value\":0.75},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"Views\"},\"y\":{\"field\":\"Path\"}},\"id\":\"1347\",\"type\":\"HBar\"},{\"attributes\":{},\"id\":\"1391\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data\":{\"Path\":[\"/genindex.html\",\"/index.html\",\"/_modules/panel_segmentation/panel_detection.html\",\"/generated/panel_segmentation.panel_detection.PanelDetection.detectAzimuth.html\",\"/generated/panel_segmentation.panel_train.TrainPanelSegmentationModel.trainSegmentation.html\",\"/changelog.html\",\"/generated/panel_segmentation.panel_detection.PanelDetection.classifyMountingConfiguration.html\",\"/generated/panel_segmentation.panel_detection.PanelDetection.plotEdgeAz.html\",\"/generated/panel_segmentation.panel_detection.PanelDetection.runSiteAnalysisPipeline.html\",\"/generated/panel_segmentation.panel_detection.PanelDetection.testBatch.html\",\"/generated/panel_segmentation.panel_detection.PanelDetection.testSingle.html\",\"/generated/panel_segmentation.panel_train.TrainPanelSegmentationModel.diceCoeff.html\",\"/generated/panel_segmentation.panel_train.TrainPanelSegmentationModel.diceCoeffLoss.html\",\"/generated/panel_segmentation.panel_train.TrainPanelSegmentationModel.trainMountingConfigClassifier.html\",\"/getting_started.html\"],\"Views\":[8,3,2,2,2,1,1,1,1,1,1,1,1,1,1],\"index\":[12,14,0,3,11,1,2,4,5,6,7,8,9,10,13]},\"selected\":{\"id\":\"1392\"},\"selection_policy\":{\"id\":\"1391\"}},\"id\":\"1345\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"callback\":null,\"tooltips\":[[\"URL\",\"@Path\"],[\"Views\",\"@Views\"]]},\"id\":\"1336\",\"type\":\"HoverTool\"},{\"attributes\":{},\"id\":\"1386\",\"type\":\"CategoricalTickFormatter\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"Views by URL (2022-08-29 to 2022-12-23)\"},\"id\":\"1312\",\"type\":\"Title\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1345\"},\"glyph\":{\"id\":\"1347\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1349\"},\"nonselection_glyph\":{\"id\":\"1348\"},\"view\":{\"id\":\"1351\"}},\"id\":\"1350\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1323\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis\":{\"id\":\"1322\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1325\",\"type\":\"Grid\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.2},\"height\":{\"value\":0.75},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"Views\"},\"y\":{\"field\":\"Path\"}},\"id\":\"1349\",\"type\":\"HBar\"}],\"root_ids\":[\"1311\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.3\"}};\n", " const render_items = [{\"docid\":\"1bec0fc9-94a4-4fe9-81a7-642acdf8da29\",\"root_ids\":[\"1311\"],\"roots\":{\"1311\":\"0c848a07-fa63-4d6d-b941-8556b0380dd4\"}}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " let attempts = 0;\n", " const timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "1311" } }, "output_type": "display_data" } ], "source": [ "subset = pathviews.sort_values('Views', ascending=False)\n", "p = figure(y_range=subset['Path'], width=800, height=400, tooltips=[(\"URL\", \"@Path\"), (\"Views\", \"@Views\")],\n", " title=f\"Views by URL ({data_period})\")\n", "p.hbar(y='Path', right='Views', source=subset, height=0.75,\n", " line_color='white')\n", "p.xaxis.axis_label = 'Total page views'\n", "show(p)" ] }, { "cell_type": "markdown", "id": "36152502-af52-4671-a952-bdc5fa2db99e", "metadata": {}, "source": [ "## GitHub" ] }, { "cell_type": "code", "execution_count": 8, "id": "0a7abd61-24ed-46e1-9686-4af7333fbf76", "metadata": {}, "outputs": [], "source": [ "gh = utils.get_github_stars('nrel/panel-segmentation')" ] }, { "cell_type": "code", "execution_count": 9, "id": "dd48ae8a-4dd0-4310-a8fd-da70dbe61c81", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " const docs_json = {\"df694639-f7a4-4a48-8354-78eae0767249\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1453\"}],\"center\":[{\"id\":\"1456\"},{\"id\":\"1460\"}],\"height\":350,\"left\":[{\"id\":\"1457\"}],\"renderers\":[{\"id\":\"1481\"}],\"title\":{\"id\":\"1525\"},\"toolbar\":{\"id\":\"1468\"},\"x_range\":{\"id\":\"1445\"},\"x_scale\":{\"id\":\"1449\"},\"y_range\":{\"id\":\"1447\"},\"y_scale\":{\"id\":\"1451\"}},\"id\":\"1444\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[698]},\"y\":{\"__ndarray__\":\"AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAcQAAAAAAAABxAAAAAAAAAHEAAAAAAAAAcQAAAAAAAABxAAAAAAAAAHEAAAAAAAAAcQAAAAAAAABxAAAAAAAAAHEAAAAAAAAAcQAAAAAAAABxAAAAAAAAAHEAAAAAAAAAcQAAAAAAAABxAAAAAAAAAIEAAAAAAAAAgQAAAAAAAACBAAAAAAAAAIEAAAAAAAAAgQAAAAAAAACBAAAAAAAAAIEAAAAAAAAAgQAAAAAAAACBAAAAAAAAAIEAAAAAAAAAgQAAAAAAAACBAAAAAAAAAIEAAAAAAAAAgQAAAAAAAACBAAAAAAAAAIEAAAAAAAAAgQAAAAAAAACBAAAAAAAAAIEAAAAAAAAAgQAAAAAAAACBAAAAAAAAAIEAAAAAAAAAgQAAAAAAAACBAAAAAAAAAIEAAAAAAAAAgQAAAAAAAACBAAAAAAAAAIEAAAAAAAAAgQAAAAAAAACBAAAAAAAAAIEAAAAAAAAAgQAAAAAAAACBAAAAAAAAAIEAAAAAAAAAgQAAAAAAAACBAAAAAAAAAIEAAAAAAAAAgQAAAAAAAACBAAAAAAAAAIEAAAAAAAAAgQAAAAAAAACBAAAAAAAAAIEAAAAAAAAAgQAAAAAAAACBAAAAAAAAAIEAAAAAAAAAgQAAAAAAAACBAAAAAAAAAIEAAAAAAAAAgQAAAAAAAACJAAAAAAAAAIkAAAAAAAAAiQAAAAAAAACRAAAAAAAAAJEAAAAAAAAAkQAAAAAAAACRAAAAAAAAAJEAAAAAAAAAkQAAAAAAAACRAAAAAAAAAJEAAAAAAAAAkQAAAAAAAACRAAAAAAAAAJEAAAAAAAAAkQAAAAAAAACRAAAAAAAAAJEAAAAAAAAAkQAAAAAAAACRAAAAAAAAAJEAAAAAAAAAkQAAAAAAAACRAAAAAAAAAJEAAAAAAAAAkQAAAAAAAACRAAAAAAAAAJEAAAAAAAAAkQAAAAAAAACRAAAAAAAAAJEAAAAAAAAAkQAAAAAAAACRAAAAAAAAAJEAAAAAAAAAkQAAAAAAAACRAAAAAAAAAJEAAAAAAAAAkQAAAAAAAACRAAAAAAAAAJEAAAAAAAAAkQAAAAAAAACRAAAAAAAAAJEAAAAAAAAAkQAAAAAAAACRAAAAAAAAAJEAAAAAAAAAkQAAAAAAAACRAAAAAAAAAJEAAAAAAAAAkQAAAAAAAACRAAAAAAAAAJEAAAAAAAAAkQAAAAAAAACRAAAAAAAAAJEAAAAAAAAAkQAAAAAAAACRAAAAAAAAAJEAAAAAAAAAkQAAAAAAAACRAAAAAAAAAJEAAAAAAAAAkQAAAAAAAACRAAAAAAAAAJEAAAAAAAAAkQAAAAAAAACRAAAAAAAAAJEAAAAAAAAAkQAAAAAAAACRAAAAAAAAAJEAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAKEAAAAAAAAAoQAAAAAAAAChAAAAAAAAAKEAAAAAAAAAoQAAAAAAAAChAAAAAAAAAKEAAAAAAAAAoQAAAAAAAAChAAAAAAAAAKkAAAAAAAAAqQAAAAAAAACpAAAAAAAAAKkAAAAAAAAAqQAAAAAAAACpAAAAAAAAAKkAAAAAAAAAqQAAAAAAAACpAAAAAAAAAKkAAAAAAAAAqQAAAAAAAACpAAAAAAAAAKkAAAAAAAAAqQAAAAAAAACpAAAAAAAAAKkAAAAAAAAAqQAAAAAAAACpAAAAAAAAAKkAAAAAAAAAqQAAAAAAAACpAAAAAAAAAKkAAAAAAAAAqQAAAAAAAACpAAAAAAAAAKkAAAAAAAAAqQAAAAAAAACpAAAAAAAAAKkAAAAAAAAAqQAAAAAAAACpAAAAAAAAAKkAAAAAAAAAqQAAAAAAAACpAAAAAAAAAKkAAAAAAAAAqQAAAAAAAACpAAAAAAAAAKkAAAAAAAAAqQAAAAAAAACpAAAAAAAAAKkAAAAAAAAAqQAAAAAAAACpAAAAAAAAAKkAAAAAAAAAqQAAAAAAAACpAAAAAAAAAKkAAAAAAAAAqQAAAAAAAACpAAAAAAAAAKkAAAAAAAAAqQAAAAAAAACpAAAAAAAAAKkAAAAAAAAAqQAAAAAAAACpAAAAAAAAAKkAAAAAAAAAqQAAAAAAAACpAAAAAAAAAKkAAAAAAAAAqQAAAAAAAACpAAAAAAAAAKkAAAAAAAAAqQAAAAAAAACpAAAAAAAAAKkAAAAAAAAAqQAAAAAAAACpAAAAAAAAAKkAAAAAAAAAqQAAAAAAAACpAAAAAAAAAKkAAAAAAAAAqQAAAAAAAACpAAAAAAAAAKkAAAAAAAAAqQAAAAAAAACpAAAAAAAAAKkAAAAAAAAAqQAAAAAAAACpAAAAAAAAAKkAAAAAAAAAqQAAAAAAAACpAAAAAAAAAKkAAAAAAAAAqQAAAAAAAACpAAAAAAAAAKkAAAAAAAAAqQAAAAAAAACpAAAAAAAAALEAAAAAAAAAsQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[698]}},\"selected\":{\"id\":\"1534\"},\"selection_policy\":{\"id\":\"1533\"}},\"id\":\"1477\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"overlay\":{\"id\":\"1467\"}},\"id\":\"1463\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1464\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1458\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis\":{\"id\":\"1453\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1456\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1462\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"1445\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1465\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"1528\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1461\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"1529\",\"type\":\"AllLabels\"},{\"attributes\":{\"num_minor_ticks\":5,\"tickers\":[{\"id\":\"1536\"},{\"id\":\"1537\"},{\"id\":\"1538\"},{\"id\":\"1539\"},{\"id\":\"1540\"},{\"id\":\"1541\"},{\"id\":\"1542\"},{\"id\":\"1543\"},{\"id\":\"1544\"},{\"id\":\"1545\"},{\"id\":\"1546\"},{\"id\":\"1547\"}]},\"id\":\"1454\",\"type\":\"DatetimeTicker\"},{\"attributes\":{},\"id\":\"1449\",\"type\":\"LinearScale\"},{\"attributes\":{\"source\":{\"id\":\"1477\"}},\"id\":\"1482\",\"type\":\"CDSView\"},{\"attributes\":{\"tools\":[{\"id\":\"1461\"},{\"id\":\"1462\"},{\"id\":\"1463\"},{\"id\":\"1464\"},{\"id\":\"1465\"},{\"id\":\"1466\"},{\"id\":\"1475\"}]},\"id\":\"1468\",\"type\":\"Toolbar\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1477\"},\"glyph\":{\"id\":\"1478\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1480\"},\"nonselection_glyph\":{\"id\":\"1479\"},\"view\":{\"id\":\"1482\"}},\"id\":\"1481\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1531\",\"type\":\"DatetimeTickFormatter\"},{\"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\":\"1467\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1479\",\"type\":\"Line\"},{\"attributes\":{\"axis_label\":\"Total Stars\",\"coordinates\":null,\"formatter\":{\"id\":\"1528\"},\"group\":null,\"major_label_policy\":{\"id\":\"1529\"},\"ticker\":{\"id\":\"1458\"}},\"id\":\"1457\",\"type\":\"LinearAxis\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1480\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1547\",\"type\":\"YearsTicker\"},{\"attributes\":{\"axis\":{\"id\":\"1457\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"1460\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1532\",\"type\":\"AllLabels\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1478\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1451\",\"type\":\"LinearScale\"},{\"attributes\":{\"months\":[0,1,2,3,4,5,6,7,8,9,10,11]},\"id\":\"1543\",\"type\":\"MonthsTicker\"},{\"attributes\":{\"days\":[1,15]},\"id\":\"1542\",\"type\":\"DaysTicker\"},{\"attributes\":{\"coordinates\":null,\"group\":null},\"id\":\"1525\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1466\",\"type\":\"HelpTool\"},{\"attributes\":{\"days\":[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]},\"id\":\"1539\",\"type\":\"DaysTicker\"},{\"attributes\":{\"days\":[1,4,7,10,13,16,19,22,25,28]},\"id\":\"1540\",\"type\":\"DaysTicker\"},{\"attributes\":{\"days\":[1,8,15,22]},\"id\":\"1541\",\"type\":\"DaysTicker\"},{\"attributes\":{\"callback\":null,\"formatters\":{\"@x\":\"datetime\"},\"tooltips\":[[\"Date\",\"@x{%Y-%m-%d}\"],[\"Total Stars\",\"@y\"]]},\"id\":\"1475\",\"type\":\"HoverTool\"},{\"attributes\":{\"months\":[0,6]},\"id\":\"1546\",\"type\":\"MonthsTicker\"},{\"attributes\":{\"axis_label\":\"Date\",\"coordinates\":null,\"formatter\":{\"id\":\"1531\"},\"group\":null,\"major_label_policy\":{\"id\":\"1532\"},\"ticker\":{\"id\":\"1454\"}},\"id\":\"1453\",\"type\":\"DatetimeAxis\"},{\"attributes\":{\"months\":[0,2,4,6,8,10]},\"id\":\"1544\",\"type\":\"MonthsTicker\"},{\"attributes\":{\"months\":[0,4,8]},\"id\":\"1545\",\"type\":\"MonthsTicker\"},{\"attributes\":{},\"id\":\"1533\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"base\":60,\"mantissas\":[1,2,5,10,15,20,30],\"max_interval\":1800000.0,\"min_interval\":1000.0,\"num_minor_ticks\":0},\"id\":\"1537\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{},\"id\":\"1534\",\"type\":\"Selection\"},{\"attributes\":{\"base\":24,\"mantissas\":[1,2,4,6,8,12],\"max_interval\":43200000.0,\"min_interval\":3600000.0,\"num_minor_ticks\":0},\"id\":\"1538\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{\"mantissas\":[1,2,5],\"max_interval\":500.0,\"num_minor_ticks\":0},\"id\":\"1536\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{},\"id\":\"1447\",\"type\":\"DataRange1d\"}],\"root_ids\":[\"1444\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.3\"}};\n", " const render_items = [{\"docid\":\"df694639-f7a4-4a48-8354-78eae0767249\",\"root_ids\":[\"1444\"],\"roots\":{\"1444\":\"a478e83e-4663-42c9-b1a2-f9961877a463\"}}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " let attempts = 0;\n", " const timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "1444" } }, "output_type": "display_data" } ], "source": [ "p = utils.plot_github_stars_timeseries(gh)\n", "show(p)" ] }, { "cell_type": "code", "execution_count": 10, "id": "04bc51f2-d16e-4b7e-a463-99d0fe64a67c", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " const docs_json = {\"76b8c1aa-fa15-4833-97f4-7c856f61d2b0\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1672\"}],\"center\":[{\"id\":\"1675\"},{\"id\":\"1679\"}],\"height\":350,\"left\":[{\"id\":\"1676\"}],\"renderers\":[{\"id\":\"1700\"}],\"title\":{\"id\":\"1767\"},\"toolbar\":{\"id\":\"1687\"},\"x_range\":{\"id\":\"1664\"},\"x_scale\":{\"id\":\"1668\"},\"y_range\":{\"id\":\"1666\"},\"y_scale\":{\"id\":\"1670\"}},\"id\":\"1663\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"callback\":null,\"formatters\":{\"@x\":\"datetime\"},\"tooltips\":[[\"Date\",\"@x{%Y-%m-%d}\"],[\"Total Contributors\",\"@y\"]]},\"id\":\"1694\",\"type\":\"HoverTool\"},{\"attributes\":{},\"id\":\"1770\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1681\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"1775\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"axis_label\":\"Date\",\"coordinates\":null,\"formatter\":{\"id\":\"1773\"},\"group\":null,\"major_label_policy\":{\"id\":\"1774\"},\"ticker\":{\"id\":\"1673\"}},\"id\":\"1672\",\"type\":\"DatetimeAxis\"},{\"attributes\":{},\"id\":\"1670\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1685\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"1776\",\"type\":\"Selection\"},{\"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\":\"1686\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1698\",\"type\":\"Line\"},{\"attributes\":{\"axis\":{\"id\":\"1672\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1675\",\"type\":\"Grid\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1699\",\"type\":\"Line\"},{\"attributes\":{\"mantissas\":[1,2,5],\"max_interval\":500.0,\"num_minor_ticks\":0},\"id\":\"1778\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{\"axis\":{\"id\":\"1676\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"1679\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1684\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"1664\",\"type\":\"DataRange1d\"},{\"attributes\":{\"base\":60,\"mantissas\":[1,2,5,10,15,20,30],\"max_interval\":1800000.0,\"min_interval\":1000.0,\"num_minor_ticks\":0},\"id\":\"1779\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{\"base\":24,\"mantissas\":[1,2,4,6,8,12],\"max_interval\":43200000.0,\"min_interval\":3600000.0,\"num_minor_ticks\":0},\"id\":\"1780\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{},\"id\":\"1789\",\"type\":\"YearsTicker\"},{\"attributes\":{\"overlay\":{\"id\":\"1686\"}},\"id\":\"1682\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"months\":[0,1,2,3,4,5,6,7,8,9,10,11]},\"id\":\"1785\",\"type\":\"MonthsTicker\"},{\"attributes\":{},\"id\":\"1773\",\"type\":\"DatetimeTickFormatter\"},{\"attributes\":{\"days\":[1,15]},\"id\":\"1784\",\"type\":\"DaysTicker\"},{\"attributes\":{\"days\":[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]},\"id\":\"1781\",\"type\":\"DaysTicker\"},{\"attributes\":{\"days\":[1,4,7,10,13,16,19,22,25,28]},\"id\":\"1782\",\"type\":\"DaysTicker\"},{\"attributes\":{},\"id\":\"1683\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1774\",\"type\":\"AllLabels\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[527]},\"y\":{\"__ndarray__\":\"AAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAFEAAAAAAAAAUQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[527]}},\"selected\":{\"id\":\"1776\"},\"selection_policy\":{\"id\":\"1775\"}},\"id\":\"1696\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"days\":[1,8,15,22]},\"id\":\"1783\",\"type\":\"DaysTicker\"},{\"attributes\":{},\"id\":\"1771\",\"type\":\"AllLabels\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1696\"},\"glyph\":{\"id\":\"1697\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1699\"},\"nonselection_glyph\":{\"id\":\"1698\"},\"view\":{\"id\":\"1701\"}},\"id\":\"1700\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"months\":[0,6]},\"id\":\"1788\",\"type\":\"MonthsTicker\"},{\"attributes\":{\"months\":[0,2,4,6,8,10]},\"id\":\"1786\",\"type\":\"MonthsTicker\"},{\"attributes\":{},\"id\":\"1668\",\"type\":\"LinearScale\"},{\"attributes\":{\"num_minor_ticks\":5,\"tickers\":[{\"id\":\"1778\"},{\"id\":\"1779\"},{\"id\":\"1780\"},{\"id\":\"1781\"},{\"id\":\"1782\"},{\"id\":\"1783\"},{\"id\":\"1784\"},{\"id\":\"1785\"},{\"id\":\"1786\"},{\"id\":\"1787\"},{\"id\":\"1788\"},{\"id\":\"1789\"}]},\"id\":\"1673\",\"type\":\"DatetimeTicker\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1697\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"1696\"}},\"id\":\"1701\",\"type\":\"CDSView\"},{\"attributes\":{\"months\":[0,4,8]},\"id\":\"1787\",\"type\":\"MonthsTicker\"},{\"attributes\":{},\"id\":\"1666\",\"type\":\"DataRange1d\"},{\"attributes\":{\"axis_label\":\"Total Contributors\",\"coordinates\":null,\"formatter\":{\"id\":\"1770\"},\"group\":null,\"major_label_policy\":{\"id\":\"1771\"},\"ticker\":{\"id\":\"1677\"}},\"id\":\"1676\",\"type\":\"LinearAxis\"},{\"attributes\":{\"coordinates\":null,\"group\":null},\"id\":\"1767\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1680\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"1677\",\"type\":\"BasicTicker\"},{\"attributes\":{\"tools\":[{\"id\":\"1680\"},{\"id\":\"1681\"},{\"id\":\"1682\"},{\"id\":\"1683\"},{\"id\":\"1684\"},{\"id\":\"1685\"},{\"id\":\"1694\"}]},\"id\":\"1687\",\"type\":\"Toolbar\"}],\"root_ids\":[\"1663\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.3\"}};\n", " const render_items = [{\"docid\":\"76b8c1aa-fa15-4833-97f4-7c856f61d2b0\",\"root_ids\":[\"1663\"],\"roots\":{\"1663\":\"377b8585-ad08-47c0-b741-8807e38f7f4a\"}}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " let attempts = 0;\n", " const timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "1663" } }, "output_type": "display_data" } ], "source": [ "contributor_ts, _ = utils.get_github_contributor_timeseries(\"nrel/panel-segmentation\")\n", "p = utils.plot_github_contributors_timeseries(contributor_ts)\n", "show(p)" ] }, { "cell_type": "code", "execution_count": 11, "id": "0af3555a-32a9-4b5f-a72c-1e4fe21928ec", "metadata": {}, "outputs": [], "source": [ "contributors = utils.get_github_contributors('nrel/panel-segmentation')" ] }, { "cell_type": "code", "execution_count": 12, "id": "16ed8a93-1084-49dc-8c7b-5165a23907f7", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mosaic = utils.make_github_contributors_mosaic(contributors)\n", "mosaic" ] }, { "cell_type": "code", "execution_count": null, "id": "4041cdd5-dcba-4f1b-8b85-04e8b13a3dc2", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "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": 5 }