{ "cells": [ { "cell_type": "markdown", "id": "9a51a013-8798-4327-bd2b-5aaf0427cda4", "metadata": {}, "source": [ "# py-SMARTS" ] }, { "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", "\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": "11dd389c-401e-4636-a047-b18272ec67c8", "metadata": {}, "source": [ "## ReadTheDocs" ] }, { "cell_type": "code", "execution_count": 3, "id": "952b4d09-e858-4538-a5dd-dc14724b8df4", "metadata": {}, "outputs": [], "source": [ "df = utils.get_rtd_analytics_data('py-smarts')\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": "13dc41b1-e8b9-4fe4-8532-7c625ea1d158", "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 = {\"b54e095f-7632-44d9-9cee-218f9611616e\":{\"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\":{\"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\":{\"axis\":{\"id\":\"1014\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1016\",\"type\":\"Grid\"},{\"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\":{\"source\":{\"id\":\"1037\"}},\"id\":\"1043\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1051\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1010\",\"type\":\"CategoricalScale\"},{\"attributes\":{},\"id\":\"1012\",\"type\":\"LinearScale\"},{\"attributes\":{\"data\":{\"Version\":[\"latest\"],\"Views\":[5],\"index\":[0]},\"selected\":{\"id\":\"1052\"},\"selection_policy\":{\"id\":\"1051\"}},\"id\":\"1037\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1052\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1008\",\"type\":\"DataRange1d\"},{\"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\":{\"coordinates\":null,\"group\":null,\"text\":\"Page views by RTD version (2022-09-01 to 2022-11-29)\"},\"id\":\"1004\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1015\",\"type\":\"CategoricalTicker\"},{\"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\":{\"factors\":[\"latest\"]},\"id\":\"1006\",\"type\":\"FactorRange\"},{\"attributes\":{},\"id\":\"1046\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1026\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"1025\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"1024\",\"type\":\"SaveTool\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.2},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"white\"},\"top\":{\"field\":\"Views\"},\"width\":{\"value\":0.75},\"x\":{\"field\":\"Version\"}},\"id\":\"1041\",\"type\":\"VBar\"},{\"attributes\":{\"overlay\":{\"id\":\"1027\"}},\"id\":\"1023\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1021\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"1022\",\"type\":\"WheelZoomTool\"},{\"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\":{},\"id\":\"1047\",\"type\":\"AllLabels\"},{\"attributes\":{\"callback\":null,\"tooltips\":[[\"Version\",\"@Version\"],[\"Views\",\"@Views\"]]},\"id\":\"1028\",\"type\":\"HoverTool\"},{\"attributes\":{},\"id\":\"1049\",\"type\":\"CategoricalTickFormatter\"},{\"attributes\":{},\"id\":\"1018\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis\":{\"id\":\"1017\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"1020\",\"type\":\"Grid\"},{\"attributes\":{\"fill_color\":{\"value\":\"#1f77b4\"},\"line_color\":{\"value\":\"white\"},\"top\":{\"field\":\"Views\"},\"width\":{\"value\":0.75},\"x\":{\"field\":\"Version\"}},\"id\":\"1039\",\"type\":\"VBar\"},{\"attributes\":{\"tools\":[{\"id\":\"1021\"},{\"id\":\"1022\"},{\"id\":\"1023\"},{\"id\":\"1024\"},{\"id\":\"1025\"},{\"id\":\"1026\"},{\"id\":\"1028\"}]},\"id\":\"1029\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"1050\",\"type\":\"AllLabels\"}],\"root_ids\":[\"1003\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.3\"}};\n", " const render_items = [{\"docid\":\"b54e095f-7632-44d9-9cee-218f9611616e\",\"root_ids\":[\"1003\"],\"roots\":{\"1003\":\"db594e38-95b4-44f0-8a33-9cb3f83163ff\"}}];\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": "5822541d-31a7-404a-914a-ecf00a9719a7", "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 = {\"109b5d2b-44c0-40da-91c1-10c1db5a9087\":{\"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\":{},\"id\":\"1152\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"months\":[0,6]},\"id\":\"1165\",\"type\":\"MonthsTicker\"},{\"attributes\":{\"coordinates\":null,\"formatter\":{\"id\":\"1150\"},\"group\":null,\"major_label_policy\":{\"id\":\"1151\"},\"ticker\":{\"id\":\"1116\"}},\"id\":\"1115\",\"type\":\"DatetimeAxis\"},{\"attributes\":{},\"id\":\"1166\",\"type\":\"YearsTicker\"},{\"attributes\":{},\"id\":\"1153\",\"type\":\"Selection\"},{\"attributes\":{\"months\":[0,4,8]},\"id\":\"1164\",\"type\":\"MonthsTicker\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1140\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1141\",\"type\":\"Line\"},{\"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\":{\"source\":{\"id\":\"1139\"}},\"id\":\"1144\",\"type\":\"CDSView\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1142\",\"type\":\"Line\"},{\"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\":{\"coordinates\":null,\"group\":null,\"items\":[{\"id\":\"1168\"}]},\"id\":\"1167\",\"type\":\"Legend\"},{\"attributes\":{\"axis\":{\"id\":\"1119\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"1122\",\"type\":\"Grid\"},{\"attributes\":{\"days\":[1,8,15,22]},\"id\":\"1160\",\"type\":\"DaysTicker\"},{\"attributes\":{},\"id\":\"1120\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1113\",\"type\":\"LinearScale\"},{\"attributes\":{\"tools\":[{\"id\":\"1123\"},{\"id\":\"1124\"},{\"id\":\"1125\"},{\"id\":\"1126\"},{\"id\":\"1127\"},{\"id\":\"1128\"},{\"id\":\"1137\"}]},\"id\":\"1130\",\"type\":\"Toolbar\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"Daily views by RTD version\"},\"id\":\"1105\",\"type\":\"Title\"},{\"attributes\":{\"axis\":{\"id\":\"1115\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1118\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1128\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"1147\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1124\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"1148\",\"type\":\"AllLabels\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"AAAAj2UveEIAAMD0ty94QgAAgFoKMHhCAABAwFwweEIAAAAmrzB4QgAAwIsBMXhCAACA8VMxeEIAAEBXpjF4QgAAAL34MXhCAADAIksyeEIAAICInTJ4QgAAQO7vMnhCAAAAVEIzeEIAAMC5lDN4QgAAgB/nM3hCAABAhTk0eEIAAADrizR4QgAAwFDeNHhCAACAtjA1eEIAAEAcgzV4QgAAAILVNXhCAADA5yc2eEIAAIBNejZ4QgAAQLPMNnhCAAAAGR83eEIAAMB+cTd4QgAAgOTDN3hCAABAShY4eEIAAACwaDh4QgAAwBW7OHhCAACAew05eEIAAEDhXzl4QgAAAEeyOXhCAADArAQ6eEIAAIASVzp4QgAAQHipOnhCAAAA3vs6eEIAAMBDTjt4QgAAgKmgO3hCAABAD/M7eEIAAAB1RTx4QgAAwNqXPHhCAACAQOo8eEIAAECmPD14QgAAAAyPPXhCAADAceE9eEIAAIDXMz54QgAAQD2GPnhCAAAAo9g+eEIAAMAIKz94QgAAgG59P3hCAABA1M8/eEIAAAA6IkB4QgAAwJ90QHhCAACABcdAeEIAAEBrGUF4QgAAANFrQXhCAADANr5BeEIAAICcEEJ4QgAAQAJjQnhCAAAAaLVCeEIAAMDNB0N4QgAAgDNaQ3hCAABAmaxDeEIAAAD//kN4QgAAwGRRRHhCAACAyqNEeEIAAEAw9kR4QgAAAJZIRXhCAADA+5pFeEIAAIBh7UV4QgAAQMc/RnhCAAAALZJGeEIAAMCS5EZ4QgAAgPg2R3hCAABAXolHeEIAAADE20d4QgAAwCkuSHhCAACAj4BIeEIAAED10kh4QgAAAFslSXhCAADAwHdJeEIAAIAmykl4QgAAQIwcSnhCAAAA8m5KeEIAAMBXwUp4QgAAgL0TS3hCAABAI2ZLeEIAAACJuEt4QgAAwO4KTHhC\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[90]},\"y\":[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]},\"selected\":{\"id\":\"1153\"},\"selection_policy\":{\"id\":\"1152\"}},\"id\":\"1139\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1126\",\"type\":\"SaveTool\"},{\"attributes\":{\"callback\":null,\"formatters\":{\"@x\":\"datetime\"},\"tooltips\":[[\"Date\",\"@x{%Y-%m-%d}\"],[\"Views\",\"@y\"]]},\"id\":\"1137\",\"type\":\"HoverTool\"},{\"attributes\":{},\"id\":\"1150\",\"type\":\"DatetimeTickFormatter\"},{\"attributes\":{\"overlay\":{\"id\":\"1129\"}},\"id\":\"1125\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"mantissas\":[1,2,5],\"max_interval\":500.0,\"num_minor_ticks\":0},\"id\":\"1155\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{},\"id\":\"1127\",\"type\":\"ResetTool\"},{\"attributes\":{\"label\":{\"value\":\"latest\"},\"renderers\":[{\"id\":\"1143\"}]},\"id\":\"1168\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"1123\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"1151\",\"type\":\"AllLabels\"},{\"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\":{\"months\":[0,1,2,3,4,5,6,7,8,9,10,11]},\"id\":\"1162\",\"type\":\"MonthsTicker\"},{\"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\":{\"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\":\"1107\",\"type\":\"DataRange1d\"},{\"attributes\":{\"months\":[0,2,4,6,8,10]},\"id\":\"1163\",\"type\":\"MonthsTicker\"},{\"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\"},{\"attributes\":{},\"id\":\"1109\",\"type\":\"DataRange1d\"},{\"attributes\":{\"days\":[1,15]},\"id\":\"1161\",\"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\":\"1158\",\"type\":\"DaysTicker\"},{\"attributes\":{\"days\":[1,4,7,10,13,16,19,22,25,28]},\"id\":\"1159\",\"type\":\"DaysTicker\"},{\"attributes\":{},\"id\":\"1111\",\"type\":\"LinearScale\"}],\"root_ids\":[\"1104\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.3\"}};\n", " const render_items = [{\"docid\":\"109b5d2b-44c0-40da-91c1-10c1db5a9087\",\"root_ids\":[\"1104\"],\"roots\":{\"1104\":\"184bb75c-3c9a-41db-bfbf-fc612a2c0af0\"}}];\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']].fillna(0)\n", "daily_views = daily_views.resample('d').sum()\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')\n", "p.yaxis.axis_label = 'Daily page views'\n", "show(p)" ] }, { "cell_type": "code", "execution_count": 6, "id": "c8ff8f63-726a-4c45-855c-0f268f72454e", "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": "c03ced61-75e9-4e63-a87a-07c27adf77b2", "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 = {\"476231fe-3243-4562-93c5-cc682ce68c58\":{\"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\"},\"x_range\":{\"id\":\"1314\"},\"x_scale\":{\"id\":\"1318\"},\"y_range\":{\"id\":\"1316\"},\"y_scale\":{\"id\":\"1320\"}},\"id\":\"1311\",\"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\":\"1335\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"1391\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"coordinates\":null,\"formatter\":{\"id\":\"1386\"},\"group\":null,\"major_label_policy\":{\"id\":\"1387\"},\"ticker\":{\"id\":\"1327\"}},\"id\":\"1326\",\"type\":\"CategoricalAxis\"},{\"attributes\":{},\"id\":\"1392\",\"type\":\"Selection\"},{\"attributes\":{\"axis\":{\"id\":\"1326\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"1328\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1327\",\"type\":\"CategoricalTicker\"},{\"attributes\":{},\"id\":\"1332\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1330\",\"type\":\"WheelZoomTool\"},{\"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\":{\"overlay\":{\"id\":\"1335\"}},\"id\":\"1331\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"factors\":[\"/index.html\",\"/genindex.html\",\"/search.html\"]},\"id\":\"1316\",\"type\":\"FactorRange\"},{\"attributes\":{\"data\":{\"Path\":[\"/index.html\",\"/genindex.html\",\"/search.html\"],\"Views\":[3,1,1],\"index\":[1,0,2]},\"selected\":{\"id\":\"1392\"},\"selection_policy\":{\"id\":\"1391\"}},\"id\":\"1345\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"source\":{\"id\":\"1345\"}},\"id\":\"1351\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1329\",\"type\":\"PanTool\"},{\"attributes\":{\"callback\":null,\"tooltips\":[[\"URL\",\"@Path\"],[\"Views\",\"@Views\"]]},\"id\":\"1336\",\"type\":\"HoverTool\"},{\"attributes\":{},\"id\":\"1386\",\"type\":\"CategoricalTickFormatter\"},{\"attributes\":{},\"id\":\"1387\",\"type\":\"AllLabels\"},{\"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\"},{\"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\":{},\"id\":\"1320\",\"type\":\"CategoricalScale\"},{\"attributes\":{},\"id\":\"1389\",\"type\":\"BasicTickFormatter\"},{\"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\":{\"fill_color\":{\"value\":\"#1f77b4\"},\"height\":{\"value\":0.75},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"Views\"},\"y\":{\"field\":\"Path\"}},\"id\":\"1347\",\"type\":\"HBar\"},{\"attributes\":{},\"id\":\"1323\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1390\",\"type\":\"AllLabels\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"Views by URL (2022-09-01 to 2022-11-29)\"},\"id\":\"1312\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1318\",\"type\":\"LinearScale\"},{\"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\":\"1334\",\"type\":\"HelpTool\"},{\"attributes\":{\"axis\":{\"id\":\"1322\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1325\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1314\",\"type\":\"DataRange1d\"}],\"root_ids\":[\"1311\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.3\"}};\n", " const render_items = [{\"docid\":\"476231fe-3243-4562-93c5-cc682ce68c58\",\"root_ids\":[\"1311\"],\"roots\":{\"1311\":\"8b68b685-8e02-45f7-861b-586a54a7fe4d\"}}];\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'], 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": "1db589f7-ccf2-435e-9d2d-409251dd9dc3", "metadata": {}, "source": [ "## GitHub" ] }, { "cell_type": "code", "execution_count": 8, "id": "0a7abd61-24ed-46e1-9686-4af7333fbf76", "metadata": {}, "outputs": [], "source": [ "gh = utils.get_github_stars('nrel/py-smarts')" ] }, { "cell_type": "code", "execution_count": 9, "id": "23ab6b53-3aa0-4912-a1e9-a72af06fa48e", "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 = {\"49389304-9339-4a08-a8fa-1179e85ab13b\":{\"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\":{\"axis_label\":\"Date\",\"coordinates\":null,\"formatter\":{\"id\":\"1531\"},\"group\":null,\"major_label_policy\":{\"id\":\"1532\"},\"ticker\":{\"id\":\"1454\"}},\"id\":\"1453\",\"type\":\"DatetimeAxis\"},{\"attributes\":{},\"id\":\"1529\",\"type\":\"AllLabels\"},{\"attributes\":{\"source\":{\"id\":\"1477\"}},\"id\":\"1482\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1461\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"1445\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1464\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1531\",\"type\":\"DatetimeTickFormatter\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1479\",\"type\":\"Line\"},{\"attributes\":{\"mantissas\":[1,2,5],\"max_interval\":500.0,\"num_minor_ticks\":0},\"id\":\"1536\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1480\",\"type\":\"Line\"},{\"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\":\"1532\",\"type\":\"AllLabels\"},{\"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\":{\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1478\",\"type\":\"Line\"},{\"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\":{\"coordinates\":null,\"group\":null},\"id\":\"1525\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1547\",\"type\":\"YearsTicker\"},{\"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\":{\"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\":{\"months\":[0,6]},\"id\":\"1546\",\"type\":\"MonthsTicker\"},{\"attributes\":{\"months\":[0,2,4,6,8,10]},\"id\":\"1544\",\"type\":\"MonthsTicker\"},{\"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\":{\"axis_label\":\"Total Stars\",\"coordinates\":null,\"formatter\":{\"id\":\"1528\"},\"group\":null,\"major_label_policy\":{\"id\":\"1529\"},\"ticker\":{\"id\":\"1458\"}},\"id\":\"1457\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1533\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1466\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"1451\",\"type\":\"LinearScale\"},{\"attributes\":{\"months\":[0,4,8]},\"id\":\"1545\",\"type\":\"MonthsTicker\"},{\"attributes\":{},\"id\":\"1458\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1534\",\"type\":\"Selection\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[765]},\"y\":{\"__ndarray__\":\"AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAYQAAAAAAAABhAAAAAAAAAGEAAAAAAAAAcQAAAAAAAABxA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[765]}},\"selected\":{\"id\":\"1534\"},\"selection_policy\":{\"id\":\"1533\"}},\"id\":\"1477\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"tools\":[{\"id\":\"1461\"},{\"id\":\"1462\"},{\"id\":\"1463\"},{\"id\":\"1464\"},{\"id\":\"1465\"},{\"id\":\"1466\"},{\"id\":\"1475\"}]},\"id\":\"1468\",\"type\":\"Toolbar\"},{\"attributes\":{\"overlay\":{\"id\":\"1467\"}},\"id\":\"1463\",\"type\":\"BoxZoomTool\"},{\"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\":{},\"id\":\"1447\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1465\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"1462\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"axis\":{\"id\":\"1457\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"1460\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1449\",\"type\":\"LinearScale\"},{\"attributes\":{\"callback\":null,\"formatters\":{\"@x\":\"datetime\"},\"tooltips\":[[\"Date\",\"@x{%Y-%m-%d}\"],[\"Total Stars\",\"@y\"]]},\"id\":\"1475\",\"type\":\"HoverTool\"},{\"attributes\":{\"axis\":{\"id\":\"1453\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1456\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1528\",\"type\":\"BasicTickFormatter\"}],\"root_ids\":[\"1444\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.3\"}};\n", " const render_items = [{\"docid\":\"49389304-9339-4a08-a8fa-1179e85ab13b\",\"root_ids\":[\"1444\"],\"roots\":{\"1444\":\"9a1a2fb0-552e-4d36-9b2f-ac45b3ad3179\"}}];\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": "f7caf372-3e08-41b6-be9a-b7592e1970cf", "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 = {\"46617f5e-42cc-4268-8047-716c98e27258\":{\"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\":{\"axis\":{\"id\":\"1672\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1675\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1670\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1775\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[751]},\"y\":{\"__ndarray__\":\"AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAABAAAAAAAAAAEA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[751]}},\"selected\":{\"id\":\"1776\"},\"selection_policy\":{\"id\":\"1775\"}},\"id\":\"1696\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1771\",\"type\":\"AllLabels\"},{\"attributes\":{\"axis_label\":\"Date\",\"coordinates\":null,\"formatter\":{\"id\":\"1773\"},\"group\":null,\"major_label_policy\":{\"id\":\"1774\"},\"ticker\":{\"id\":\"1673\"}},\"id\":\"1672\",\"type\":\"DatetimeAxis\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1699\",\"type\":\"Line\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1697\",\"type\":\"Line\"},{\"attributes\":{\"coordinates\":null,\"group\":null},\"id\":\"1767\",\"type\":\"Title\"},{\"attributes\":{\"overlay\":{\"id\":\"1686\"}},\"id\":\"1682\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1677\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1664\",\"type\":\"DataRange1d\"},{\"attributes\":{\"mantissas\":[1,2,5],\"max_interval\":500.0,\"num_minor_ticks\":0},\"id\":\"1778\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{},\"id\":\"1685\",\"type\":\"HelpTool\"},{\"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\":{\"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\":{},\"id\":\"1770\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1680\",\"type\":\"PanTool\"},{\"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\":{\"axis\":{\"id\":\"1676\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"1679\",\"type\":\"Grid\"},{\"attributes\":{\"months\":[0,1,2,3,4,5,6,7,8,9,10,11]},\"id\":\"1785\",\"type\":\"MonthsTicker\"},{\"attributes\":{\"days\":[1,15]},\"id\":\"1784\",\"type\":\"DaysTicker\"},{\"attributes\":{\"source\":{\"id\":\"1696\"}},\"id\":\"1701\",\"type\":\"CDSView\"},{\"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\":{},\"id\":\"1681\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"days\":[1,4,7,10,13,16,19,22,25,28]},\"id\":\"1782\",\"type\":\"DaysTicker\"},{\"attributes\":{\"days\":[1,8,15,22]},\"id\":\"1783\",\"type\":\"DaysTicker\"},{\"attributes\":{\"months\":[0,6]},\"id\":\"1788\",\"type\":\"MonthsTicker\"},{\"attributes\":{\"months\":[0,2,4,6,8,10]},\"id\":\"1786\",\"type\":\"MonthsTicker\"},{\"attributes\":{},\"id\":\"1773\",\"type\":\"DatetimeTickFormatter\"},{\"attributes\":{\"tools\":[{\"id\":\"1680\"},{\"id\":\"1681\"},{\"id\":\"1682\"},{\"id\":\"1683\"},{\"id\":\"1684\"},{\"id\":\"1685\"},{\"id\":\"1694\"}]},\"id\":\"1687\",\"type\":\"Toolbar\"},{\"attributes\":{\"months\":[0,4,8]},\"id\":\"1787\",\"type\":\"MonthsTicker\"},{\"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\":{},\"id\":\"1668\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1776\",\"type\":\"Selection\"},{\"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\":{},\"id\":\"1684\",\"type\":\"ResetTool\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1698\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1774\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"1666\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1683\",\"type\":\"SaveTool\"},{\"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\":{\"callback\":null,\"formatters\":{\"@x\":\"datetime\"},\"tooltips\":[[\"Date\",\"@x{%Y-%m-%d}\"],[\"Total Contributors\",\"@y\"]]},\"id\":\"1694\",\"type\":\"HoverTool\"}],\"root_ids\":[\"1663\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.3\"}};\n", " const render_items = [{\"docid\":\"46617f5e-42cc-4268-8047-716c98e27258\",\"root_ids\":[\"1663\"],\"roots\":{\"1663\":\"8a1d8d03-9fcd-46e2-bf8a-8cfba7823eb9\"}}];\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/py-smarts\")\n", "p = utils.plot_github_contributors_timeseries(contributor_ts)\n", "show(p)" ] }, { "cell_type": "code", "execution_count": 11, "id": "69f09810-84e3-4be5-89d2-d9a474ad6675", "metadata": {}, "outputs": [], "source": [ "contributors = utils.get_github_contributors('nrel/py-smarts')" ] }, { "cell_type": "code", "execution_count": 12, "id": "5cc17041-8a39-4afd-bbf8-0af7fd6b8020", "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": "dd54b334-62c7-4201-b9a2-5690fb43c3d7", "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 }