Created
February 25, 2016 04:01
-
-
Save anonymous/73677eb25f6ba78aff47 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"nbpresent": { | |
"id": "b48ff0cf-c950-4df1-a674-0d78597d832a" | |
} | |
}, | |
"source": [ | |
"# Bokeh Mic Check" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"_Original Widget+Bokeh 0.9 integration [<i class=\"fa fa-github\"></i> kwharrigan](https://gist.github.com/kwharrigan/3000a2e4bc1c81cbbde3)._" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": { | |
"collapsed": false, | |
"nbpresent": { | |
"id": "da2f5527-88c4-450f-b108-d15264b9d1fb" | |
} | |
}, | |
"outputs": [], | |
"source": [ | |
"import time\n", | |
"import threading\n", | |
"\n", | |
"import numpy as np\n", | |
"\n", | |
"import pyaudio\n", | |
"\n", | |
"from ipywidgets import Button\n", | |
"from IPython import display\n", | |
"\n", | |
"from bokeh.plotting import figure, show, ColumnDataSource\n", | |
"from bokeh.io import push_notebook, output_notebook" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"\n", | |
" <div class=\"bk-banner\">\n", | |
" <a href=\"http://bokeh.pydata.org\" target=\"_blank\" class=\"bk-logo bk-logo-small bk-logo-notebook\"></a>\n", | |
" <span id=\"4ed2b105-1e34-4c76-a309-71a0bbd220be\">Loading BokehJS ...</span>\n", | |
" </div>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
"(function(global) {\n", | |
" function now() {\n", | |
" return new Date();\n", | |
" }\n", | |
"\n", | |
" if (typeof (window._bokeh_onload_callbacks) === \"undefined\") {\n", | |
" window._bokeh_onload_callbacks = [];\n", | |
" }\n", | |
"\n", | |
" function run_callbacks() {\n", | |
" window._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n", | |
" delete window._bokeh_onload_callbacks\n", | |
" console.info(\"Bokeh: all callbacks have finished\");\n", | |
" }\n", | |
"\n", | |
" function load_libs(js_urls, callback) {\n", | |
" window._bokeh_onload_callbacks.push(callback);\n", | |
" if (window._bokeh_is_loading > 0) {\n", | |
" console.log(\"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.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", | |
" window._bokeh_is_loading = js_urls.length;\n", | |
" for (var i = 0; i < js_urls.length; i++) {\n", | |
" var url = js_urls[i];\n", | |
" var s = document.createElement('script');\n", | |
" s.src = url;\n", | |
" s.async = false;\n", | |
" s.onreadystatechange = s.onload = function() {\n", | |
" window._bokeh_is_loading--;\n", | |
" if (window._bokeh_is_loading === 0) {\n", | |
" console.log(\"Bokeh: all BokehJS libraries loaded\");\n", | |
" run_callbacks()\n", | |
" }\n", | |
" };\n", | |
" s.onerror = function() {\n", | |
" console.warn(\"failed to load library \" + url);\n", | |
" };\n", | |
" console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", | |
" document.getElementsByTagName(\"head\")[0].appendChild(s);\n", | |
" }\n", | |
" };\n", | |
"\n", | |
" var js_urls = ['https://cdn.pydata.org/bokeh/release/bokeh-0.11.1.min.js', 'https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.11.1.min.js', 'https://cdn.pydata.org/bokeh/release/bokeh-compiler-0.11.1.min.js'];\n", | |
"\n", | |
" var inline_js = [\n", | |
" function(Bokeh) {\n", | |
" Bokeh.set_log_level(\"info\");\n", | |
" },\n", | |
" \n", | |
" function(Bokeh) {\n", | |
" Bokeh.$(\"#4ed2b105-1e34-4c76-a309-71a0bbd220be\").text(\"BokehJS successfully loaded\");\n", | |
" },\n", | |
" function(Bokeh) {\n", | |
" console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-0.11.1.min.css\");\n", | |
" Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-0.11.1.min.css\");\n", | |
" console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.11.1.min.css\");\n", | |
" Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.11.1.min.css\");\n", | |
" }\n", | |
" ];\n", | |
"\n", | |
" function run_inline_js() {\n", | |
" for (var i = 0; i < inline_js.length; i++) {\n", | |
" inline_js[i](window.Bokeh);\n", | |
" }\n", | |
" }\n", | |
"\n", | |
" if (window._bokeh_is_loading === 0) {\n", | |
" console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n", | |
" run_inline_js();\n", | |
" } else {\n", | |
" load_libs(js_urls, function() {\n", | |
" console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n", | |
" run_inline_js();\n", | |
" });\n", | |
" }\n", | |
"}(this));" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"output_notebook()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Configuration Options for PyAudio\n", | |
"You'll almost certainly have to hack these for your specific hardware. _There will be kernel crashes._" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": { | |
"collapsed": false, | |
"nbpresent": { | |
"id": "63f7898e-9b74-4422-8a8c-6730ee331b5d" | |
} | |
}, | |
"outputs": [], | |
"source": [ | |
"FORMAT = pyaudio.paInt16 \n", | |
"CHANNELS = 2\n", | |
"RATE = 44100 / 2\n", | |
"INPUT_BLOCK_TIME = 0.05\n", | |
"INPUT_FRAMES_PER_BLOCK = int(RATE * INPUT_BLOCK_TIME)\n", | |
"DEVICE_INDEX = 0\n", | |
"FRAMES_PER_BUFFER = 512" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": { | |
"collapsed": false, | |
"nbpresent": { | |
"id": "d4fa7dbf-cad2-43b3-b2ce-7ce8b81e2bd3" | |
} | |
}, | |
"outputs": [], | |
"source": [ | |
"class MicThread(threading.Thread):\n", | |
" def run(self):\n", | |
" self.stream = pyaudio.PyAudio().open(\n", | |
" format=FORMAT,\n", | |
" rate=RATE,\n", | |
" channels=CHANNELS,\n", | |
" input_device_index=DEVICE_INDEX,\n", | |
" input=True,\n", | |
" output=False,\n", | |
" frames_per_buffer=FRAMES_PER_BUFFER\n", | |
" )\n", | |
" self.running = True\n", | |
" while self.running:\n", | |
" data_source.data.update(y=self.read())\n", | |
" push_notebook(handle=handle)\n", | |
" time.sleep(0.0025)\n", | |
" self.stream.close()\n", | |
" \n", | |
" def read(self):\n", | |
" return np.frombuffer(\n", | |
" self.stream.read(\n", | |
" INPUT_FRAMES_PER_BLOCK,\n", | |
" exception_on_overflow=False),\n", | |
" np.short)\n", | |
" \n", | |
" def stop(self):\n", | |
" self.running = False" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": { | |
"collapsed": false, | |
"nbpresent": { | |
"id": "2c6cc5c1-4ce5-48c3-9e4a-9cdcc2bc3c1b" | |
}, | |
"scrolled": true | |
}, | |
"outputs": [], | |
"source": [ | |
"start_button = Button(\n", | |
" description=' Start',\n", | |
" font_family=\"Noto Sans\",\n", | |
" font_size=\"5rem\",\n", | |
" button_style=\"primary\",\n", | |
" icon=\"fa-microphone\",\n", | |
" width=\"100%\")\n", | |
"\n", | |
"@start_button.on_click\n", | |
"def start(btn):\n", | |
" if btn.description == \" Start\":\n", | |
" t = MicThread()\n", | |
" t.start()\n", | |
" setattr(btn, \"_thread\", t)\n", | |
" btn.description = \" Stop\"\n", | |
" btn.icon = \"fa-microphone-slash\"\n", | |
" btn.button_style = \"danger\"\n", | |
" else: \n", | |
" btn._thread.stop()\n", | |
" btn.description = \" Start\"\n", | |
" btn.icon = \"fa-microphone\"\n", | |
" btn.button_style = \"primary\"\n", | |
"\n", | |
"start_button" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": { | |
"collapsed": false, | |
"nbpresent": { | |
"id": "c80f21f3-e7f9-41f2-9fb3-d3658ae8ac16" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"\n", | |
"\n", | |
" <div class=\"plotdiv\" id=\"c10332e4-736d-4870-b658-13d94d5b4072\"></div>\n", | |
"<script type=\"text/javascript\">\n", | |
" \n", | |
" (function(global) {\n", | |
" function now() {\n", | |
" return new Date();\n", | |
" }\n", | |
" \n", | |
" if (typeof (window._bokeh_onload_callbacks) === \"undefined\") {\n", | |
" window._bokeh_onload_callbacks = [];\n", | |
" }\n", | |
" \n", | |
" function run_callbacks() {\n", | |
" window._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n", | |
" delete window._bokeh_onload_callbacks\n", | |
" console.info(\"Bokeh: all callbacks have finished\");\n", | |
" }\n", | |
" \n", | |
" function load_libs(js_urls, callback) {\n", | |
" window._bokeh_onload_callbacks.push(callback);\n", | |
" if (window._bokeh_is_loading > 0) {\n", | |
" console.log(\"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.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", | |
" window._bokeh_is_loading = js_urls.length;\n", | |
" for (var i = 0; i < js_urls.length; i++) {\n", | |
" var url = js_urls[i];\n", | |
" var s = document.createElement('script');\n", | |
" s.src = url;\n", | |
" s.async = false;\n", | |
" s.onreadystatechange = s.onload = function() {\n", | |
" window._bokeh_is_loading--;\n", | |
" if (window._bokeh_is_loading === 0) {\n", | |
" console.log(\"Bokeh: all BokehJS libraries loaded\");\n", | |
" run_callbacks()\n", | |
" }\n", | |
" };\n", | |
" s.onerror = function() {\n", | |
" console.warn(\"failed to load library \" + url);\n", | |
" };\n", | |
" console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", | |
" document.getElementsByTagName(\"head\")[0].appendChild(s);\n", | |
" }\n", | |
" };var element = document.getElementById(\"c10332e4-736d-4870-b658-13d94d5b4072\");\n", | |
" if (element == null) {\n", | |
" console.log(\"Bokeh: ERROR: autoload.js configured with elementid 'c10332e4-736d-4870-b658-13d94d5b4072' but no matching script tag was found. \")\n", | |
" return false;\n", | |
" }\n", | |
" \n", | |
" var js_urls = [];\n", | |
" \n", | |
" var inline_js = [\n", | |
" function(Bokeh) {\n", | |
" Bokeh.$(function() {\n", | |
" var docs_json = {\"36775e04-9afd-4def-9479-866e5011614e\":{\"roots\":{\"references\":[{\"attributes\":{\"plot\":{\"id\":\"6d58c8ba-304b-4a95-bd8b-932c24f3c2a8\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"5408bcfb-d5b8-4a63-a7ce-3eaa4387b31a\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"afcea907-8414-444e-a971-c26c32a2a93f\",\"type\":\"BasicTicker\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"eedf9e97-a5a8-43ec-a845-76112ee7c764\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"y\",\"x\"],\"data\":{\"x\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999],\"y\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999]}},\"id\":\"24f4bdd7-d813-413d-9b6f-5c2a61abc744\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data_source\":{\"id\":\"24f4bdd7-d813-413d-9b6f-5c2a61abc744\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"37b8b823-cc70-44cd-9866-fa1a7ee204c3\",\"type\":\"Line\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"82ee2895-f72a-4cdc-bc20-7aa4e0b1e387\",\"type\":\"Line\"},\"selection_glyph\":null},\"id\":\"75e598cd-c25c-4e65-8eba-f27bac0dd572\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"overlay\":{\"id\":\"eedf9e97-a5a8-43ec-a845-76112ee7c764\",\"type\":\"BoxAnnotation\"},\"plot\":{\"id\":\"6d58c8ba-304b-4a95-bd8b-932c24f3c2a8\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"e8ba1e79-3711-4690-99f4-3bd63d184876\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"plot\":{\"id\":\"6d58c8ba-304b-4a95-bd8b-932c24f3c2a8\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"90f37828-78d2-499c-b23d-7c2a11159193\",\"type\":\"PanTool\"},{\"attributes\":{\"callback\":null,\"end\":1000},\"id\":\"f6bdf3c8-1a14-4bb2-8c1b-5595b0df0995\",\"type\":\"Range1d\"},{\"attributes\":{},\"id\":\"5cf3c9ae-108e-48db-bb33-2f4da59277bb\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"plot\":{\"id\":\"6d58c8ba-304b-4a95-bd8b-932c24f3c2a8\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"afcea907-8414-444e-a971-c26c32a2a93f\",\"type\":\"BasicTicker\"}},\"id\":\"ff8948ef-d8e6-44a5-a984-e5baf228d779\",\"type\":\"Grid\"},{\"attributes\":{\"formatter\":{\"id\":\"1dd5e318-1887-497d-b1d3-8705d311b71e\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"6d58c8ba-304b-4a95-bd8b-932c24f3c2a8\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"fb8cc0e9-9406-4a0c-a391-49a4e8eb2323\",\"type\":\"BasicTicker\"}},\"id\":\"21e7c7a3-b20d-473f-99e3-f5bc4cf8dc6f\",\"type\":\"LinearAxis\"},{\"attributes\":{\"plot\":{\"id\":\"6d58c8ba-304b-4a95-bd8b-932c24f3c2a8\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"fc9466f9-bf80-44a8-9598-0a30094e9b7a\",\"type\":\"HelpTool\"},{\"attributes\":{\"callback\":null,\"end\":10000,\"start\":-10000},\"id\":\"379f585e-c565-47bb-966f-0ab39a6294e5\",\"type\":\"Range1d\"},{\"attributes\":{\"plot\":{\"id\":\"6d58c8ba-304b-4a95-bd8b-932c24f3c2a8\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"1dfa133f-941b-4a48-8956-a7063a9833e7\",\"type\":\"ResizeTool\"},{\"attributes\":{\"below\":[{\"id\":\"d604051a-9306-4398-80bc-dd2e10048e80\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"21e7c7a3-b20d-473f-99e3-f5bc4cf8dc6f\",\"type\":\"LinearAxis\"}],\"plot_height\":625,\"plot_width\":1300,\"renderers\":[{\"id\":\"d604051a-9306-4398-80bc-dd2e10048e80\",\"type\":\"LinearAxis\"},{\"id\":\"ff8948ef-d8e6-44a5-a984-e5baf228d779\",\"type\":\"Grid\"},{\"id\":\"21e7c7a3-b20d-473f-99e3-f5bc4cf8dc6f\",\"type\":\"LinearAxis\"},{\"id\":\"fbabd4cb-38d2-4991-90a8-5b7318197639\",\"type\":\"Grid\"},{\"id\":\"eedf9e97-a5a8-43ec-a845-76112ee7c764\",\"type\":\"BoxAnnotation\"},{\"id\":\"75e598cd-c25c-4e65-8eba-f27bac0dd572\",\"type\":\"GlyphRenderer\"}],\"tool_events\":{\"id\":\"d6460907-7809-440e-ac2a-0f466889fe96\",\"type\":\"ToolEvents\"},\"tools\":[{\"id\":\"90f37828-78d2-499c-b23d-7c2a11159193\",\"type\":\"PanTool\"},{\"id\":\"a8b5d64d-23ea-4a8b-a401-e159c75f282a\",\"type\":\"WheelZoomTool\"},{\"id\":\"e8ba1e79-3711-4690-99f4-3bd63d184876\",\"type\":\"BoxZoomTool\"},{\"id\":\"e1a1d437-6420-4bf6-9f22-a4b898a4e6b6\",\"type\":\"PreviewSaveTool\"},{\"id\":\"1dfa133f-941b-4a48-8956-a7063a9833e7\",\"type\":\"ResizeTool\"},{\"id\":\"5408bcfb-d5b8-4a63-a7ce-3eaa4387b31a\",\"type\":\"ResetTool\"},{\"id\":\"fc9466f9-bf80-44a8-9598-0a30094e9b7a\",\"type\":\"HelpTool\"}],\"x_range\":{\"id\":\"f6bdf3c8-1a14-4bb2-8c1b-5595b0df0995\",\"type\":\"Range1d\"},\"y_range\":{\"id\":\"379f585e-c565-47bb-966f-0ab39a6294e5\",\"type\":\"Range1d\"}},\"id\":\"6d58c8ba-304b-4a95-bd8b-932c24f3c2a8\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1dd5e318-1887-497d-b1d3-8705d311b71e\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"plot\":{\"id\":\"6d58c8ba-304b-4a95-bd8b-932c24f3c2a8\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"e1a1d437-6420-4bf6-9f22-a4b898a4e6b6\",\"type\":\"PreviewSaveTool\"},{\"attributes\":{},\"id\":\"d6460907-7809-440e-ac2a-0f466889fe96\",\"type\":\"ToolEvents\"},{\"attributes\":{\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"37b8b823-cc70-44cd-9866-fa1a7ee204c3\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"82ee2895-f72a-4cdc-bc20-7aa4e0b1e387\",\"type\":\"Line\"},{\"attributes\":{\"plot\":{\"id\":\"6d58c8ba-304b-4a95-bd8b-932c24f3c2a8\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"a8b5d64d-23ea-4a8b-a401-e159c75f282a\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"fb8cc0e9-9406-4a0c-a391-49a4e8eb2323\",\"type\":\"BasicTicker\"},{\"attributes\":{\"formatter\":{\"id\":\"5cf3c9ae-108e-48db-bb33-2f4da59277bb\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"6d58c8ba-304b-4a95-bd8b-932c24f3c2a8\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"afcea907-8414-444e-a971-c26c32a2a93f\",\"type\":\"BasicTicker\"}},\"id\":\"d604051a-9306-4398-80bc-dd2e10048e80\",\"type\":\"LinearAxis\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"6d58c8ba-304b-4a95-bd8b-932c24f3c2a8\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"fb8cc0e9-9406-4a0c-a391-49a4e8eb2323\",\"type\":\"BasicTicker\"}},\"id\":\"fbabd4cb-38d2-4991-90a8-5b7318197639\",\"type\":\"Grid\"}],\"root_ids\":[\"6d58c8ba-304b-4a95-bd8b-932c24f3c2a8\"]},\"title\":\"Bokeh Application\",\"version\":\"0.11.1\"}};\n", | |
" var render_items = [{\"docid\":\"36775e04-9afd-4def-9479-866e5011614e\",\"elementid\":\"c10332e4-736d-4870-b658-13d94d5b4072\",\"modelid\":\"6d58c8ba-304b-4a95-bd8b-932c24f3c2a8\",\"notebook_comms_target\":\"e1e25eba-bfb6-403b-8bf6-35cd12f48c67\"}];\n", | |
" \n", | |
" Bokeh.embed.embed_items(docs_json, render_items);\n", | |
" });\n", | |
" },\n", | |
" function(Bokeh) {\n", | |
" }\n", | |
" ];\n", | |
" \n", | |
" function run_inline_js() {\n", | |
" for (var i = 0; i < inline_js.length; i++) {\n", | |
" inline_js[i](window.Bokeh);\n", | |
" }\n", | |
" }\n", | |
" \n", | |
" if (window._bokeh_is_loading === 0) {\n", | |
" console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n", | |
" run_inline_js();\n", | |
" } else {\n", | |
" load_libs(js_urls, function() {\n", | |
" console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n", | |
" run_inline_js();\n", | |
" });\n", | |
" }\n", | |
" }(this));\n", | |
"</script>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"data_source = ColumnDataSource(dict(x=range(1000), y=range(1000)))\n", | |
"p = figure(plot_width=1300,\n", | |
" plot_height=625,\n", | |
" x_range=[0, 1000],\n", | |
" y_range=[-10000, 10000])\n", | |
"p.line(\"x\", \"y\", source=data_source)\n", | |
"handle = show(p)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"anaconda-cloud": {}, | |
"kernelspec": { | |
"display_name": "Python 2", | |
"language": "python", | |
"name": "python2" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 2 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython2", | |
"version": "2.7.11" | |
}, | |
"nbpresent": { | |
"slides": { | |
"2d4b8abc-b529-4de6-9088-5ae01662ccce": { | |
"id": "2d4b8abc-b529-4de6-9088-5ae01662ccce", | |
"layout": "grid", | |
"prev": null, | |
"regions": { | |
"4ffade4a-ea46-41f3-ba1a-21ded7b00695": { | |
"attrs": { | |
"height": 0.16666666666666666, | |
"pad": 0.01, | |
"width": 0.16666666666666666, | |
"x": 0, | |
"y": 0.8333333333333334 | |
}, | |
"content": { | |
"cell": "2c6cc5c1-4ce5-48c3-9e4a-9cdcc2bc3c1b", | |
"part": "widgets" | |
}, | |
"id": "4ffade4a-ea46-41f3-ba1a-21ded7b00695" | |
}, | |
"58b2ece8-55de-45ca-8c80-4c6c61709bc2": { | |
"attrs": { | |
"height": 0.16666666666666666, | |
"pad": 0.01, | |
"width": 0.4166666666666667, | |
"x": 0.25, | |
"y": 0.8333333333333334 | |
}, | |
"content": { | |
"cell": "b48ff0cf-c950-4df1-a674-0d78597d832a", | |
"part": "source" | |
}, | |
"id": "58b2ece8-55de-45ca-8c80-4c6c61709bc2" | |
}, | |
"87efa7a8-06df-41de-ad05-1a4bdc69c6b4": { | |
"attrs": { | |
"height": 0.75, | |
"pad": 0.01, | |
"width": 1, | |
"x": -0.000998003992015968, | |
"y": 0 | |
}, | |
"content": { | |
"cell": "c80f21f3-e7f9-41f2-9fb3-d3658ae8ac16", | |
"part": "outputs" | |
}, | |
"id": "87efa7a8-06df-41de-ad05-1a4bdc69c6b4" | |
} | |
} | |
} | |
}, | |
"themes": { | |
"default": "3578e8d1-6a8b-43a1-a2cb-b884dcf99ed9", | |
"theme": { | |
"3578e8d1-6a8b-43a1-a2cb-b884dcf99ed9": { | |
"backgrounds": { | |
"f751f73d-57e7-42e5-9309-98e7a8912314": { | |
"background-image": "data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI1NiIgaWQ9InN2ZzIiIGlua3NjYXBlOnZlcnNpb249IjAuOTEgcjEzNzI1IiBzb2RpcG9kaTpkb2NuYW1lPSJib2tlaGljb24uc3ZnIiB2ZXJzaW9uPSIxLjEiIHdpZHRoPSIyNTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyI+CiAgPGRlZnMgaWQ9ImRlZnM0Ii8+CiAgPHNvZGlwb2RpOm5hbWVkdmlldyBib3JkZXJjb2xvcj0iIzY2NjY2NiIgYm9yZGVyb3BhY2l0eT0iMS4wIiBmaXQtbWFyZ2luLWJvdHRvbT0iNjQiIGZpdC1tYXJnaW4tbGVmdD0iNjQiIGZpdC1tYXJnaW4tcmlnaHQ9IjY0IiBmaXQtbWFyZ2luLXRvcD0iNjQiIGlkPSJiYXNlIiBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJsYXllcjEiIGlua3NjYXBlOmN4PSItMjguODE4NDU2IiBpbmtzY2FwZTpjeT0iMjUwLjY1MjMxIiBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0icHgiIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiIGlua3NjYXBlOnNuYXAtYmJveD0idHJ1ZSIgaW5rc2NhcGU6c25hcC1ub2Rlcz0idHJ1ZSIgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iNzc1IiBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIiBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjE0NDAiIGlua3NjYXBlOndpbmRvdy14PSIwIiBpbmtzY2FwZTp3aW5kb3cteT0iMSIgaW5rc2NhcGU6em9vbT0iMC43IiBwYWdlY29sb3I9IiNmZmZmZmYiIHNob3dncmlkPSJmYWxzZSIvPgogIDxtZXRhZGF0YSBpZD0ibWV0YWRhdGE3Ij4KICAgIDxyZGY6cmRmPgogICAgICA8Y2M6d29yayByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIvPgogICAgICAgIDxkYzp0aXRsZS8+CiAgICAgIDwvY2M6d29yaz4KICAgIDwvcmRmOnJkZj4KICA8L21ldGFkYXRhPgogIDxnIGlkPSJsYXllcjEiIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiIGlua3NjYXBlOmxhYmVsPSJMYXllciAxIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1OC42NzMxMTksLTg1Ny42Njk0KSI+CiAgICA8ZyBpZD0iZzUzOTciIHRyYW5zZm9ybT0ibWF0cml4KDAuNTExOTk5OTksMCwwLDAuNTEwNjEzNTcsMi41OTk1MTgyLDUxMy42OTM5NikiPgogICAgICA8cGF0aCBkPSJtIDEzMC42MjUxOSw4NzEuMzIxOTcgOTguMjA0MTUsMTQuNDA5NDcgYyAtMC42NDM4NCwtMTcuMTMzODMgMy4wMzcwNywtMzkuMzY4MzIgLTcuNzU1MzcsLTQ3Ljg5MTExIC0xNS4yMzA3NiwtMTIuMTMxMzYgLTM0LjQ3MzAyLC05LjIzMzQ1IC00Ny40NDM3OSwtMTAuNjI5MyB6IiBpZD0icmVjdDMwNjEiIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2NjY2MiIHN0eWxlPSJmaWxsOiMwMGFiYWY7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOm5vbmUiLz4KICAgICAgPHBhdGggZD0ibSA5NC43NTY2ODksODUzLjk4MzE2IDAsLTMwLjAxNTI4IDcuMjIyMDcxLC02LjQ1MDE0IGMgOC43OTE5OCwtNy44NTIyNSAxMy40MDAyNSwtMTEuMzI1NTggMTguNzY3NjUsLTE0LjE0NTUzIDYuMDIzNjUsLTMuMTY0NzMgMTAuMzU5MDIsLTQuMzU4OTIgMTUuOTAxNjksLTQuMzgwMTUgNC4zMzY4OCwtMC4wMTY2IDQuNzkwMzUsMC4wODA2IDguMTgxOTQsMS43NTQ5MiA0LjkyMzYxLDIuNDMwNTcgMTEuMjY3NTEsNy44NzUyNiAyMC43NDIxLDE3LjgwMjAzIGwgOC4wMDY5Niw4LjM4OTExIC0zNi44MzA1OCwyNi42ODcyNiBjIC0yMC4yNTY4MSwxNC42Nzc5OSAtMzcuOTkxODU0LDI3LjUxNjU2IC0zOS40MTEyMDQsMjguNTMwMTUgbCAtMi41ODA2MjcsMS44NDI5IDAsLTMwLjAxNTI3IHoiIGlkPSJwYXRoMzA3NSIgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgc3R5bGU9ImZpbGw6IzAwYjg1NDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIvPgogICAgICA8cGF0aCBkPSJtIDE2Ni45MTI3OSw4ODguMTc5OTUgNjAuNTU4ODcsNzguNjQwNDEgYyAxMS40NTA5NiwtMTIuNzYxNTggMjkuNTU2NzUsLTI2LjE4MTgxIDI3LjcyNjUxLC0zOS44MTEzOCAtMi41MTA4NiwtMTkuMzA5MSAtMTguMzU1MDcsLTMwLjYwNjE2IC0yNi43MDY0NCwtNDAuNjI4MzMgeiIgaWQ9InJlY3QzMDYxLTEiIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2NjY2MiIHN0eWxlPSJmaWxsOiMzYTlhZTU7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOm5vbmUiLz4KICAgICAgPHBhdGggZD0ibSAxODMuMDQ0NDYsOTI1LjY0MDEzIC0xMy4wNzIyNCw5OC4zOTEwNyBjIDE3LjEyMzQ4LC0wLjg3NjkgMzkuNDA1OTgsMi41MDEzIDQ3Ljc4MTE5LC04LjQwNjEgMTEuOTIzMDQsLTE1LjM5NDQgOC43NjM2NSwtMzQuNTk1NDUgOS45ODI5MiwtNDcuNTg0MDEgeiIgaWQ9InJlY3QzMDYxLTgiIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2NjY2MiIHN0eWxlPSJmaWxsOiM4ZTAwOGU7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOm5vbmUiLz4KICAgICAgPHBhdGggZD0ibSAxNjYuNzA3MTQsOTYyLjUzNzczIC04MC40NTc0MzYsNTguMTIzMDcgYyAxMi40MDUwNjIsMTEuODM2MyAyNS4yNjQ3MjYsMzAuMzQ0NCAzOC45NDM5MzYsMjguOTMyMyAxOS4zNzY5MiwtMS45MTg2IDMxLjE1MzcyLC0xNy40MDk2IDQxLjQyNjg1LC0yNS40NTAyIHoiIGlkPSJyZWN0MzA2MS01IiBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2NjIiBzdHlsZT0iZmlsbDojZjQwMDU1O2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lIi8+CiAgICAgIDxwYXRoIGQ9Ik0gMTI5LjI3MjA3LDk3Ny42MTI3NiAzMS4xOTQ2NDIsOTYyLjM2NDQ3IGMgMC40OTczODUsMTcuMTM4NjkgLTMuMzczNDIyLDM5LjM0MDkzIDcuMzQ1NzgsNDcuOTU1NjMgMTUuMTI2NTE1LDEyLjI2MTEgMzQuMzkyODQyLDkuNTI3OCA0Ny4zNTEyMDcsMTEuMDM0NCB6IiBpZD0icmVjdDMwNjEtMyIgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgc29kaXBvZGk6bm9kZXR5cGVzPSJjY2NjYyIgc3R5bGU9ImZpbGw6I2YzNGUwMDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6bm9uZSIvPgogICAgICA8cGF0aCBkPSJNIDkyLjQ4MDA0Miw5NjAuNTMwMzQgMzQuMzE2NjgxLDg4MC4xMDIwMyBjIC0xMS44MzAwNTQsMTIuNDEwOTggLTMwLjMzMTczNjYsMjUuMjc5OTIgLTI4LjkxMjc0NDksMzguOTU4NDEgMS45MjgyNzg2LDE5LjM3NTk2IDE3LjQyNTExOTksMzEuMTQ1IDI1LjQ3MDkwMzksNDEuNDE0MSB6IiBpZD0icmVjdDMwNjEtNTYiIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2NjY2MiIHN0eWxlPSJmaWxsOiNmOWFhMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOm5vbmUiLz4KICAgICAgPHBhdGggZD0ibSA3Ny44OTUwNjYsOTIyLjY1MDc5IDE2LjMyMTc5NiwtOTcuOTA0NSBjIC0xNy4xNDMxMjYsMC4zMDk2MSAtMzkuMzAxNjA5LC0zLjgwNDIgLTQ4LjAzMzI0OCw2LjgyIC0xMi40MjYwNTgsMTQuOTkxMjkgLTkuOTAzOTM3LDM0LjI4NjQgLTExLjU1MjQ2MSw0Ny4yMjc0OCB6IiBpZD0icmVjdDMwNjEtODciIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2NjY2MiIHN0eWxlPSJmaWxsOiNhM2U5MDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOm5vbmUiLz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPg==", | |
"id": "f751f73d-57e7-42e5-9309-98e7a8912314", | |
"x": "right", | |
"y": "bottom" | |
} | |
}, | |
"id": "3578e8d1-6a8b-43a1-a2cb-b884dcf99ed9", | |
"palette": { | |
"c7c024ae-a23b-4a31-b1b5-582a9c50bb62": { | |
"id": "c7c024ae-a23b-4a31-b1b5-582a9c50bb62", | |
"rgb": [ | |
140, | |
4, | |
140 | |
] | |
}, | |
"f34bd8cd-d762-4b0e-9441-d4ec3a16495f": { | |
"id": "f34bd8cd-d762-4b0e-9441-d4ec3a16495f", | |
"rgb": [ | |
4, | |
4, | |
4 | |
] | |
} | |
}, | |
"rules": { | |
"h1": { | |
"color": "c7c024ae-a23b-4a31-b1b5-582a9c50bb62", | |
"font-size": 7 | |
} | |
}, | |
"text-base": { | |
"font-family": "Noto Sans", | |
"font-size": 3 | |
} | |
} | |
} | |
} | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 0 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment