{ "cells": [ { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "import utils\n", "\n", "from bokeh.plotting import figure, show\n", "from bokeh.models import HoverTool\n", "from bokeh.io import output_notebook" ] }, { "cell_type": "code", "execution_count": 15, "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\nconst 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(\"1954\");\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(\"1954\")).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "output_notebook()" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "project_name = \"solarfactors\"\n", "gh_project = \"pvlib/solarfactors\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## ReadTheDocs" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "df = utils.get_rtd_analytics_data(project_name)\n", "data_period = df['Date'].min().strftime('%Y-%m-%d') + ' to ' + df['Date'].max().strftime('%Y-%m-%d')" ] }, { "cell_type": "code", "execution_count": 18, "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 = {\"2f198d18-04c7-40e3-b607-d53b700398fe\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1966\"}],\"center\":[{\"id\":\"1968\"},{\"id\":\"1972\"}],\"height\":350,\"left\":[{\"id\":\"1969\"}],\"renderers\":[{\"id\":\"1994\"}],\"title\":{\"id\":\"1956\"},\"toolbar\":{\"id\":\"1981\"},\"x_range\":{\"id\":\"1958\"},\"x_scale\":{\"id\":\"1962\"},\"y_range\":{\"id\":\"1960\"},\"y_scale\":{\"id\":\"1964\"}},\"id\":\"1955\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1974\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"axis\":{\"id\":\"1969\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"1972\",\"type\":\"Grid\"},{\"attributes\":{\"fill_color\":{\"value\":\"#1f77b4\"},\"line_color\":{\"value\":\"white\"},\"top\":{\"field\":\"Views\"},\"width\":{\"value\":0.75},\"x\":{\"field\":\"Version\"}},\"id\":\"1991\",\"type\":\"VBar\"},{\"attributes\":{},\"id\":\"2093\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1964\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis\":{\"id\":\"1966\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1968\",\"type\":\"Grid\"},{\"attributes\":{\"factors\":[\"latest\",\"stable\"]},\"id\":\"1958\",\"type\":\"FactorRange\"},{\"attributes\":{\"overlay\":{\"id\":\"1979\"}},\"id\":\"1975\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1978\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"2092\",\"type\":\"AllLabels\"},{\"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\":\"1992\",\"type\":\"VBar\"},{\"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\":\"1979\",\"type\":\"BoxAnnotation\"},{\"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\":\"1993\",\"type\":\"VBar\"},{\"attributes\":{\"source\":{\"id\":\"1989\"}},\"id\":\"1995\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1977\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"2089\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"2094\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1973\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"1976\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"2091\",\"type\":\"CategoricalTickFormatter\"},{\"attributes\":{},\"id\":\"2088\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"Page views by RTD version (2024-04-02 to 2024-07-01)\"},\"id\":\"1956\",\"type\":\"Title\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1989\"},\"glyph\":{\"id\":\"1991\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1993\"},\"nonselection_glyph\":{\"id\":\"1992\"},\"view\":{\"id\":\"1995\"}},\"id\":\"1994\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"tools\":[{\"id\":\"1973\"},{\"id\":\"1974\"},{\"id\":\"1975\"},{\"id\":\"1976\"},{\"id\":\"1977\"},{\"id\":\"1978\"},{\"id\":\"1980\"}]},\"id\":\"1981\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"1967\",\"type\":\"CategoricalTicker\"},{\"attributes\":{\"data\":{\"Version\":[\"latest\",\"stable\"],\"Views\":[247,100],\"index\":[0,1]},\"selected\":{\"id\":\"2094\"},\"selection_policy\":{\"id\":\"2093\"}},\"id\":\"1989\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"callback\":null,\"tooltips\":[[\"Version\",\"@Version\"],[\"Views\",\"@Views\"]]},\"id\":\"1980\",\"type\":\"HoverTool\"},{\"attributes\":{},\"id\":\"1960\",\"type\":\"DataRange1d\"},{\"attributes\":{\"coordinates\":null,\"formatter\":{\"id\":\"2091\"},\"group\":null,\"major_label_orientation\":1.57,\"major_label_policy\":{\"id\":\"2092\"},\"ticker\":{\"id\":\"1967\"}},\"id\":\"1966\",\"type\":\"CategoricalAxis\"},{\"attributes\":{},\"id\":\"1970\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1962\",\"type\":\"CategoricalScale\"},{\"attributes\":{\"axis_label\":\"Total page views\",\"coordinates\":null,\"formatter\":{\"id\":\"2088\"},\"group\":null,\"major_label_policy\":{\"id\":\"2089\"},\"ticker\":{\"id\":\"1970\"}},\"id\":\"1969\",\"type\":\"LinearAxis\"}],\"root_ids\":[\"1955\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.3\"}};\n const render_items = [{\"docid\":\"2f198d18-04c7-40e3-b607-d53b700398fe\",\"root_ids\":[\"1955\"],\"roots\":{\"1955\":\"80ae41ad-f3b1-4bae-81ad-a00fdb2b0789\"}}];\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": "1955" } }, "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": 19, "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 = {\"5ddfb158-6265-46ab-9ea3-baac1f5136d9\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"2157\"}],\"center\":[{\"id\":\"2160\"},{\"id\":\"2164\"},{\"id\":\"2209\"}],\"height\":350,\"left\":[{\"id\":\"2161\"}],\"renderers\":[{\"id\":\"2185\"},{\"id\":\"2215\"}],\"title\":{\"id\":\"2147\"},\"toolbar\":{\"id\":\"2172\"},\"x_range\":{\"id\":\"2149\"},\"x_scale\":{\"id\":\"2153\"},\"y_range\":{\"id\":\"2151\"},\"y_scale\":{\"id\":\"2155\"}},\"id\":\"2146\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"axis\":{\"id\":\"2161\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"2164\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"2192\",\"type\":\"DatetimeTickFormatter\"},{\"attributes\":{},\"id\":\"2195\",\"type\":\"Selection\"},{\"attributes\":{\"source\":{\"id\":\"2181\"}},\"id\":\"2186\",\"type\":\"CDSView\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2182\",\"type\":\"Line\"},{\"attributes\":{\"days\":[1,4,7,10,13,16,19,22,25,28]},\"id\":\"2201\",\"type\":\"DaysTicker\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"Daily views by RTD version\"},\"id\":\"2147\",\"type\":\"Title\"},{\"attributes\":{\"tools\":[{\"id\":\"2165\"},{\"id\":\"2166\"},{\"id\":\"2167\"},{\"id\":\"2168\"},{\"id\":\"2169\"},{\"id\":\"2170\"},{\"id\":\"2179\"}]},\"id\":\"2172\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"2151\",\"type\":\"DataRange1d\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#ff7f0e\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2213\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2189\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"months\":[0,4,8]},\"id\":\"2206\",\"type\":\"MonthsTicker\"},{\"attributes\":{\"axis_label\":\"Daily page views\",\"coordinates\":null,\"formatter\":{\"id\":\"2189\"},\"group\":null,\"major_label_policy\":{\"id\":\"2190\"},\"ticker\":{\"id\":\"2162\"}},\"id\":\"2161\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2168\",\"type\":\"SaveTool\"},{\"attributes\":{\"mantissas\":[1,2,5],\"max_interval\":500.0,\"num_minor_ticks\":0},\"id\":\"2197\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{\"months\":[0,2,4,6,8,10]},\"id\":\"2205\",\"type\":\"MonthsTicker\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"AABAsMHpeEIAAAAWFOp4QgAAgOG46nhCAADAErDreEIAAIB4Aux4QgAAQN5U7HhCAAAARKfseEIAAMCp+ex4QgAAgA9M7XhCAAAA2/DteEIAAMBAQ+54QgAAQAzo7nhCAAAAcjrveEIAAMDXjO94QgAAQKMx8HhCAAAACYTweEIAAIDUKPF4QgAAQDp78XhCAAAAoM3xeEIAAMAFIPJ4QgAAADcX83hCAADAnGnzeEIAAIACvPN4QgAAQGgO9HhCAAAAzmD0eEIAAMAzs/R4QgAAgJkF9XhCAABA/1f1eEIAAABlqvV4QgAAwMr89XhCAACAME/2eEIAAECWofZ4QgAAAPzz9nhCAADAYUb3eEIAAIDHmPd4QgAAQC3r93hCAAAAkz34eEIAAIBe4vh4QgAAQMQ0+XhCAAAAKof5eEIAAMCP2fl4QgAAgPUr+nhCAABAW376eEIAAADB0Pp4QgAAQPLH+3hCAAAAWBr8eEIAAADvY/14QgAAwFS2/XhCAACAugj+eEIAAEAgW/54QgAAAIat/nhCAADA6//+eEIAAIBRUv94QgAAQLek/3hCAAAAHff/eEIAAMCCSQB5QgAAQE7uAHlCAACAf+UBeUIAAEDlNwJ5QgAAwLDcAnlCAACAFi8DeUIAAADi0wN5QgAAwEcmBHlCAABAE8sEeUIAAAB5HQV5QgAAwN5vBXlCAACARMIFeUIAAMB1uQZ5Qg==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[68]},\"y\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAAEAAAAAAAADwPwAAAAAAAAAAAAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAADwPwAAAAAAACBAAAAAAACARUAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAQQAAAAAAAACRAAAAAAAAA8D8AAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[68]}},\"selected\":{\"id\":\"2195\"},\"selection_policy\":{\"id\":\"2194\"}},\"id\":\"2181\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"2165\",\"type\":\"PanTool\"},{\"attributes\":{\"coordinates\":null,\"formatter\":{\"id\":\"2192\"},\"group\":null,\"major_label_policy\":{\"id\":\"2193\"},\"ticker\":{\"id\":\"2158\"}},\"id\":\"2157\",\"type\":\"DatetimeAxis\"},{\"attributes\":{\"days\":[1,8,15,22]},\"id\":\"2202\",\"type\":\"DaysTicker\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#ff7f0e\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2214\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2170\",\"type\":\"HelpTool\"},{\"attributes\":{\"callback\":null,\"formatters\":{\"@x\":\"datetime\"},\"tooltips\":[[\"Date\",\"@x{%Y-%m-%d}\"],[\"Views\",\"@y\"]]},\"id\":\"2179\",\"type\":\"HoverTool\"},{\"attributes\":{},\"id\":\"2193\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"2149\",\"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\":\"2198\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{},\"id\":\"2155\",\"type\":\"LinearScale\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2184\",\"type\":\"Line\"},{\"attributes\":{\"line_color\":\"#ff7f0e\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2212\",\"type\":\"Line\"},{\"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\":\"2171\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"2226\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"AABAsMHpeEIAAAAWFOp4QgAAgOG46nhCAADAErDreEIAAIB4Aux4QgAAQN5U7HhCAAAARKfseEIAAMCp+ex4QgAAgA9M7XhCAAAA2/DteEIAAMBAQ+54QgAAQAzo7nhCAAAAcjrveEIAAMDXjO94QgAAQKMx8HhCAAAACYTweEIAAIDUKPF4QgAAQDp78XhCAAAAoM3xeEIAAMAFIPJ4QgAAADcX83hCAADAnGnzeEIAAIACvPN4QgAAQGgO9HhCAAAAzmD0eEIAAMAzs/R4QgAAgJkF9XhCAABA/1f1eEIAAABlqvV4QgAAwMr89XhCAACAME/2eEIAAECWofZ4QgAAAPzz9nhCAADAYUb3eEIAAIDHmPd4QgAAQC3r93hCAAAAkz34eEIAAIBe4vh4QgAAQMQ0+XhCAAAAKof5eEIAAMCP2fl4QgAAgPUr+nhCAABAW376eEIAAADB0Pp4QgAAQPLH+3hCAAAAWBr8eEIAAADvY/14QgAAwFS2/XhCAACAugj+eEIAAEAgW/54QgAAAIat/nhCAADA6//+eEIAAIBRUv94QgAAQLek/3hCAAAAHff/eEIAAMCCSQB5QgAAQE7uAHlCAACAf+UBeUIAAEDlNwJ5QgAAwLDcAnlCAACAFi8DeUIAAADi0wN5QgAAwEcmBHlCAABAE8sEeUIAAAB5HQV5QgAAwN5vBXlCAACARMIFeUIAAMB1uQZ5Qg==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[68]},\"y\":{\"__ndarray__\":\"AAAAAAAAAEAAAAAAAADwPwAAAAAAAABAAAAAAAAAAEAAAAAAAADwPwAAAAAAAEVAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAAhAAAAAAAAAEEAAAAAAAAAAQAAAAAAAABRAAAAAAAAACEAAAAAAAAAAQAAAAAAAABBAAAAAAAAAAAAAAAAAAAAIQAAAAAAAAABAAAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAAGEAAAAAAAAAoQAAAAAAAACxAAAAAAAAAAEAAAAAAAADwPwAAAAAAADNAAAAAAAAAN0AAAAAAAAAQQAAAAAAAABxAAAAAAAAAAEAAAAAAAAAmQAAAAAAAAAhAAAAAAAAAFEAAAAAAAADwPwAAAAAAAABAAAAAAAAAAEAAAAAAAADwPwAAAAAAAAhAAAAAAAAACEAAAAAAAAAAQAAAAAAAAPA/AAAAAAAAAAAAAAAAAADwPwAAAAAAABBAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAA8D8AAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAhAAAAAAAAA8D8AAAAAAAAIQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[68]}},\"selected\":{\"id\":\"2227\"},\"selection_policy\":{\"id\":\"2226\"}},\"id\":\"2211\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"2166\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"days\":[1,15]},\"id\":\"2203\",\"type\":\"DaysTicker\"},{\"attributes\":{\"months\":[0,6]},\"id\":\"2207\",\"type\":\"MonthsTicker\"},{\"attributes\":{\"overlay\":{\"id\":\"2171\"}},\"id\":\"2167\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"num_minor_ticks\":5,\"tickers\":[{\"id\":\"2197\"},{\"id\":\"2198\"},{\"id\":\"2199\"},{\"id\":\"2200\"},{\"id\":\"2201\"},{\"id\":\"2202\"},{\"id\":\"2203\"},{\"id\":\"2204\"},{\"id\":\"2205\"},{\"id\":\"2206\"},{\"id\":\"2207\"},{\"id\":\"2208\"}]},\"id\":\"2158\",\"type\":\"DatetimeTicker\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2183\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2162\",\"type\":\"BasicTicker\"},{\"attributes\":{\"label\":{\"value\":\"latest\"},\"renderers\":[{\"id\":\"2215\"}]},\"id\":\"2241\",\"type\":\"LegendItem\"},{\"attributes\":{\"base\":24,\"mantissas\":[1,2,4,6,8,12],\"max_interval\":43200000.0,\"min_interval\":3600000.0,\"num_minor_ticks\":0},\"id\":\"2199\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{\"months\":[0,1,2,3,4,5,6,7,8,9,10,11]},\"id\":\"2204\",\"type\":\"MonthsTicker\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"items\":[{\"id\":\"2210\"},{\"id\":\"2241\"}]},\"id\":\"2209\",\"type\":\"Legend\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2211\"},\"glyph\":{\"id\":\"2212\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2214\"},\"nonselection_glyph\":{\"id\":\"2213\"},\"view\":{\"id\":\"2216\"}},\"id\":\"2215\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2169\",\"type\":\"ResetTool\"},{\"attributes\":{\"label\":{\"value\":\"stable\"},\"renderers\":[{\"id\":\"2185\"}]},\"id\":\"2210\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"2153\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2208\",\"type\":\"YearsTicker\"},{\"attributes\":{},\"id\":\"2190\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"2227\",\"type\":\"Selection\"},{\"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\":\"2200\",\"type\":\"DaysTicker\"},{\"attributes\":{\"source\":{\"id\":\"2211\"}},\"id\":\"2216\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2194\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"axis\":{\"id\":\"2157\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"2160\",\"type\":\"Grid\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2181\"},\"glyph\":{\"id\":\"2182\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2184\"},\"nonselection_glyph\":{\"id\":\"2183\"},\"view\":{\"id\":\"2186\"}},\"id\":\"2185\",\"type\":\"GlyphRenderer\"}],\"root_ids\":[\"2146\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.3\"}};\n const render_items = [{\"docid\":\"5ddfb158-6265-46ab-9ea3-baac1f5136d9\",\"root_ids\":[\"2146\"],\"roots\":{\"2146\":\"daecaeb2-7dda-4abd-bad7-d23c0ff855f6\"}}];\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": "2146" } }, "output_type": "display_data" } ], "source": [ "daily_views = df.pivot_table(values='Views', index='Date', columns='Version', aggfunc='sum')[['stable', 'latest']].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['stable'], legend_label='stable')\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": 20, "metadata": {}, "outputs": [], "source": [ "df2 = df.loc[df['Version'] == 'stable', :].copy()\n", "pathviews = df2.groupby('Path')['Views'].sum().reset_index()" ] }, { "cell_type": "code", "execution_count": 21, "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 = {\"42e36bd3-1555-4af0-8c84-537ca515c28a\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"2497\"}],\"center\":[{\"id\":\"2500\"},{\"id\":\"2503\"}],\"height\":400,\"left\":[{\"id\":\"2501\"}],\"renderers\":[{\"id\":\"2525\"}],\"title\":{\"id\":\"2487\"},\"toolbar\":{\"id\":\"2512\"},\"x_range\":{\"id\":\"2489\"},\"x_scale\":{\"id\":\"2493\"},\"y_range\":{\"id\":\"2491\"},\"y_scale\":{\"id\":\"2495\"}},\"id\":\"2486\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"tools\":[{\"id\":\"2504\"},{\"id\":\"2505\"},{\"id\":\"2506\"},{\"id\":\"2507\"},{\"id\":\"2508\"},{\"id\":\"2509\"},{\"id\":\"2511\"}]},\"id\":\"2512\",\"type\":\"Toolbar\"},{\"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\":\"2523\",\"type\":\"HBar\"},{\"attributes\":{},\"id\":\"2504\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"2507\",\"type\":\"SaveTool\"},{\"attributes\":{\"callback\":null,\"tooltips\":[[\"URL\",\"@Path\"],[\"Views\",\"@Views\"]]},\"id\":\"2511\",\"type\":\"HoverTool\"},{\"attributes\":{},\"id\":\"2659\",\"type\":\"Selection\"},{\"attributes\":{\"coordinates\":null,\"formatter\":{\"id\":\"2653\"},\"group\":null,\"major_label_policy\":{\"id\":\"2654\"},\"ticker\":{\"id\":\"2502\"}},\"id\":\"2501\",\"type\":\"CategoricalAxis\"},{\"attributes\":{},\"id\":\"2489\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"2653\",\"type\":\"CategoricalTickFormatter\"},{\"attributes\":{},\"id\":\"2498\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"2505\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"axis\":{\"id\":\"2497\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"2500\",\"type\":\"Grid\"},{\"attributes\":{\"data\":{\"Path\":[\"/installation/index.html\",\"/whatsnew.html\",\"/tutorials/Run_fast_simulations.html\",\"/tutorials/PVArray_introduction.html\",\"/tutorials/Getting_started.html\",\"/developer/index.html\",\"/index.html\",\"/theory/problem_formulation.html\",\"/search.html\",\"/theory/index.html\",\"/tutorials/Calculate_view_factors.html\",\"/theory/view_factors.html\",\"/_modules/pvfactors/engine.html\",\"/tutorials/Create_discretized_pvarray.html\",\"/tutorials/Run_full_parallel_simulations.html\",\"/tutorials/Run_full_timeseries_simulations.html\",\"/tutorials/index.html\",\"/developer/generated/pvfactors.run.run_timeseries_engine.html\",\"/developer/generated/pvfactors.geometry.timeseries.TsPointCoords.html\",\"/_modules/pvfactors/run.html\",\"/developer/generated/pvfactors.viewfactors.calculator.VFCalculator.html\",\"/developer/generated/pvfactors.geometry.base.BasePVArray.html\",\"/developer/irradiance.html\",\"/genindex.html\",\"/developer/generated/pvfactors.engine.PVEngine.html\",\"/concepts/index.html\",\"/_modules/pvfactors/viewfactors/vfmethods.html\",\"/_modules/pvfactors/viewfactors/calculator.html\",\"/theory/intro.html\",\"/_modules/pvfactors/viewfactors/aoimethods.html\",\"/developer/generated/pvfactors.geometry.base.PVSegment.html\",\"/tutorials/Account_for_AOI_losses.html\",\"/_modules/pvfactors/report.html\",\"/_modules/pvfactors/irradiance/models.html\",\"/_modules/pvfactors/irradiance/base.html\",\"/_modules/pvfactors/geometry/timeseries.html\",\"/_modules/pvfactors/geometry/pvrow.html\",\"/_modules/pvfactors/geometry/pvground.html\",\"/_modules/pvfactors/geometry/pvarray.html\",\"/_modules/pvfactors/geometry/base.html\",\"/developer/generated/pvfactors.viewfactors.vfmethods.VFTsMethods.html\",\"/developer/generated/pvfactors.viewfactors.aoimethods.AOIMethods.html\",\"/developer/generated/pvfactors.geometry.base.PVSurface.html\",\"/developer/generated/pvfactors.geometry.base.BaseSide.html\",\"/developer/generated/pvfactors.geometry.base.ShadeCollection.html\",\"/developer/generated/pvfactors.geometry.pvarray.OrderedPVArray.html\",\"/developer/generated/pvfactors.geometry.pvground.PVGround.html\",\"/developer/generated/pvfactors.geometry.pvground.TsGround.html\",\"/developer/generated/pvfactors.geometry.pvground.TsGroundElement.html\",\"/developer/generated/pvfactors.geometry.pvrow.PVRow.html\",\"/developer/generated/pvfactors.geometry.pvrow.PVRowSide.html\",\"/developer/generated/pvfactors.geometry.pvrow.TsPVRow.html\",\"/developer/generated/pvfactors.geometry.pvrow.TsSegment.html\",\"/developer/generated/pvfactors.geometry.pvrow.TsSide.html\",\"/developer/generated/pvfactors.geometry.timeseries.TsLineCoords.html\",\"/developer/generated/pvfactors.geometry.base.BaseSurface.html\",\"/developer/generated/pvfactors.geometry.timeseries.TsShadeCollection.html\",\"/developer/generated/pvfactors.geometry.timeseries.TsSurface.html\",\"/developer/generated/pvfactors.irradiance.models.HybridPerezOrdered.html\",\"/developer/generated/pvfactors.irradiance.models.IsotropicOrdered.html\",\"/developer/generated/pvfactors.report.ExampleReportBuilder.html\",\"/developer/generated/pvfactors.report.example_fn_build_report.html\",\"/developer/generated/pvfactors.run.run_parallel_engine.html\",\"/_modules/index.html\"],\"Views\":[7,5,4,4,4,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],\"index\":[48,63,59,58,57,44,47,52,49,50,55,53,1,56,60,61,62,40,32,10,42,16,45,46,15,14,13,12,51,11,19,54,9,8,7,6,5,4,3,2,43,41,20,17,21,22,23,24,25,26,27,28,29,30,31,18,33,34,35,36,37,38,39,0]},\"selected\":{\"id\":\"2659\"},\"selection_policy\":{\"id\":\"2658\"}},\"id\":\"2520\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"2502\",\"type\":\"CategoricalTicker\"},{\"attributes\":{\"axis_label\":\"Total page views\",\"coordinates\":null,\"formatter\":{\"id\":\"2656\"},\"group\":null,\"major_label_policy\":{\"id\":\"2657\"},\"ticker\":{\"id\":\"2498\"}},\"id\":\"2497\",\"type\":\"LinearAxis\"},{\"attributes\":{\"factors\":[\"/installation/index.html\",\"/whatsnew.html\",\"/tutorials/Run_fast_simulations.html\",\"/tutorials/PVArray_introduction.html\",\"/tutorials/Getting_started.html\",\"/developer/index.html\",\"/index.html\",\"/theory/problem_formulation.html\",\"/search.html\",\"/theory/index.html\",\"/tutorials/Calculate_view_factors.html\",\"/theory/view_factors.html\",\"/_modules/pvfactors/engine.html\",\"/tutorials/Create_discretized_pvarray.html\",\"/tutorials/Run_full_parallel_simulations.html\",\"/tutorials/Run_full_timeseries_simulations.html\",\"/tutorials/index.html\",\"/developer/generated/pvfactors.run.run_timeseries_engine.html\",\"/developer/generated/pvfactors.geometry.timeseries.TsPointCoords.html\",\"/_modules/pvfactors/run.html\",\"/developer/generated/pvfactors.viewfactors.calculator.VFCalculator.html\",\"/developer/generated/pvfactors.geometry.base.BasePVArray.html\",\"/developer/irradiance.html\",\"/genindex.html\",\"/developer/generated/pvfactors.engine.PVEngine.html\",\"/concepts/index.html\",\"/_modules/pvfactors/viewfactors/vfmethods.html\",\"/_modules/pvfactors/viewfactors/calculator.html\",\"/theory/intro.html\",\"/_modules/pvfactors/viewfactors/aoimethods.html\",\"/developer/generated/pvfactors.geometry.base.PVSegment.html\",\"/tutorials/Account_for_AOI_losses.html\",\"/_modules/pvfactors/report.html\",\"/_modules/pvfactors/irradiance/models.html\",\"/_modules/pvfactors/irradiance/base.html\",\"/_modules/pvfactors/geometry/timeseries.html\",\"/_modules/pvfactors/geometry/pvrow.html\",\"/_modules/pvfactors/geometry/pvground.html\",\"/_modules/pvfactors/geometry/pvarray.html\",\"/_modules/pvfactors/geometry/base.html\",\"/developer/generated/pvfactors.viewfactors.vfmethods.VFTsMethods.html\",\"/developer/generated/pvfactors.viewfactors.aoimethods.AOIMethods.html\",\"/developer/generated/pvfactors.geometry.base.PVSurface.html\",\"/developer/generated/pvfactors.geometry.base.BaseSide.html\",\"/developer/generated/pvfactors.geometry.base.ShadeCollection.html\",\"/developer/generated/pvfactors.geometry.pvarray.OrderedPVArray.html\",\"/developer/generated/pvfactors.geometry.pvground.PVGround.html\",\"/developer/generated/pvfactors.geometry.pvground.TsGround.html\",\"/developer/generated/pvfactors.geometry.pvground.TsGroundElement.html\",\"/developer/generated/pvfactors.geometry.pvrow.PVRow.html\",\"/developer/generated/pvfactors.geometry.pvrow.PVRowSide.html\",\"/developer/generated/pvfactors.geometry.pvrow.TsPVRow.html\",\"/developer/generated/pvfactors.geometry.pvrow.TsSegment.html\",\"/developer/generated/pvfactors.geometry.pvrow.TsSide.html\",\"/developer/generated/pvfactors.geometry.timeseries.TsLineCoords.html\",\"/developer/generated/pvfactors.geometry.base.BaseSurface.html\",\"/developer/generated/pvfactors.geometry.timeseries.TsShadeCollection.html\",\"/developer/generated/pvfactors.geometry.timeseries.TsSurface.html\",\"/developer/generated/pvfactors.irradiance.models.HybridPerezOrdered.html\",\"/developer/generated/pvfactors.irradiance.models.IsotropicOrdered.html\",\"/developer/generated/pvfactors.report.ExampleReportBuilder.html\",\"/developer/generated/pvfactors.report.example_fn_build_report.html\",\"/developer/generated/pvfactors.run.run_parallel_engine.html\",\"/_modules/index.html\"]},\"id\":\"2491\",\"type\":\"FactorRange\"},{\"attributes\":{},\"id\":\"2493\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2657\",\"type\":\"AllLabels\"},{\"attributes\":{\"axis\":{\"id\":\"2501\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"2503\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"2658\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"2656\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"source\":{\"id\":\"2520\"}},\"id\":\"2526\",\"type\":\"CDSView\"},{\"attributes\":{\"fill_color\":{\"value\":\"#1f77b4\"},\"height\":{\"value\":0.75},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"Views\"},\"y\":{\"field\":\"Path\"}},\"id\":\"2522\",\"type\":\"HBar\"},{\"attributes\":{},\"id\":\"2495\",\"type\":\"CategoricalScale\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2520\"},\"glyph\":{\"id\":\"2522\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2524\"},\"nonselection_glyph\":{\"id\":\"2523\"},\"view\":{\"id\":\"2526\"}},\"id\":\"2525\",\"type\":\"GlyphRenderer\"},{\"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\":\"2524\",\"type\":\"HBar\"},{\"attributes\":{},\"id\":\"2508\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"2509\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"2654\",\"type\":\"AllLabels\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"2510\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"overlay\":{\"id\":\"2510\"}},\"id\":\"2506\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"Views by URL (2024-04-02 to 2024-07-01)\"},\"id\":\"2487\",\"type\":\"Title\"}],\"root_ids\":[\"2486\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.3\"}};\n const render_items = [{\"docid\":\"42e36bd3-1555-4af0-8c84-537ca515c28a\",\"root_ids\":[\"2486\"],\"roots\":{\"2486\":\"ea0bd5f0-4f08-4f1c-a047-995a9a2fd05e\"}}];\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": "2486" } }, "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", "metadata": {}, "source": [ "## GitHub" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "gh = utils.get_github_stars(gh_project)" ] }, { "cell_type": "code", "execution_count": 23, "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 = {\"a3f6f076-c47d-45b3-b50f-c60a7415cb3f\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"2720\"}],\"center\":[{\"id\":\"2723\"},{\"id\":\"2727\"}],\"height\":350,\"left\":[{\"id\":\"2724\"}],\"renderers\":[{\"id\":\"2748\"}],\"title\":{\"id\":\"2884\"},\"toolbar\":{\"id\":\"2735\"},\"x_range\":{\"id\":\"2712\"},\"x_scale\":{\"id\":\"2716\"},\"y_range\":{\"id\":\"2714\"},\"y_scale\":{\"id\":\"2718\"}},\"id\":\"2711\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"axis_label\":\"Total Stars\",\"coordinates\":null,\"formatter\":{\"id\":\"2887\"},\"group\":null,\"major_label_policy\":{\"id\":\"2888\"},\"ticker\":{\"id\":\"2725\"}},\"id\":\"2724\",\"type\":\"LinearAxis\"},{\"attributes\":{\"source\":{\"id\":\"2744\"}},\"id\":\"2749\",\"type\":\"CDSView\"},{\"attributes\":{\"axis_label\":\"Date\",\"coordinates\":null,\"formatter\":{\"id\":\"2890\"},\"group\":null,\"major_label_policy\":{\"id\":\"2891\"},\"ticker\":{\"id\":\"2721\"}},\"id\":\"2720\",\"type\":\"DatetimeAxis\"},{\"attributes\":{},\"id\":\"2729\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"2887\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"axis\":{\"id\":\"2720\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"2723\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"2714\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"2731\",\"type\":\"SaveTool\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[355]},\"y\":{\"__ndarray__\":\"AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABRAAAAAAAAAFEAAAAAAAAAUQAAAAAAAABhAAAAAAAAAGEA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[355]}},\"selected\":{\"id\":\"2893\"},\"selection_policy\":{\"id\":\"2892\"}},\"id\":\"2744\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"num_minor_ticks\":5,\"tickers\":[{\"id\":\"2895\"},{\"id\":\"2896\"},{\"id\":\"2897\"},{\"id\":\"2898\"},{\"id\":\"2899\"},{\"id\":\"2900\"},{\"id\":\"2901\"},{\"id\":\"2902\"},{\"id\":\"2903\"},{\"id\":\"2904\"},{\"id\":\"2905\"},{\"id\":\"2906\"}]},\"id\":\"2721\",\"type\":\"DatetimeTicker\"},{\"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\":\"2898\",\"type\":\"DaysTicker\"},{\"attributes\":{\"days\":[1,15]},\"id\":\"2901\",\"type\":\"DaysTicker\"},{\"attributes\":{},\"id\":\"2728\",\"type\":\"PanTool\"},{\"attributes\":{\"mantissas\":[1,2,5],\"max_interval\":500.0,\"num_minor_ticks\":0},\"id\":\"2895\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{\"months\":[0,6]},\"id\":\"2905\",\"type\":\"MonthsTicker\"},{\"attributes\":{\"days\":[1,8,15,22]},\"id\":\"2900\",\"type\":\"DaysTicker\"},{\"attributes\":{},\"id\":\"2718\",\"type\":\"LinearScale\"},{\"attributes\":{\"overlay\":{\"id\":\"2734\"}},\"id\":\"2730\",\"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\":\"2734\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"months\":[0,1,2,3,4,5,6,7,8,9,10,11]},\"id\":\"2902\",\"type\":\"MonthsTicker\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2746\",\"type\":\"Line\"},{\"attributes\":{\"coordinates\":null,\"group\":null},\"id\":\"2884\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"2891\",\"type\":\"AllLabels\"},{\"attributes\":{\"base\":24,\"mantissas\":[1,2,4,6,8,12],\"max_interval\":43200000.0,\"min_interval\":3600000.0,\"num_minor_ticks\":0},\"id\":\"2897\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{},\"id\":\"2906\",\"type\":\"YearsTicker\"},{\"attributes\":{\"callback\":null,\"formatters\":{\"@x\":\"datetime\"},\"tooltips\":[[\"Date\",\"@x{%Y-%m-%d}\"],[\"Total Stars\",\"@y\"]]},\"id\":\"2742\",\"type\":\"HoverTool\"},{\"attributes\":{},\"id\":\"2890\",\"type\":\"DatetimeTickFormatter\"},{\"attributes\":{\"tools\":[{\"id\":\"2728\"},{\"id\":\"2729\"},{\"id\":\"2730\"},{\"id\":\"2731\"},{\"id\":\"2732\"},{\"id\":\"2733\"},{\"id\":\"2742\"}]},\"id\":\"2735\",\"type\":\"Toolbar\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2745\",\"type\":\"Line\"},{\"attributes\":{\"months\":[0,2,4,6,8,10]},\"id\":\"2903\",\"type\":\"MonthsTicker\"},{\"attributes\":{},\"id\":\"2892\",\"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\":\"2896\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{},\"id\":\"2725\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"2716\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2888\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"2712\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"2732\",\"type\":\"ResetTool\"},{\"attributes\":{\"months\":[0,4,8]},\"id\":\"2904\",\"type\":\"MonthsTicker\"},{\"attributes\":{\"axis\":{\"id\":\"2724\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"2727\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"2893\",\"type\":\"Selection\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2747\",\"type\":\"Line\"},{\"attributes\":{\"days\":[1,4,7,10,13,16,19,22,25,28]},\"id\":\"2899\",\"type\":\"DaysTicker\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"2744\"},\"glyph\":{\"id\":\"2745\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"2747\"},\"nonselection_glyph\":{\"id\":\"2746\"},\"view\":{\"id\":\"2749\"}},\"id\":\"2748\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2733\",\"type\":\"HelpTool\"}],\"root_ids\":[\"2711\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.3\"}};\n const render_items = [{\"docid\":\"a3f6f076-c47d-45b3-b50f-c60a7415cb3f\",\"root_ids\":[\"2711\"],\"roots\":{\"2711\":\"8e1af39c-9e0f-46e4-a652-13a5b6c52c0a\"}}];\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": "2711" } }, "output_type": "display_data" } ], "source": [ "p = utils.plot_github_stars_timeseries(gh)\n", "show(p)" ] }, { "cell_type": "code", "execution_count": 24, "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 = {\"f9509eca-3c3b-4e2b-b7ae-9de6d1b890a8\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"3031\"}],\"center\":[{\"id\":\"3034\"},{\"id\":\"3038\"}],\"height\":350,\"left\":[{\"id\":\"3035\"}],\"renderers\":[{\"id\":\"3059\"}],\"title\":{\"id\":\"3218\"},\"toolbar\":{\"id\":\"3046\"},\"x_range\":{\"id\":\"3023\"},\"x_scale\":{\"id\":\"3027\"},\"y_range\":{\"id\":\"3025\"},\"y_scale\":{\"id\":\"3029\"}},\"id\":\"3022\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"3058\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"3225\",\"type\":\"AllLabels\"},{\"attributes\":{\"months\":[0,2,4,6,8,10]},\"id\":\"3237\",\"type\":\"MonthsTicker\"},{\"attributes\":{},\"id\":\"3036\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"3042\",\"type\":\"SaveTool\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"3055\"},\"glyph\":{\"id\":\"3056\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"3058\"},\"nonselection_glyph\":{\"id\":\"3057\"},\"view\":{\"id\":\"3060\"}},\"id\":\"3059\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"axis\":{\"id\":\"3031\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"3034\",\"type\":\"Grid\"},{\"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\":\"3045\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"days\":[1,4,7,10,13,16,19,22,25,28]},\"id\":\"3233\",\"type\":\"DaysTicker\"},{\"attributes\":{\"mantissas\":[1,2,5],\"max_interval\":500.0,\"num_minor_ticks\":0},\"id\":\"3229\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{\"months\":[0,4,8]},\"id\":\"3238\",\"type\":\"MonthsTicker\"},{\"attributes\":{},\"id\":\"3027\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"3023\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"3025\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"3226\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"3057\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"3039\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"3227\",\"type\":\"Selection\"},{\"attributes\":{\"axis_label\":\"Total Contributors\",\"coordinates\":null,\"formatter\":{\"id\":\"3221\"},\"group\":null,\"major_label_policy\":{\"id\":\"3222\"},\"ticker\":{\"id\":\"3036\"}},\"id\":\"3035\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"3044\",\"type\":\"HelpTool\"},{\"attributes\":{\"overlay\":{\"id\":\"3045\"}},\"id\":\"3041\",\"type\":\"BoxZoomTool\"},{\"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\":\"3232\",\"type\":\"DaysTicker\"},{\"attributes\":{\"days\":[1,8,15,22]},\"id\":\"3234\",\"type\":\"DaysTicker\"},{\"attributes\":{},\"id\":\"3043\",\"type\":\"ResetTool\"},{\"attributes\":{\"tools\":[{\"id\":\"3039\"},{\"id\":\"3040\"},{\"id\":\"3041\"},{\"id\":\"3042\"},{\"id\":\"3043\"},{\"id\":\"3044\"},{\"id\":\"3053\"}]},\"id\":\"3046\",\"type\":\"Toolbar\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"AAAAwGw1dkIAAMAlvzV2QgAAgIsRNnZCAABA8WM2dkIAAABXtjZ2QgAAwLwIN3ZCAACAIls3dkIAAECIrTd2QgAAAO7/N3ZCAADAU1I4dkIAAIC5pDh2QgAAQB/3OHZCAAAAhUk5dkIAAMDqmzl2QgAAgFDuOXZCAABAtkA6dkIAAAAckzp2QgAAwIHlOnZCAACA5zc7dkIAAEBNijt2QgAAALPcO3ZCAADAGC88dkIAAIB+gTx2QgAAQOTTPHZCAAAASiY9dkIAAMCveD12QgAAgBXLPXZCAABAex0+dkIAAADhbz52QgAAwEbCPnZCAACArBQ/dkIAAEASZz92QgAAAHi5P3ZCAADA3QtAdkIAAIBDXkB2QgAAQKmwQHZCAAAADwNBdkIAAMB0VUF2QgAAgNqnQXZCAABAQPpBdkIAAACmTEJ2QgAAwAufQnZCAACAcfFCdkIAAEDXQ0N2QgAAAD2WQ3ZCAADAouhDdkIAAIAIO0R2QgAAQG6NRHZCAAAA1N9EdkIAAMA5MkV2QgAAgJ+ERXZCAABABddFdkIAAABrKUZ2QgAAwNB7RnZCAACANs5GdkIAAECcIEd2QgAAAAJzR3ZCAADAZ8VHdkIAAIDNF0h2QgAAQDNqSHZCAAAAmbxIdkIAAMD+Dkl2QgAAgGRhSXZCAABAyrNJdkIAAAAwBkp2QgAAwJVYSnZCAACA+6pKdkIAAEBh/Up2QgAAAMdPS3ZCAADALKJLdkIAAICS9Et2QgAAQPhGTHZCAAAAXplMdkIAAMDD60x2QgAAgCk+TXZCAABAj5BNdkIAAAD14k12QgAAwFo1TnZCAACAwIdOdkIAAEAm2k52QgAAAIwsT3ZCAADA8X5PdkIAAIBX0U92QgAAQL0jUHZCAAAAI3ZQdkIAAMCIyFB2QgAAgO4aUXZCAABAVG1RdkIAAAC6v1F2QgAAwB8SUnZCAACAhWRSdkIAAEDrtlJ2QgAAAFEJU3ZCAADAtltTdkIAAIAcrlN2QgAAQIIAVHZCAAAA6FJUdkIAAMBNpVR2QgAAgLP3VHZCAABAGUpVdkIAAAB/nFV2QgAAwOTuVXZCAACASkFWdkIAAECwk1Z2QgAAABbmVnZCAADAezhXdkIAAIDhild2QgAAQEfdV3ZCAAAArS9YdkIAAMASglh2QgAAgHjUWHZCAABA3iZZdkIAAABEeVl2QgAAwKnLWXZCAACADx5adkIAAEB1cFp2QgAAANvCWnZCAADAQBVbdkIAAICmZ1t2QgAAQAy6W3ZCAAAAcgxcdkIAAMDXXlx2QgAAgD2xXHZCAABAowNddkIAAAAJVl12QgAAwG6oXXZCAACA1PpddkIAAEA6TV52QgAAAKCfXnZCAADABfJedkIAAIBrRF92QgAAQNGWX3ZCAAAAN+lfdkIAAMCcO2B2QgAAgAKOYHZCAABAaOBgdkIAAADOMmF2QgAAwDOFYXZCAACAmddhdkIAAED/KWJ2QgAAAGV8YnZCAADAys5idkIAAIAwIWN2QgAAQJZzY3ZCAAAA/MVjdkIAAMBhGGR2QgAAgMdqZHZCAABALb1kdkIAAACTD2V2QgAAwPhhZXZCAACAXrRldkIAAEDEBmZ2QgAAACpZZnZCAADAj6tmdkIAAID1/WZ2QgAAQFtQZ3ZCAAAAwaJndkIAAMAm9Wd2QgAAgIxHaHZCAABA8plodkIAAABY7Gh2QgAAwL0+aXZCAACAI5FpdkIAAECJ42l2QgAAAO81anZCAADAVIhqdkIAAIC62mp2QgAAQCAta3ZCAAAAhn9rdkIAAMDr0Wt2QgAAgFEkbHZCAABAt3ZsdkIAAAAdyWx2QgAAwIIbbXZCAACA6G1tdkIAAEBOwG12QgAAALQSbnZCAADAGWVudkIAAIB/t252QgAAQOUJb3ZCAAAAS1xvdkIAAMCwrm92QgAAgBYBcHZCAABAfFNwdkIAAADipXB2QgAAwEf4cHZCAACArUpxdkIAAEATnXF2QgAAAHnvcXZCAADA3kFydkIAAIBElHJ2QgAAQKrmcnZCAAAAEDlzdkIAAMB1i3N2QgAAgNvdc3ZCAABAQTB0dkIAAACngnR2QgAAwAzVdHZCAACAcid1dkIAAEDYeXV2QgAAAD7MdXZCAADAox52dkIAAIAJcXZ2QgAAQG/DdnZCAAAA1RV3dkIAAMA6aHd2QgAAgKC6d3ZCAABABg14dkIAAABsX3h2QgAAwNGxeHZCAACANwR5dkIAAECdVnl2QgAAAAOpeXZCAADAaPt5dkIAAIDOTXp2QgAAQDSgenZCAAAAmvJ6dkIAAMD/RHt2QgAAgGWXe3ZCAABAy+l7dkIAAAAxPHx2QgAAwJaOfHZCAACA/OB8dkIAAEBiM312QgAAAMiFfXZCAADALdh9dkIAAICTKn52QgAAQPl8fnZCAAAAX89+dkIAAMDEIX92QgAAgCp0f3ZCAABAkMZ/dkIAAAD2GIB2QgAAwFtrgHZCAACAwb2AdkIAAEAnEIF2QgAAAI1igXZCAADA8rSBdkIAAIBYB4J2QgAAQL5ZgnZCAAAAJKyCdkIAAMCJ/oJ2QgAAgO9Qg3ZCAABAVaODdkIAAAC79YN2QgAAwCBIhHZCAACAhpqEdkIAAEDs7IR2QgAAAFI/hXZCAADAt5GFdkIAAIAd5IV2QgAAQIM2hnZCAAAA6YiGdkIAAMBO24Z2QgAAgLQth3ZCAABAGoCHdkIAAACA0od2QgAAwOUkiHZCAACAS3eIdkIAAECxyYh2QgAAABcciXZCAADAfG6JdkIAAIDiwIl2QgAAQEgTinZCAAAArmWKdkIAAMATuIp2QgAAgHkKi3ZCAABA31yLdkIAAABFr4t2QgAAwKoBjHZCAACAEFSMdkIAAEB2pox2QgAAANz4jHZCAADAQUuNdkIAAICnnY12QgAAQA3wjXZCAAAAc0KOdkIAAMDYlI52QgAAgD7njnZCAABApDmPdkIAAAAKjI92QgAAwG/ej3ZCAACA1TCQdkIAAEA7g5B2QgAAAKHVkHZCAADABiiRdkIAAIBsepF2QgAAQNLMkXZCAAAAOB+SdkIAAMCdcZJ2QgAAgAPEknZCAABAaRaTdkIAAADPaJN2QgAAwDS7k3ZCAACAmg2UdkIAAEAAYJR2QgAAAGaylHZCAADAywSVdkIAAIAxV5V2QgAAQJeplXZCAAAA/fuVdkIAAMBiTpZ2QgAAgMiglnZCAABALvOWdkIAAACURZd2QgAAwPmXl3ZCAACAX+qXdkIAAEDFPJh2QgAAACuPmHZCAADAkOGYdkIAAID2M5l2QgAAQFyGmXZCAAAAwtiZdkIAAMAnK5p2QgAAgI19mnZCAABA88+adkIAAABZIpt2QgAAwL50m3ZCAACAJMebdkIAAECKGZx2QgAAAPBrnHZCAADAVb6cdkIAAIC7EJ12QgAAQCFjnXZCAAAAh7WddkIAAMDsB552QgAAgFJannZCAABAuKyedkIAAAAe/552QgAAwINRn3ZCAACA6aOfdkIAAEBP9p92QgAAALVIoHZCAADAGpugdkIAAICA7aB2QgAAQOY/oXZCAAAATJKhdkIAAMCx5KF2QgAAgBc3onZCAABAfYmidkIAAADj26J2QgAAwEguo3ZCAACAroCjdkIAAEAU06N2QgAAAHolpHZCAADA33ekdkIAAIBFyqR2QgAAQKscpXZCAAAAEW+ldkIAAMB2waV2QgAAgNwTpnZCAABAQmamdkIAAACouKZ2QgAAwA0Lp3ZCAACAc12ndkIAAEDZr6d2QgAAAD8CqHZCAADApFSodkIAAIAKp6h2QgAAQHD5qHZCAAAA1kupdkIAAMA7nql2QgAAgKHwqXZCAABAB0OqdkIAAABtlap2QgAAwNLnqnZCAACAODqrdkIAAECejKt2QgAAAATfq3ZCAADAaTGsdkIAAIDPg6x2QgAAQDXWrHZCAAAAmyitdkIAAMAAe612QgAAgGbNrXZCAABAzB+udkIAAAAycq52QgAAwJfErnZCAACA/RavdkIAAEBjaa92QgAAAMm7r3ZCAADALg6wdkIAAICUYLB2QgAAQPqysHZCAAAAYAWxdkIAAMDFV7F2QgAAgCuqsXZCAABAkfyxdkIAAAD3TrJ2QgAAwFyhsnZCAACAwvOydkIAAEAoRrN2QgAAAI6Ys3ZCAADA8+qzdkIAAIBZPbR2QgAAQL+PtHZCAAAAJeK0dkIAAMCKNLV2QgAAgPCGtXZCAABAVtm1dkIAAAC8K7Z2QgAAwCF+tnZCAACAh9C2dkIAAEDtIrd2QgAAAFN1t3ZCAADAuMe3dkIAAIAeGrh2QgAAQIRsuHZCAAAA6r64dkIAAMBPEbl2QgAAgLVjuXZCAABAG7a5dkIAAACBCLp2QgAAwOZaunZCAACATK26dkIAAECy/7p2QgAAABhSu3ZCAADAfaS7dkIAAIDj9rt2QgAAQElJvHZCAAAAr5u8dkIAAMAU7rx2QgAAgHpAvXZCAABA4JK9dkIAAABG5b12QgAAwKs3vnZCAACAEYq+dkIAAEB33L52QgAAAN0uv3ZCAADAQoG/dkIAAICo0792QgAAQA4mwHZCAAAAdHjAdkIAAMDZysB2QgAAgD8dwXZCAABApW/BdkIAAAALwsF2QgAAwHAUwnZCAACA1mbCdkIAAEA8ucJ2QgAAAKILw3ZCAADAB17DdkIAAIBtsMN2QgAAQNMCxHZCAAAAOVXEdkIAAMCep8R2QgAAgAT6xHZCAABAakzFdkIAAADQnsV2QgAAwDXxxXZCAACAm0PGdkIAAEABlsZ2QgAAAGfoxnZCAADAzDrHdkIAAIAyjcd2QgAAQJjfx3ZCAAAA/jHIdkIAAMBjhMh2QgAAgMnWyHZCAABALynJdkIAAACVe8l2QgAAwPrNyXZCAACAYCDKdkIAAEDGcsp2QgAAACzFynZCAADAkRfLdkIAAID3act2QgAAQF28y3ZCAAAAww7MdkIAAMAoYcx2QgAAgI6zzHZCAABA9AXNdkIAAABaWM12QgAAwL+qzXZCAACAJf3NdkIAAECLT852QgAAAPGhznZCAADAVvTOdkIAAIC8Rs92QgAAQCKZz3ZCAAAAiOvPdkIAAMDtPdB2QgAAgFOQ0HZCAABAueLQdkIAAAAfNdF2QgAAwISH0XZCAACA6tnRdkIAAEBQLNJ2QgAAALZ+0nZCAADAG9HSdkIAAICBI9N2QgAAQOd103ZCAAAATcjTdkIAAMCyGtR2QgAAgBht1HZCAABAfr/UdkIAAADkEdV2QgAAwElk1XZCAACAr7bVdkIAAEAVCdZ2QgAAAHtb1nZCAADA4K3WdkIAAIBGANd2QgAAQKxS13ZCAAAAEqXXdkIAAMB399d2QgAAgN1J2HZCAABAQ5zYdkIAAACp7th2QgAAwA5B2XZCAACAdJPZdkIAAEDa5dl2QgAAAEA42nZCAADApYradkIAAIAL3dp2QgAAQHEv23ZCAAAA14HbdkIAAMA81Nt2QgAAgKIm3HZCAABACHncdkIAAABuy9x2QgAAwNMd3XZCAACAOXDddkIAAECfwt12QgAAAAUV3nZCAADAamfedkIAAIDQud52QgAAQDYM33ZCAAAAnF7fdkIAAMABsd92QgAAgGcD4HZCAABAzVXgdkIAAAAzqOB2QgAAwJj64HZCAACA/kzhdkIAAEBkn+F2QgAAAMrx4XZCAADAL0TidkIAAICVluJ2QgAAQPvo4nZCAAAAYTvjdkIAAMDGjeN2QgAAgCzg43ZCAABAkjLkdkIAAAD4hOR2QgAAwF3X5HZCAACAwynldkIAAEApfOV2QgAAAI/O5XZCAADA9CDmdkIAAIBac+Z2QgAAQMDF5nZCAAAAJhjndkIAAMCLaud2QgAAgPG853ZCAABAVw/odkIAAAC9Yeh2QgAAwCK06HZCAACAiAbpdkIAAEDuWOl2QgAAAFSr6XZCAADAuf3pdkIAAIAfUOp2QgAAQIWi6nZCAAAA6/TqdkIAAMBQR+t2QgAAgLaZ63ZCAABAHOzrdkIAAACCPux2QgAAwOeQ7HZCAACATePsdkIAAECzNe12QgAAABmI7XZCAADAftrtdkIAAIDkLO52QgAAQEp/7nZCAAAAsNHudkIAAMAVJO92QgAAgHt273ZCAABA4cjvdkIAAABHG/B2QgAAwKxt8HZCAACAEsDwdkIAAEB4EvF2QgAAAN5k8XZCAADAQ7fxdkIAAICpCfJ2QgAAQA9c8nZCAAAAda7ydkIAAMDaAPN2QgAAgEBT83ZCAABApqXzdkIAAAAM+PN2QgAAwHFK9HZCAACA15z0dkIAAEA97/R2QgAAAKNB9XZCAADACJT1dkIAAIBu5vV2QgAAQNQ49nZCAAAAOov2dkIAAMCf3fZ2QgAAgAUw93ZCAABAa4L3dkIAAADR1Pd2QgAAwDYn+HZCAACAnHn4dkIAAEACzPh2QgAAAGge+XZCAADAzXD5dkIAAIAzw/l2QgAAQJkV+nZCAAAA/2f6dkIAAMBkuvp2QgAAgMoM+3ZCAABAMF/7dkIAAACWsft2QgAAwPsD/HZCAACAYVb8dkIAAEDHqPx2QgAAAC37/HZCAADAkk39dkIAAID4n/12QgAAQF7y/XZCAAAAxET+dkIAAMApl/52QgAAgI/p/nZCAABA9Tv/dkIAAABbjv92QgAAwMDg/3ZCAACAJjMAd0IAAECMhQB3QgAAAPLXAHdCAADAVyoBd0IAAIC9fAF3QgAAQCPPAXdCAAAAiSECd0IAAMDucwJ3QgAAgFTGAndCAABAuhgDd0IAAAAgawN3QgAAwIW9A3dCAACA6w8Ed0IAAEBRYgR3QgAAALe0BHdCAADAHAcFd0IAAICCWQV3QgAAQOirBXdCAAAATv4Fd0IAAMCzUAZ3QgAAgBmjBndCAABAf/UGd0IAAADlRwd3QgAAwEqaB3dCAACAsOwHd0IAAEAWPwh3QgAAAHyRCHdCAADA4eMId0IAAIBHNgl3QgAAQK2ICXdCAAAAE9sJd0IAAMB4LQp3QgAAgN5/CndCAABARNIKd0IAAACqJAt3QgAAwA93C3dCAACAdckLd0IAAEDbGwx3QgAAAEFuDHdCAADApsAMd0IAAIAMEw13QgAAQHJlDXdCAAAA2LcNd0IAAMA9Cg53QgAAgKNcDndC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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1262]},\"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/AAAAAAAA8D8AAAAAAADwPwAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAEEAAAAAAAAAQQAAAAAAAABBAAAAAAAAAFEAAAAAAAAAUQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1262]}},\"selected\":{\"id\":\"3227\"},\"selection_policy\":{\"id\":\"3226\"}},\"id\":\"3055\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"source\":{\"id\":\"3055\"}},\"id\":\"3060\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"3029\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis\":{\"id\":\"3035\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"3038\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"3222\",\"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\":\"3230\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{\"days\":[1,15]},\"id\":\"3235\",\"type\":\"DaysTicker\"},{\"attributes\":{\"months\":[0,6]},\"id\":\"3239\",\"type\":\"MonthsTicker\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"3056\",\"type\":\"Line\"},{\"attributes\":{\"axis_label\":\"Date\",\"coordinates\":null,\"formatter\":{\"id\":\"3224\"},\"group\":null,\"major_label_policy\":{\"id\":\"3225\"},\"ticker\":{\"id\":\"3032\"}},\"id\":\"3031\",\"type\":\"DatetimeAxis\"},{\"attributes\":{\"num_minor_ticks\":5,\"tickers\":[{\"id\":\"3229\"},{\"id\":\"3230\"},{\"id\":\"3231\"},{\"id\":\"3232\"},{\"id\":\"3233\"},{\"id\":\"3234\"},{\"id\":\"3235\"},{\"id\":\"3236\"},{\"id\":\"3237\"},{\"id\":\"3238\"},{\"id\":\"3239\"},{\"id\":\"3240\"}]},\"id\":\"3032\",\"type\":\"DatetimeTicker\"},{\"attributes\":{\"months\":[0,1,2,3,4,5,6,7,8,9,10,11]},\"id\":\"3236\",\"type\":\"MonthsTicker\"},{\"attributes\":{},\"id\":\"3224\",\"type\":\"DatetimeTickFormatter\"},{\"attributes\":{},\"id\":\"3221\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"base\":24,\"mantissas\":[1,2,4,6,8,12],\"max_interval\":43200000.0,\"min_interval\":3600000.0,\"num_minor_ticks\":0},\"id\":\"3231\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{\"coordinates\":null,\"group\":null},\"id\":\"3218\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"3240\",\"type\":\"YearsTicker\"},{\"attributes\":{},\"id\":\"3040\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"callback\":null,\"formatters\":{\"@x\":\"datetime\"},\"tooltips\":[[\"Date\",\"@x{%Y-%m-%d}\"],[\"Total Contributors\",\"@y\"]]},\"id\":\"3053\",\"type\":\"HoverTool\"}],\"root_ids\":[\"3022\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.3\"}};\n const render_items = [{\"docid\":\"f9509eca-3c3b-4e2b-b7ae-9de6d1b890a8\",\"root_ids\":[\"3022\"],\"roots\":{\"3022\":\"0c2122b5-4878-47f5-92e2-35aa3136fc28\"}}];\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": "3022" } }, "output_type": "display_data" } ], "source": [ "contributor_ts, _ = utils.get_github_contributor_timeseries(gh_project)\n", "p = utils.plot_github_contributors_timeseries(contributor_ts)\n", "show(p)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "contributors = utils.get_github_contributors(gh_project)" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mosaic = utils.make_github_contributors_mosaic(contributors)\n", "mosaic" ] } ], "metadata": { "kernelspec": { "display_name": "venv", "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.11.8" } }, "nbformat": 4, "nbformat_minor": 2 }