Skip to content

Instantly share code, notes, and snippets.

@nagishin
Created March 21, 2019 15:59
Show Gist options
  • Save nagishin/c7125dbf57b75aa483b18d71380634f3 to your computer and use it in GitHub Desktop.
Save nagishin/c7125dbf57b75aa483b18d71380634f3 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"application/javascript": [
"/* Put everything inside the global mpl namespace */\n",
"window.mpl = {};\n",
"\n",
"\n",
"mpl.get_websocket_type = function() {\n",
" if (typeof(WebSocket) !== 'undefined') {\n",
" return WebSocket;\n",
" } else if (typeof(MozWebSocket) !== 'undefined') {\n",
" return MozWebSocket;\n",
" } else {\n",
" alert('Your browser does not have WebSocket support.' +\n",
" 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
" 'Firefox 4 and 5 are also supported but you ' +\n",
" 'have to enable WebSockets in about:config.');\n",
" };\n",
"}\n",
"\n",
"mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
" this.id = figure_id;\n",
"\n",
" this.ws = websocket;\n",
"\n",
" this.supports_binary = (this.ws.binaryType != undefined);\n",
"\n",
" if (!this.supports_binary) {\n",
" var warnings = document.getElementById(\"mpl-warnings\");\n",
" if (warnings) {\n",
" warnings.style.display = 'block';\n",
" warnings.textContent = (\n",
" \"This browser does not support binary websocket messages. \" +\n",
" \"Performance may be slow.\");\n",
" }\n",
" }\n",
"\n",
" this.imageObj = new Image();\n",
"\n",
" this.context = undefined;\n",
" this.message = undefined;\n",
" this.canvas = undefined;\n",
" this.rubberband_canvas = undefined;\n",
" this.rubberband_context = undefined;\n",
" this.format_dropdown = undefined;\n",
"\n",
" this.image_mode = 'full';\n",
"\n",
" this.root = $('<div/>');\n",
" this._root_extra_style(this.root)\n",
" this.root.attr('style', 'display: inline-block');\n",
"\n",
" $(parent_element).append(this.root);\n",
"\n",
" this._init_header(this);\n",
" this._init_canvas(this);\n",
" this._init_toolbar(this);\n",
"\n",
" var fig = this;\n",
"\n",
" this.waiting = false;\n",
"\n",
" this.ws.onopen = function () {\n",
" fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
" fig.send_message(\"send_image_mode\", {});\n",
" if (mpl.ratio != 1) {\n",
" fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n",
" }\n",
" fig.send_message(\"refresh\", {});\n",
" }\n",
"\n",
" this.imageObj.onload = function() {\n",
" if (fig.image_mode == 'full') {\n",
" // Full images could contain transparency (where diff images\n",
" // almost always do), so we need to clear the canvas so that\n",
" // there is no ghosting.\n",
" fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
" }\n",
" fig.context.drawImage(fig.imageObj, 0, 0);\n",
" };\n",
"\n",
" this.imageObj.onunload = function() {\n",
" fig.ws.close();\n",
" }\n",
"\n",
" this.ws.onmessage = this._make_on_message_function(this);\n",
"\n",
" this.ondownload = ondownload;\n",
"}\n",
"\n",
"mpl.figure.prototype._init_header = function() {\n",
" var titlebar = $(\n",
" '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
" 'ui-helper-clearfix\"/>');\n",
" var titletext = $(\n",
" '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
" 'text-align: center; padding: 3px;\"/>');\n",
" titlebar.append(titletext)\n",
" this.root.append(titlebar);\n",
" this.header = titletext[0];\n",
"}\n",
"\n",
"\n",
"\n",
"mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
"\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
"\n",
"}\n",
"\n",
"mpl.figure.prototype._init_canvas = function() {\n",
" var fig = this;\n",
"\n",
" var canvas_div = $('<div/>');\n",
"\n",
" canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
"\n",
" function canvas_keyboard_event(event) {\n",
" return fig.key_event(event, event['data']);\n",
" }\n",
"\n",
" canvas_div.keydown('key_press', canvas_keyboard_event);\n",
" canvas_div.keyup('key_release', canvas_keyboard_event);\n",
" this.canvas_div = canvas_div\n",
" this._canvas_extra_style(canvas_div)\n",
" this.root.append(canvas_div);\n",
"\n",
" var canvas = $('<canvas/>');\n",
" canvas.addClass('mpl-canvas');\n",
" canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
"\n",
" this.canvas = canvas[0];\n",
" this.context = canvas[0].getContext(\"2d\");\n",
"\n",
" var backingStore = this.context.backingStorePixelRatio ||\n",
"\tthis.context.webkitBackingStorePixelRatio ||\n",
"\tthis.context.mozBackingStorePixelRatio ||\n",
"\tthis.context.msBackingStorePixelRatio ||\n",
"\tthis.context.oBackingStorePixelRatio ||\n",
"\tthis.context.backingStorePixelRatio || 1;\n",
"\n",
" mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
"\n",
" var rubberband = $('<canvas/>');\n",
" rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
"\n",
" var pass_mouse_events = true;\n",
"\n",
" canvas_div.resizable({\n",
" start: function(event, ui) {\n",
" pass_mouse_events = false;\n",
" },\n",
" resize: function(event, ui) {\n",
" fig.request_resize(ui.size.width, ui.size.height);\n",
" },\n",
" stop: function(event, ui) {\n",
" pass_mouse_events = true;\n",
" fig.request_resize(ui.size.width, ui.size.height);\n",
" },\n",
" });\n",
"\n",
" function mouse_event_fn(event) {\n",
" if (pass_mouse_events)\n",
" return fig.mouse_event(event, event['data']);\n",
" }\n",
"\n",
" rubberband.mousedown('button_press', mouse_event_fn);\n",
" rubberband.mouseup('button_release', mouse_event_fn);\n",
" // Throttle sequential mouse events to 1 every 20ms.\n",
" rubberband.mousemove('motion_notify', mouse_event_fn);\n",
"\n",
" rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
" rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
"\n",
" canvas_div.on(\"wheel\", function (event) {\n",
" event = event.originalEvent;\n",
" event['data'] = 'scroll'\n",
" if (event.deltaY < 0) {\n",
" event.step = 1;\n",
" } else {\n",
" event.step = -1;\n",
" }\n",
" mouse_event_fn(event);\n",
" });\n",
"\n",
" canvas_div.append(canvas);\n",
" canvas_div.append(rubberband);\n",
"\n",
" this.rubberband = rubberband;\n",
" this.rubberband_canvas = rubberband[0];\n",
" this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
" this.rubberband_context.strokeStyle = \"#000000\";\n",
"\n",
" this._resize_canvas = function(width, height) {\n",
" // Keep the size of the canvas, canvas container, and rubber band\n",
" // canvas in synch.\n",
" canvas_div.css('width', width)\n",
" canvas_div.css('height', height)\n",
"\n",
" canvas.attr('width', width * mpl.ratio);\n",
" canvas.attr('height', height * mpl.ratio);\n",
" canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n",
"\n",
" rubberband.attr('width', width);\n",
" rubberband.attr('height', height);\n",
" }\n",
"\n",
" // Set the figure to an initial 600x600px, this will subsequently be updated\n",
" // upon first draw.\n",
" this._resize_canvas(600, 600);\n",
"\n",
" // Disable right mouse context menu.\n",
" $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
" return false;\n",
" });\n",
"\n",
" function set_focus () {\n",
" canvas.focus();\n",
" canvas_div.focus();\n",
" }\n",
"\n",
" window.setTimeout(set_focus, 100);\n",
"}\n",
"\n",
"mpl.figure.prototype._init_toolbar = function() {\n",
" var fig = this;\n",
"\n",
" var nav_element = $('<div/>')\n",
" nav_element.attr('style', 'width: 100%');\n",
" this.root.append(nav_element);\n",
"\n",
" // Define a callback function for later on.\n",
" function toolbar_event(event) {\n",
" return fig.toolbar_button_onclick(event['data']);\n",
" }\n",
" function toolbar_mouse_event(event) {\n",
" return fig.toolbar_button_onmouseover(event['data']);\n",
" }\n",
"\n",
" for(var toolbar_ind in mpl.toolbar_items) {\n",
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
"\n",
" if (!name) {\n",
" // put a spacer in here.\n",
" continue;\n",
" }\n",
" var button = $('<button/>');\n",
" button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
" 'ui-button-icon-only');\n",
" button.attr('role', 'button');\n",
" button.attr('aria-disabled', 'false');\n",
" button.click(method_name, toolbar_event);\n",
" button.mouseover(tooltip, toolbar_mouse_event);\n",
"\n",
" var icon_img = $('<span/>');\n",
" icon_img.addClass('ui-button-icon-primary ui-icon');\n",
" icon_img.addClass(image);\n",
" icon_img.addClass('ui-corner-all');\n",
"\n",
" var tooltip_span = $('<span/>');\n",
" tooltip_span.addClass('ui-button-text');\n",
" tooltip_span.html(tooltip);\n",
"\n",
" button.append(icon_img);\n",
" button.append(tooltip_span);\n",
"\n",
" nav_element.append(button);\n",
" }\n",
"\n",
" var fmt_picker_span = $('<span/>');\n",
"\n",
" var fmt_picker = $('<select/>');\n",
" fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
" fmt_picker_span.append(fmt_picker);\n",
" nav_element.append(fmt_picker_span);\n",
" this.format_dropdown = fmt_picker[0];\n",
"\n",
" for (var ind in mpl.extensions) {\n",
" var fmt = mpl.extensions[ind];\n",
" var option = $(\n",
" '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
" fmt_picker.append(option)\n",
" }\n",
"\n",
" // Add hover states to the ui-buttons\n",
" $( \".ui-button\" ).hover(\n",
" function() { $(this).addClass(\"ui-state-hover\");},\n",
" function() { $(this).removeClass(\"ui-state-hover\");}\n",
" );\n",
"\n",
" var status_bar = $('<span class=\"mpl-message\"/>');\n",
" nav_element.append(status_bar);\n",
" this.message = status_bar[0];\n",
"}\n",
"\n",
"mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
" // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
" // which will in turn request a refresh of the image.\n",
" this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
"}\n",
"\n",
"mpl.figure.prototype.send_message = function(type, properties) {\n",
" properties['type'] = type;\n",
" properties['figure_id'] = this.id;\n",
" this.ws.send(JSON.stringify(properties));\n",
"}\n",
"\n",
"mpl.figure.prototype.send_draw_message = function() {\n",
" if (!this.waiting) {\n",
" this.waiting = true;\n",
" this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
" }\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
" var format_dropdown = fig.format_dropdown;\n",
" var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
" fig.ondownload(fig, format);\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
" var size = msg['size'];\n",
" if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
" fig._resize_canvas(size[0], size[1]);\n",
" fig.send_message(\"refresh\", {});\n",
" };\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
" var x0 = msg['x0'] / mpl.ratio;\n",
" var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n",
" var x1 = msg['x1'] / mpl.ratio;\n",
" var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n",
" x0 = Math.floor(x0) + 0.5;\n",
" y0 = Math.floor(y0) + 0.5;\n",
" x1 = Math.floor(x1) + 0.5;\n",
" y1 = Math.floor(y1) + 0.5;\n",
" var min_x = Math.min(x0, x1);\n",
" var min_y = Math.min(y0, y1);\n",
" var width = Math.abs(x1 - x0);\n",
" var height = Math.abs(y1 - y0);\n",
"\n",
" fig.rubberband_context.clearRect(\n",
" 0, 0, fig.canvas.width, fig.canvas.height);\n",
"\n",
" fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
" // Updates the figure title.\n",
" fig.header.textContent = msg['label'];\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
" var cursor = msg['cursor'];\n",
" switch(cursor)\n",
" {\n",
" case 0:\n",
" cursor = 'pointer';\n",
" break;\n",
" case 1:\n",
" cursor = 'default';\n",
" break;\n",
" case 2:\n",
" cursor = 'crosshair';\n",
" break;\n",
" case 3:\n",
" cursor = 'move';\n",
" break;\n",
" }\n",
" fig.rubberband_canvas.style.cursor = cursor;\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_message = function(fig, msg) {\n",
" fig.message.textContent = msg['message'];\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
" // Request the server to send over a new figure.\n",
" fig.send_draw_message();\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
" fig.image_mode = msg['mode'];\n",
"}\n",
"\n",
"mpl.figure.prototype.updated_canvas_event = function() {\n",
" // Called whenever the canvas gets updated.\n",
" this.send_message(\"ack\", {});\n",
"}\n",
"\n",
"// A function to construct a web socket function for onmessage handling.\n",
"// Called in the figure constructor.\n",
"mpl.figure.prototype._make_on_message_function = function(fig) {\n",
" return function socket_on_message(evt) {\n",
" if (evt.data instanceof Blob) {\n",
" /* FIXME: We get \"Resource interpreted as Image but\n",
" * transferred with MIME type text/plain:\" errors on\n",
" * Chrome. But how to set the MIME type? It doesn't seem\n",
" * to be part of the websocket stream */\n",
" evt.data.type = \"image/png\";\n",
"\n",
" /* Free the memory for the previous frames */\n",
" if (fig.imageObj.src) {\n",
" (window.URL || window.webkitURL).revokeObjectURL(\n",
" fig.imageObj.src);\n",
" }\n",
"\n",
" fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
" evt.data);\n",
" fig.updated_canvas_event();\n",
" fig.waiting = false;\n",
" return;\n",
" }\n",
" else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
" fig.imageObj.src = evt.data;\n",
" fig.updated_canvas_event();\n",
" fig.waiting = false;\n",
" return;\n",
" }\n",
"\n",
" var msg = JSON.parse(evt.data);\n",
" var msg_type = msg['type'];\n",
"\n",
" // Call the \"handle_{type}\" callback, which takes\n",
" // the figure and JSON message as its only arguments.\n",
" try {\n",
" var callback = fig[\"handle_\" + msg_type];\n",
" } catch (e) {\n",
" console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
" return;\n",
" }\n",
"\n",
" if (callback) {\n",
" try {\n",
" // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
" callback(fig, msg);\n",
" } catch (e) {\n",
" console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
" }\n",
" }\n",
" };\n",
"}\n",
"\n",
"// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
"mpl.findpos = function(e) {\n",
" //this section is from http://www.quirksmode.org/js/events_properties.html\n",
" var targ;\n",
" if (!e)\n",
" e = window.event;\n",
" if (e.target)\n",
" targ = e.target;\n",
" else if (e.srcElement)\n",
" targ = e.srcElement;\n",
" if (targ.nodeType == 3) // defeat Safari bug\n",
" targ = targ.parentNode;\n",
"\n",
" // jQuery normalizes the pageX and pageY\n",
" // pageX,Y are the mouse positions relative to the document\n",
" // offset() returns the position of the element relative to the document\n",
" var x = e.pageX - $(targ).offset().left;\n",
" var y = e.pageY - $(targ).offset().top;\n",
"\n",
" return {\"x\": x, \"y\": y};\n",
"};\n",
"\n",
"/*\n",
" * return a copy of an object with only non-object keys\n",
" * we need this to avoid circular references\n",
" * http://stackoverflow.com/a/24161582/3208463\n",
" */\n",
"function simpleKeys (original) {\n",
" return Object.keys(original).reduce(function (obj, key) {\n",
" if (typeof original[key] !== 'object')\n",
" obj[key] = original[key]\n",
" return obj;\n",
" }, {});\n",
"}\n",
"\n",
"mpl.figure.prototype.mouse_event = function(event, name) {\n",
" var canvas_pos = mpl.findpos(event)\n",
"\n",
" if (name === 'button_press')\n",
" {\n",
" this.canvas.focus();\n",
" this.canvas_div.focus();\n",
" }\n",
"\n",
" var x = canvas_pos.x * mpl.ratio;\n",
" var y = canvas_pos.y * mpl.ratio;\n",
"\n",
" this.send_message(name, {x: x, y: y, button: event.button,\n",
" step: event.step,\n",
" guiEvent: simpleKeys(event)});\n",
"\n",
" /* This prevents the web browser from automatically changing to\n",
" * the text insertion cursor when the button is pressed. We want\n",
" * to control all of the cursor setting manually through the\n",
" * 'cursor' event from matplotlib */\n",
" event.preventDefault();\n",
" return false;\n",
"}\n",
"\n",
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
" // Handle any extra behaviour associated with a key event\n",
"}\n",
"\n",
"mpl.figure.prototype.key_event = function(event, name) {\n",
"\n",
" // Prevent repeat events\n",
" if (name == 'key_press')\n",
" {\n",
" if (event.which === this._key)\n",
" return;\n",
" else\n",
" this._key = event.which;\n",
" }\n",
" if (name == 'key_release')\n",
" this._key = null;\n",
"\n",
" var value = '';\n",
" if (event.ctrlKey && event.which != 17)\n",
" value += \"ctrl+\";\n",
" if (event.altKey && event.which != 18)\n",
" value += \"alt+\";\n",
" if (event.shiftKey && event.which != 16)\n",
" value += \"shift+\";\n",
"\n",
" value += 'k';\n",
" value += event.which.toString();\n",
"\n",
" this._key_event_extra(event, name);\n",
"\n",
" this.send_message(name, {key: value,\n",
" guiEvent: simpleKeys(event)});\n",
" return false;\n",
"}\n",
"\n",
"mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
" if (name == 'download') {\n",
" this.handle_save(this, null);\n",
" } else {\n",
" this.send_message(\"toolbar_button\", {name: name});\n",
" }\n",
"};\n",
"\n",
"mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
" this.message.textContent = tooltip;\n",
"};\n",
"mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
"\n",
"mpl.extensions = [\"eps\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\"];\n",
"\n",
"mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
" // Create a \"websocket\"-like object which calls the given IPython comm\n",
" // object with the appropriate methods. Currently this is a non binary\n",
" // socket, so there is still some room for performance tuning.\n",
" var ws = {};\n",
"\n",
" ws.close = function() {\n",
" comm.close()\n",
" };\n",
" ws.send = function(m) {\n",
" //console.log('sending', m);\n",
" comm.send(m);\n",
" };\n",
" // Register the callback with on_msg.\n",
" comm.on_msg(function(msg) {\n",
" //console.log('receiving', msg['content']['data'], msg);\n",
" // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
" ws.onmessage(msg['content']['data'])\n",
" });\n",
" return ws;\n",
"}\n",
"\n",
"mpl.mpl_figure_comm = function(comm, msg) {\n",
" // This is the function which gets called when the mpl process\n",
" // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
"\n",
" var id = msg.content.data.id;\n",
" // Get hold of the div created by the display call when the Comm\n",
" // socket was opened in Python.\n",
" var element = $(\"#\" + id);\n",
" var ws_proxy = comm_websocket_adapter(comm)\n",
"\n",
" function ondownload(figure, format) {\n",
" window.open(figure.imageObj.src);\n",
" }\n",
"\n",
" var fig = new mpl.figure(id, ws_proxy,\n",
" ondownload,\n",
" element.get(0));\n",
"\n",
" // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
" // web socket which is closed, not our websocket->open comm proxy.\n",
" ws_proxy.onopen();\n",
"\n",
" fig.parent_element = element.get(0);\n",
" fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
" if (!fig.cell_info) {\n",
" console.error(\"Failed to find cell for figure\", id, fig);\n",
" return;\n",
" }\n",
"\n",
" var output_index = fig.cell_info[2]\n",
" var cell = fig.cell_info[0];\n",
"\n",
"};\n",
"\n",
"mpl.figure.prototype.handle_close = function(fig, msg) {\n",
" var width = fig.canvas.width/mpl.ratio\n",
" fig.root.unbind('remove')\n",
"\n",
" // Update the output cell to use the data from the current canvas.\n",
" fig.push_to_output();\n",
" var dataURL = fig.canvas.toDataURL();\n",
" // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
" // the notebook keyboard shortcuts fail.\n",
" IPython.keyboard_manager.enable()\n",
" $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n",
" fig.close_ws(fig, msg);\n",
"}\n",
"\n",
"mpl.figure.prototype.close_ws = function(fig, msg){\n",
" fig.send_message('closing', msg);\n",
" // fig.ws.close()\n",
"}\n",
"\n",
"mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
" // Turn the data on the canvas into data in the output cell.\n",
" var width = this.canvas.width/mpl.ratio\n",
" var dataURL = this.canvas.toDataURL();\n",
" this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
"}\n",
"\n",
"mpl.figure.prototype.updated_canvas_event = function() {\n",
" // Tell IPython that the notebook contents must change.\n",
" IPython.notebook.set_dirty(true);\n",
" this.send_message(\"ack\", {});\n",
" var fig = this;\n",
" // Wait a second, then push the new image to the DOM so\n",
" // that it is saved nicely (might be nice to debounce this).\n",
" setTimeout(function () { fig.push_to_output() }, 1000);\n",
"}\n",
"\n",
"mpl.figure.prototype._init_toolbar = function() {\n",
" var fig = this;\n",
"\n",
" var nav_element = $('<div/>')\n",
" nav_element.attr('style', 'width: 100%');\n",
" this.root.append(nav_element);\n",
"\n",
" // Define a callback function for later on.\n",
" function toolbar_event(event) {\n",
" return fig.toolbar_button_onclick(event['data']);\n",
" }\n",
" function toolbar_mouse_event(event) {\n",
" return fig.toolbar_button_onmouseover(event['data']);\n",
" }\n",
"\n",
" for(var toolbar_ind in mpl.toolbar_items){\n",
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
"\n",
" if (!name) { continue; };\n",
"\n",
" var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
" button.click(method_name, toolbar_event);\n",
" button.mouseover(tooltip, toolbar_mouse_event);\n",
" nav_element.append(button);\n",
" }\n",
"\n",
" // Add the status bar.\n",
" var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
" nav_element.append(status_bar);\n",
" this.message = status_bar[0];\n",
"\n",
" // Add the close button to the window.\n",
" var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
" var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
" button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
" button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
" buttongrp.append(button);\n",
" var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
" titlebar.prepend(buttongrp);\n",
"}\n",
"\n",
"mpl.figure.prototype._root_extra_style = function(el){\n",
" var fig = this\n",
" el.on(\"remove\", function(){\n",
"\tfig.close_ws(fig, {});\n",
" });\n",
"}\n",
"\n",
"mpl.figure.prototype._canvas_extra_style = function(el){\n",
" // this is important to make the div 'focusable\n",
" el.attr('tabindex', 0)\n",
" // reach out to IPython and tell the keyboard manager to turn it's self\n",
" // off when our div gets focus\n",
"\n",
" // location in version 3\n",
" if (IPython.notebook.keyboard_manager) {\n",
" IPython.notebook.keyboard_manager.register_events(el);\n",
" }\n",
" else {\n",
" // location in version 2\n",
" IPython.keyboard_manager.register_events(el);\n",
" }\n",
"\n",
"}\n",
"\n",
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
" var manager = IPython.notebook.keyboard_manager;\n",
" if (!manager)\n",
" manager = IPython.keyboard_manager;\n",
"\n",
" // Check for shift+enter\n",
" if (event.shiftKey && event.which == 13) {\n",
" this.canvas_div.blur();\n",
" event.shiftKey = false;\n",
" // Send a \"J\" for go to next cell\n",
" event.which = 74;\n",
" event.keyCode = 74;\n",
" manager.command_mode();\n",
" manager.handle_keydown(event);\n",
" }\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
" fig.ondownload(fig, null);\n",
"}\n",
"\n",
"\n",
"mpl.find_output_cell = function(html_output) {\n",
" // Return the cell and output element which can be found *uniquely* in the notebook.\n",
" // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
" // IPython event is triggered only after the cells have been serialised, which for\n",
" // our purposes (turning an active figure into a static one), is too late.\n",
" var cells = IPython.notebook.get_cells();\n",
" var ncells = cells.length;\n",
" for (var i=0; i<ncells; i++) {\n",
" var cell = cells[i];\n",
" if (cell.cell_type === 'code'){\n",
" for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
" var data = cell.output_area.outputs[j];\n",
" if (data.data) {\n",
" // IPython >= 3 moved mimebundle to data attribute of output\n",
" data = data.data;\n",
" }\n",
" if (data['text/html'] == html_output) {\n",
" return [cell, data, j];\n",
" }\n",
" }\n",
" }\n",
" }\n",
"}\n",
"\n",
"// Register the function which deals with the matplotlib target/channel.\n",
"// The kernel may be null if the page has been refreshed.\n",
"if (IPython.notebook.kernel != null) {\n",
" IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
"}\n"
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<img src=\"data:image/png;base64,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\" width=\"640\">"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"ename": "RuntimeError",
"evalue": "This event loop is already running",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mRuntimeError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-4-fb7a9c708ee7>\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 41\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 42\u001b[0;31m \u001b[0mloop\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun_until_complete\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtasks\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# イベントループ開始\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 43\u001b[0m \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/usr/lib64/python3.6/asyncio/base_events.py\u001b[0m in \u001b[0;36mrun_until_complete\u001b[0;34m(self, future)\u001b[0m\n\u001b[1;32m 453\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 454\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun_forever\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 455\u001b[0m \u001b[0;32mexcept\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/usr/lib64/python3.6/asyncio/base_events.py\u001b[0m in \u001b[0;36mrun_forever\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 407\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_running\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 408\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'This event loop is already running'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 409\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mevents\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_running_loop\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mRuntimeError\u001b[0m: This event loop is already running",
"\nDuring handling of the above exception, another exception occurred:\n",
"\u001b[0;31mRuntimeError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-4-fb7a9c708ee7>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 137\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 138\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0m__name__\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'__main__'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 139\u001b[0;31m \u001b[0mRealTimeChart\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;32m<ipython-input-4-fb7a9c708ee7>\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 42\u001b[0m \u001b[0mloop\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun_until_complete\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtasks\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# イベントループ開始\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 43\u001b[0m \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 44\u001b[0;31m \u001b[0mloop\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun_until_complete\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mloop\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshutdown_asyncgens\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 45\u001b[0m \u001b[0mloop\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 46\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/usr/lib64/python3.6/asyncio/base_events.py\u001b[0m in \u001b[0;36mrun_until_complete\u001b[0;34m(self, future)\u001b[0m\n\u001b[1;32m 452\u001b[0m \u001b[0mfuture\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madd_done_callback\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_run_until_complete_cb\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 453\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 454\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun_forever\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 455\u001b[0m \u001b[0;32mexcept\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 456\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mnew_task\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mfuture\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdone\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mfuture\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcancelled\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/usr/lib64/python3.6/asyncio/base_events.py\u001b[0m in \u001b[0;36mrun_forever\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 406\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_check_closed\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 407\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_running\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 408\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'This event loop is already running'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 409\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mevents\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_running_loop\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 410\u001b[0m raise RuntimeError(\n",
"\u001b[0;31mRuntimeError\u001b[0m: This event loop is already running"
]
}
],
"source": [
"# -*- coding: utf-8 -*-\n",
"%matplotlib notebook\n",
"from matplotlib import pyplot as plt\n",
"from matplotlib import animation\n",
"import numpy as np\n",
"import aiohttp\n",
"import asyncio\n",
"from aiohttp import WSMsgType\n",
"import json\n",
"from collections import deque\n",
"import traceback\n",
"from datetime import datetime\n",
"from pytz import timezone, utc\n",
"\n",
"class RealTimeChart:\n",
"\n",
" def __init__(self):\n",
" self.length = 105 # チャートの期間\n",
" # キューの宣言\n",
" self.dt = deque(maxlen=self.length) # x軸(時刻)\n",
" self.ltp = deque(maxlen=self.length) # y軸(LTP)\n",
" self.ma = deque(maxlen=self.length) # y軸(移動平均)\n",
" self.bid = deque(maxlen=self.length) # y軸(最良気配値BID)\n",
" self.ask = deque(maxlen=self.length) # y軸(最良気配値ASK)\n",
"\n",
" # Figure生成\n",
" self.fig, self.ax = plt.subplots(1,1)\n",
" self.np_x = np.array([])\n",
" # Line更新\n",
" self.im_ltp = None # LTP\n",
" self.im_bid = None # 最良気配値BID\n",
" self.im_ask = None # 最良気配値ASK\n",
" self.im_ma = None # 移動平均\n",
" # アニメーション生成\n",
" ani = animation.FuncAnimation(self.fig, self.update_plot, init_func=self.init_plot,\n",
" interval=20, blit=True)\n",
"\n",
" # イベントループ\n",
" loop = asyncio.get_event_loop()\n",
" tasks = asyncio.wait([self.receive_from_rpc()]) # タスクの設定\n",
" try:\n",
" loop.run_until_complete(tasks) # イベントループ開始\n",
" finally:\n",
" loop.run_until_complete(loop.shutdown_asyncgens())\n",
" loop.close()\n",
"\n",
" # plot表示\n",
" plt.show()\n",
"\n",
" # ティッカーの購読[Twitter→@crptoresearcherさんの関数を引用]\n",
" async def receive_from_rpc(self):\n",
" # URL クエリパラメータの設定\n",
" uri = 'wss://ws.lightstream.bitflyer.com/json-rpc'\n",
" query = {'method': 'subscribe',\n",
" 'params': {'channel': 'lightning_ticker_FX_BTC_JPY'}}\n",
" while True:\n",
" try:\n",
" async with aiohttp.ClientSession() as session:\n",
" async with session.ws_connect(uri,\n",
" receive_timeout=10) as client:\n",
" await asyncio.wait([client.send_str(json.dumps(query))])\n",
" async for response in client:\n",
" if response.type != WSMsgType.TEXT:\n",
" print('response:' + str(response))\n",
" break\n",
"\n",
" data = json.loads(response[1])['params']['message']\n",
" # レスポンスデータをキューへ格納\n",
" self.dt.append(data['timestamp']) # 時刻\n",
" self.ltp.append(int(data['ltp'])) # LTP\n",
" self.bid.append(int(data['best_bid'])) # 最良気配値BID\n",
" self.ask.append(int(data['best_ask'])) # 最良気配値ASK\n",
" self.ma.append(int(np.mean(self.ltp))) # 移動平均\n",
" self.np_x = np.array(range(len(self.ltp)))\n",
"\n",
" except Exception as e:\n",
" traceback.print_exc()\n",
"\n",
" # アニメーション前処理\n",
" def init_plot(self):\n",
" plt.ion()\n",
" plt.cla() # チャートを初期化\n",
" plt.title('FXBTC/JPY') # グラフタイトル\n",
" plt.subplots_adjust(left=0.1, right=0.95,\n",
" bottom=0.1, top=0.95) # スペース\n",
" self.ax.tick_params(labelsize=10) # 軸目盛ラベルサイズ\n",
" self.ax.xaxis.grid(True, which = 'major', linestyle = '-', color = '#CFCFCF') # x軸グリッド\n",
" self.ax.yaxis.grid(True, which = 'major', linestyle = '-', color = '#CFCFCF') # y軸グリッド\n",
" self.ax.set_axisbelow(True) # グラフのグリッドがプロットした点や線の下に隠れる\n",
" # 空のplot生成\n",
" self.im_ltp, = self.ax.plot([], [], color='blue',\n",
" linewidth = 2.0, linestyle='solid') # LTP\n",
" self.im_bid, = self.ax.plot([], [], color='magenta',\n",
" linewidth = 1.0, linestyle='dashed') # 最良気配値BID\n",
" self.im_ask, = self.ax.plot([], [], color='green',\n",
" linewidth = 1.0, linestyle='dashed') # 最良気配値ASK\n",
" self.im_ma, = self.ax.plot([], [], color='red',\n",
" linewidth = 1.0, linestyle='solid') # 移動平均\n",
"\n",
" # アニメーション描画更新\n",
" def update_plot(self, i):\n",
" # plotデータ更新\n",
" self.im_ltp.set_data(self.np_x, self.ltp) # LTP\n",
" self.im_bid.set_data(self.np_x, self.bid) # 最良気配値BID\n",
" self.im_ask.set_data(self.np_x, self.ask) # 最良気配値ASK\n",
" self.im_ma.set_data(self.np_x, self.ma) # 移動平均\n",
" self.ax.relim()\n",
" self.ax.autoscale_view()\n",
"\n",
" # 区切り間隔からX軸目盛設定\n",
" if len(self.dt) == self.length:\n",
" lst_dt = list(self.dt)\n",
" unit = 20 # 目盛間隔\n",
" lst_dt = lst_dt[::unit]\n",
" plt.xticks(range(0, self.length, unit), # 位置配列\n",
" [self.str_to_datetime(x[:19]).strftime(\"%H:%M:%S\") for x in lst_dt]) # ラベル配列\n",
"\n",
" # 日付文字列->datetime(JST)\n",
" def str_to_datetime(self, str_dt):\n",
" dt = None\n",
" try:\n",
" dt = datetime.strptime(str_dt, \"%Y-%m-%dT%H:%M:%S.%f\")\n",
" dt_utc = utc.localize(dt)\n",
" dt_jst = dt_utc.astimezone(timezone(\"Asia/Tokyo\"))\n",
" except ValueError:\n",
" try:\n",
" dt = datetime.strptime(str_dt, \"%Y-%m-%dT%H:%M:%S\")\n",
" dt_utc = utc.localize(dt)\n",
" dt_jst = dt_utc.astimezone(timezone(\"Asia/Tokyo\"))\n",
" except ValueError:\n",
" print(\"timestamp str convert error!\")\n",
" return None\n",
" return dt_jst\n",
"\n",
"if __name__ == '__main__':\n",
" RealTimeChart()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.6.2"
},
"toc": {
"nav_menu": {},
"number_sections": true,
"sideBar": true,
"skip_h1_title": false,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": false,
"toc_position": {},
"toc_section_display": true,
"toc_window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment