Skip to content

Instantly share code, notes, and snippets.

Created February 25, 2016 04:01
Show Gist options
  • Save anonymous/73677eb25f6ba78aff47 to your computer and use it in GitHub Desktop.
Save anonymous/73677eb25f6ba78aff47 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"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