Skip to content

Instantly share code, notes, and snippets.

@higuoxing
Last active June 5, 2021 15:00
Show Gist options
  • Save higuoxing/1c520175ed42e57f8bc601ab5ba6723b to your computer and use it in GitHub Desktop.
Save higuoxing/1c520175ed42e57f8bc601ab5ba6723b to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 6,
"id": "03f8491e",
"metadata": {},
"outputs": [
{
"data": {
"application/javascript": [
"/* Put everything inside the global mpl namespace */\n",
"/* global mpl */\n",
"window.mpl = {};\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(\n",
" '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",
"\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 = document.createElement('div');\n",
" this.root.setAttribute('style', 'display: inline-block');\n",
" this._root_extra_style(this.root);\n",
"\n",
" parent_element.appendChild(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 (fig.ratio !== 1) {\n",
" fig.send_message('set_dpi_ratio', { dpi_ratio: fig.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 = document.createElement('div');\n",
" titlebar.classList =\n",
" 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n",
" var titletext = document.createElement('div');\n",
" titletext.classList = 'ui-dialog-title';\n",
" titletext.setAttribute(\n",
" 'style',\n",
" 'width: 100%; text-align: center; padding: 3px;'\n",
" );\n",
" titlebar.appendChild(titletext);\n",
" this.root.appendChild(titlebar);\n",
" this.header = titletext;\n",
"};\n",
"\n",
"mpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n",
"\n",
"mpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n",
"\n",
"mpl.figure.prototype._init_canvas = function () {\n",
" var fig = this;\n",
"\n",
" var canvas_div = (this.canvas_div = document.createElement('div'));\n",
" canvas_div.setAttribute(\n",
" 'style',\n",
" 'border: 1px solid #ddd;' +\n",
" 'box-sizing: content-box;' +\n",
" 'clear: both;' +\n",
" 'min-height: 1px;' +\n",
" 'min-width: 1px;' +\n",
" 'outline: 0;' +\n",
" 'overflow: hidden;' +\n",
" 'position: relative;' +\n",
" 'resize: both;'\n",
" );\n",
"\n",
" function on_keyboard_event_closure(name) {\n",
" return function (event) {\n",
" return fig.key_event(event, name);\n",
" };\n",
" }\n",
"\n",
" canvas_div.addEventListener(\n",
" 'keydown',\n",
" on_keyboard_event_closure('key_press')\n",
" );\n",
" canvas_div.addEventListener(\n",
" 'keyup',\n",
" on_keyboard_event_closure('key_release')\n",
" );\n",
"\n",
" this._canvas_extra_style(canvas_div);\n",
" this.root.appendChild(canvas_div);\n",
"\n",
" var canvas = (this.canvas = document.createElement('canvas'));\n",
" canvas.classList.add('mpl-canvas');\n",
" canvas.setAttribute('style', 'box-sizing: content-box;');\n",
"\n",
" this.context = canvas.getContext('2d');\n",
"\n",
" var backingStore =\n",
" this.context.backingStorePixelRatio ||\n",
" this.context.webkitBackingStorePixelRatio ||\n",
" this.context.mozBackingStorePixelRatio ||\n",
" this.context.msBackingStorePixelRatio ||\n",
" this.context.oBackingStorePixelRatio ||\n",
" this.context.backingStorePixelRatio ||\n",
" 1;\n",
"\n",
" this.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
"\n",
" var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n",
" 'canvas'\n",
" ));\n",
" rubberband_canvas.setAttribute(\n",
" 'style',\n",
" 'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n",
" );\n",
"\n",
" // Apply a ponyfill if ResizeObserver is not implemented by browser.\n",
" if (this.ResizeObserver === undefined) {\n",
" if (window.ResizeObserver !== undefined) {\n",
" this.ResizeObserver = window.ResizeObserver;\n",
" } else {\n",
" var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n",
" this.ResizeObserver = obs.ResizeObserver;\n",
" }\n",
" }\n",
"\n",
" this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n",
" var nentries = entries.length;\n",
" for (var i = 0; i < nentries; i++) {\n",
" var entry = entries[i];\n",
" var width, height;\n",
" if (entry.contentBoxSize) {\n",
" if (entry.contentBoxSize instanceof Array) {\n",
" // Chrome 84 implements new version of spec.\n",
" width = entry.contentBoxSize[0].inlineSize;\n",
" height = entry.contentBoxSize[0].blockSize;\n",
" } else {\n",
" // Firefox implements old version of spec.\n",
" width = entry.contentBoxSize.inlineSize;\n",
" height = entry.contentBoxSize.blockSize;\n",
" }\n",
" } else {\n",
" // Chrome <84 implements even older version of spec.\n",
" width = entry.contentRect.width;\n",
" height = entry.contentRect.height;\n",
" }\n",
"\n",
" // Keep the size of the canvas and rubber band canvas in sync with\n",
" // the canvas container.\n",
" if (entry.devicePixelContentBoxSize) {\n",
" // Chrome 84 implements new version of spec.\n",
" canvas.setAttribute(\n",
" 'width',\n",
" entry.devicePixelContentBoxSize[0].inlineSize\n",
" );\n",
" canvas.setAttribute(\n",
" 'height',\n",
" entry.devicePixelContentBoxSize[0].blockSize\n",
" );\n",
" } else {\n",
" canvas.setAttribute('width', width * fig.ratio);\n",
" canvas.setAttribute('height', height * fig.ratio);\n",
" }\n",
" canvas.setAttribute(\n",
" 'style',\n",
" 'width: ' + width + 'px; height: ' + height + 'px;'\n",
" );\n",
"\n",
" rubberband_canvas.setAttribute('width', width);\n",
" rubberband_canvas.setAttribute('height', height);\n",
"\n",
" // And update the size in Python. We ignore the initial 0/0 size\n",
" // that occurs as the element is placed into the DOM, which should\n",
" // otherwise not happen due to the minimum size styling.\n",
" if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n",
" fig.request_resize(width, height);\n",
" }\n",
" }\n",
" });\n",
" this.resizeObserverInstance.observe(canvas_div);\n",
"\n",
" function on_mouse_event_closure(name) {\n",
" return function (event) {\n",
" return fig.mouse_event(event, name);\n",
" };\n",
" }\n",
"\n",
" rubberband_canvas.addEventListener(\n",
" 'mousedown',\n",
" on_mouse_event_closure('button_press')\n",
" );\n",
" rubberband_canvas.addEventListener(\n",
" 'mouseup',\n",
" on_mouse_event_closure('button_release')\n",
" );\n",
" rubberband_canvas.addEventListener(\n",
" 'dblclick',\n",
" on_mouse_event_closure('dblclick')\n",
" );\n",
" // Throttle sequential mouse events to 1 every 20ms.\n",
" rubberband_canvas.addEventListener(\n",
" 'mousemove',\n",
" on_mouse_event_closure('motion_notify')\n",
" );\n",
"\n",
" rubberband_canvas.addEventListener(\n",
" 'mouseenter',\n",
" on_mouse_event_closure('figure_enter')\n",
" );\n",
" rubberband_canvas.addEventListener(\n",
" 'mouseleave',\n",
" on_mouse_event_closure('figure_leave')\n",
" );\n",
"\n",
" canvas_div.addEventListener('wheel', function (event) {\n",
" if (event.deltaY < 0) {\n",
" event.step = 1;\n",
" } else {\n",
" event.step = -1;\n",
" }\n",
" on_mouse_event_closure('scroll')(event);\n",
" });\n",
"\n",
" canvas_div.appendChild(canvas);\n",
" canvas_div.appendChild(rubberband_canvas);\n",
"\n",
" this.rubberband_context = rubberband_canvas.getContext('2d');\n",
" this.rubberband_context.strokeStyle = '#000000';\n",
"\n",
" this._resize_canvas = function (width, height, forward) {\n",
" if (forward) {\n",
" canvas_div.style.width = width + 'px';\n",
" canvas_div.style.height = height + 'px';\n",
" }\n",
" };\n",
"\n",
" // Disable right mouse context menu.\n",
" this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n",
" event.preventDefault();\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 toolbar = document.createElement('div');\n",
" toolbar.classList = 'mpl-toolbar';\n",
" this.root.appendChild(toolbar);\n",
"\n",
" function on_click_closure(name) {\n",
" return function (_event) {\n",
" return fig.toolbar_button_onclick(name);\n",
" };\n",
" }\n",
"\n",
" function on_mouseover_closure(tooltip) {\n",
" return function (event) {\n",
" if (!event.currentTarget.disabled) {\n",
" return fig.toolbar_button_onmouseover(tooltip);\n",
" }\n",
" };\n",
" }\n",
"\n",
" fig.buttons = {};\n",
" var buttonGroup = document.createElement('div');\n",
" buttonGroup.classList = 'mpl-button-group';\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",
" /* Instead of a spacer, we start a new button group. */\n",
" if (buttonGroup.hasChildNodes()) {\n",
" toolbar.appendChild(buttonGroup);\n",
" }\n",
" buttonGroup = document.createElement('div');\n",
" buttonGroup.classList = 'mpl-button-group';\n",
" continue;\n",
" }\n",
"\n",
" var button = (fig.buttons[name] = document.createElement('button'));\n",
" button.classList = 'mpl-widget';\n",
" button.setAttribute('role', 'button');\n",
" button.setAttribute('aria-disabled', 'false');\n",
" button.addEventListener('click', on_click_closure(method_name));\n",
" button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
"\n",
" var icon_img = document.createElement('img');\n",
" icon_img.src = '_images/' + image + '.png';\n",
" icon_img.srcset = '_images/' + image + '_large.png 2x';\n",
" icon_img.alt = tooltip;\n",
" button.appendChild(icon_img);\n",
"\n",
" buttonGroup.appendChild(button);\n",
" }\n",
"\n",
" if (buttonGroup.hasChildNodes()) {\n",
" toolbar.appendChild(buttonGroup);\n",
" }\n",
"\n",
" var fmt_picker = document.createElement('select');\n",
" fmt_picker.classList = 'mpl-widget';\n",
" toolbar.appendChild(fmt_picker);\n",
" this.format_dropdown = fmt_picker;\n",
"\n",
" for (var ind in mpl.extensions) {\n",
" var fmt = mpl.extensions[ind];\n",
" var option = document.createElement('option');\n",
" option.selected = fmt === mpl.default_extension;\n",
" option.innerHTML = fmt;\n",
" fmt_picker.appendChild(option);\n",
" }\n",
"\n",
" var status_bar = document.createElement('span');\n",
" status_bar.classList = 'mpl-message';\n",
" toolbar.appendChild(status_bar);\n",
" this.message = status_bar;\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",
"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",
"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], msg['forward']);\n",
" fig.send_message('refresh', {});\n",
" }\n",
"};\n",
"\n",
"mpl.figure.prototype.handle_rubberband = function (fig, msg) {\n",
" var x0 = msg['x0'] / fig.ratio;\n",
" var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n",
" var x1 = msg['x1'] / fig.ratio;\n",
" var y1 = (fig.canvas.height - msg['y1']) / fig.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,\n",
" 0,\n",
" fig.canvas.width / fig.ratio,\n",
" fig.canvas.height / fig.ratio\n",
" );\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",
" 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.handle_history_buttons = function (fig, msg) {\n",
" for (var key in msg) {\n",
" if (!(key in fig.buttons)) {\n",
" continue;\n",
" }\n",
" fig.buttons[key].disabled = !msg[key];\n",
" fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n",
" }\n",
"};\n",
"\n",
"mpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n",
" if (msg['mode'] === 'PAN') {\n",
" fig.buttons['Pan'].classList.add('active');\n",
" fig.buttons['Zoom'].classList.remove('active');\n",
" } else if (msg['mode'] === 'ZOOM') {\n",
" fig.buttons['Pan'].classList.remove('active');\n",
" fig.buttons['Zoom'].classList.add('active');\n",
" } else {\n",
" fig.buttons['Pan'].classList.remove('active');\n",
" fig.buttons['Zoom'].classList.remove('active');\n",
" }\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",
" var img = evt.data;\n",
" if (img.type !== 'image/png') {\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",
" img.type = 'image/png';\n",
" }\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",
"\n",
" fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
" img\n",
" );\n",
" fig.updated_canvas_event();\n",
" fig.waiting = false;\n",
" return;\n",
" } else if (\n",
" typeof evt.data === 'string' &&\n",
" evt.data.slice(0, 21) === 'data:image/png;base64'\n",
" ) {\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(\n",
" \"No handler for the '\" + msg_type + \"' message type: \",\n",
" msg\n",
" );\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(\n",
" \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n",
" e,\n",
" e.stack,\n",
" msg\n",
" );\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",
" }\n",
" if (e.target) {\n",
" targ = e.target;\n",
" } else if (e.srcElement) {\n",
" targ = e.srcElement;\n",
" }\n",
" if (targ.nodeType === 3) {\n",
" // defeat Safari bug\n",
" targ = targ.parentNode;\n",
" }\n",
"\n",
" // pageX,Y are the mouse positions relative to the document\n",
" var boundingRect = targ.getBoundingClientRect();\n",
" var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n",
" var y = e.pageY - (boundingRect.top + document.body.scrollTop);\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",
" }\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",
" this.canvas.focus();\n",
" this.canvas_div.focus();\n",
" }\n",
"\n",
" var x = canvas_pos.x * this.ratio;\n",
" var y = canvas_pos.y * this.ratio;\n",
"\n",
" this.send_message(name, {\n",
" x: x,\n",
" y: y,\n",
" button: event.button,\n",
" step: event.step,\n",
" guiEvent: simpleKeys(event),\n",
" });\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",
" // Prevent repeat events\n",
" if (name === 'key_press') {\n",
" if (event.key === this._key) {\n",
" return;\n",
" } else {\n",
" this._key = event.key;\n",
" }\n",
" }\n",
" if (name === 'key_release') {\n",
" this._key = null;\n",
" }\n",
"\n",
" var value = '';\n",
" if (event.ctrlKey && event.key !== 'Control') {\n",
" value += 'ctrl+';\n",
" }\n",
" else if (event.altKey && event.key !== 'Alt') {\n",
" value += 'alt+';\n",
" }\n",
" else if (event.shiftKey && event.key !== 'Shift') {\n",
" value += 'shift+';\n",
" }\n",
"\n",
" value += 'k' + event.key;\n",
"\n",
" this._key_event_extra(event, name);\n",
"\n",
" this.send_message(name, { key: value, 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",
"\n",
"///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n",
"// prettier-ignore\n",
"var _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\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\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
"\n",
"mpl.extensions = [\"eps\", \"jpeg\", \"pgf\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
"\n",
"mpl.default_extension = \"png\";/* global mpl */\n",
"\n",
"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.binaryType = comm.kernel.ws.binaryType;\n",
" ws.readyState = comm.kernel.ws.readyState;\n",
" function updateReadyState(_event) {\n",
" if (comm.kernel.ws) {\n",
" ws.readyState = comm.kernel.ws.readyState;\n",
" } else {\n",
" ws.readyState = 3; // Closed state.\n",
" }\n",
" }\n",
" comm.kernel.ws.addEventListener('open', updateReadyState);\n",
" comm.kernel.ws.addEventListener('close', updateReadyState);\n",
" comm.kernel.ws.addEventListener('error', updateReadyState);\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",
" var data = msg['content']['data'];\n",
" if (data['blob'] !== undefined) {\n",
" data = {\n",
" data: new Blob(msg['buffers'], { type: data['blob'] }),\n",
" };\n",
" }\n",
" // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
" ws.onmessage(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 = document.getElementById(id);\n",
" var ws_proxy = comm_websocket_adapter(comm);\n",
"\n",
" function ondownload(figure, _format) {\n",
" window.open(figure.canvas.toDataURL());\n",
" }\n",
"\n",
" var fig = new mpl.figure(id, ws_proxy, ondownload, element);\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;\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",
" fig.cell_info[0].output_area.element.on(\n",
" 'cleared',\n",
" { fig: fig },\n",
" fig._remove_fig_handler\n",
" );\n",
"};\n",
"\n",
"mpl.figure.prototype.handle_close = function (fig, msg) {\n",
" var width = fig.canvas.width / fig.ratio;\n",
" fig.cell_info[0].output_area.element.off(\n",
" 'cleared',\n",
" fig._remove_fig_handler\n",
" );\n",
" fig.resizeObserverInstance.unobserve(fig.canvas_div);\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.innerHTML =\n",
" '<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 / this.ratio;\n",
" var dataURL = this.canvas.toDataURL();\n",
" this.cell_info[1]['text/html'] =\n",
" '<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 () {\n",
" fig.push_to_output();\n",
" }, 1000);\n",
"};\n",
"\n",
"mpl.figure.prototype._init_toolbar = function () {\n",
" var fig = this;\n",
"\n",
" var toolbar = document.createElement('div');\n",
" toolbar.classList = 'btn-toolbar';\n",
" this.root.appendChild(toolbar);\n",
"\n",
" function on_click_closure(name) {\n",
" return function (_event) {\n",
" return fig.toolbar_button_onclick(name);\n",
" };\n",
" }\n",
"\n",
" function on_mouseover_closure(tooltip) {\n",
" return function (event) {\n",
" if (!event.currentTarget.disabled) {\n",
" return fig.toolbar_button_onmouseover(tooltip);\n",
" }\n",
" };\n",
" }\n",
"\n",
" fig.buttons = {};\n",
" var buttonGroup = document.createElement('div');\n",
" buttonGroup.classList = 'btn-group';\n",
" var button;\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",
" /* Instead of a spacer, we start a new button group. */\n",
" if (buttonGroup.hasChildNodes()) {\n",
" toolbar.appendChild(buttonGroup);\n",
" }\n",
" buttonGroup = document.createElement('div');\n",
" buttonGroup.classList = 'btn-group';\n",
" continue;\n",
" }\n",
"\n",
" button = fig.buttons[name] = document.createElement('button');\n",
" button.classList = 'btn btn-default';\n",
" button.href = '#';\n",
" button.title = name;\n",
" button.innerHTML = '<i class=\"fa ' + image + ' fa-lg\"></i>';\n",
" button.addEventListener('click', on_click_closure(method_name));\n",
" button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
" buttonGroup.appendChild(button);\n",
" }\n",
"\n",
" if (buttonGroup.hasChildNodes()) {\n",
" toolbar.appendChild(buttonGroup);\n",
" }\n",
"\n",
" // Add the status bar.\n",
" var status_bar = document.createElement('span');\n",
" status_bar.classList = 'mpl-message pull-right';\n",
" toolbar.appendChild(status_bar);\n",
" this.message = status_bar;\n",
"\n",
" // Add the close button to the window.\n",
" var buttongrp = document.createElement('div');\n",
" buttongrp.classList = 'btn-group inline pull-right';\n",
" button = document.createElement('button');\n",
" button.classList = 'btn btn-mini btn-primary';\n",
" button.href = '#';\n",
" button.title = 'Stop Interaction';\n",
" button.innerHTML = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\n",
" button.addEventListener('click', function (_evt) {\n",
" fig.handle_close(fig, {});\n",
" });\n",
" button.addEventListener(\n",
" 'mouseover',\n",
" on_mouseover_closure('Stop Interaction')\n",
" );\n",
" buttongrp.appendChild(button);\n",
" var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n",
" titlebar.insertBefore(buttongrp, titlebar.firstChild);\n",
"};\n",
"\n",
"mpl.figure.prototype._remove_fig_handler = function (event) {\n",
" var fig = event.data.fig;\n",
" if (event.target !== this) {\n",
" // Ignore bubbled events from children.\n",
" return;\n",
" }\n",
" fig.close_ws(fig, {});\n",
"};\n",
"\n",
"mpl.figure.prototype._root_extra_style = function (el) {\n",
" el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n",
"};\n",
"\n",
"mpl.figure.prototype._canvas_extra_style = function (el) {\n",
" // this is important to make the div 'focusable\n",
" el.setAttribute('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",
" } else {\n",
" // location in version 2\n",
" IPython.keyboard_manager.register_events(el);\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",
"\n",
" // Check for shift+enter\n",
" if (event.shiftKey && event.which === 13) {\n",
" this.canvas_div.blur();\n",
" // select the cell after this one\n",
" var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
" IPython.notebook.select(index + 1);\n",
" }\n",
"};\n",
"\n",
"mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
" fig.ondownload(fig, null);\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(\n",
" 'matplotlib',\n",
" mpl.mpl_figure_comm\n",
" );\n",
"}\n"
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAAPACAYAAABq3NR5AAAgAElEQVR4XuzdB3gVVfrH8V96SCB0Qgu9C4L0GsCKiF1EFBVUbKCou+jirmLZPyh2xIIVVBQV2yog6EqvgihdehHpLQkQUv/PjMuFSxK4ZW7unbnfeZ59fJbMnHPez3s8ct5MicjPz88XBwIIIIAAAggggAACCCCAAAIIIIAAAgg4UiCCAqAj80pQCCCAAAIIIIAAAggggAACCCCAAAIImAIUAJkICCCAAAIIIIAAAggggAACCCCAAAIIOFiAAqCDk0toCCCAAAIIIIAAAggggAACCCCAAAIIUABkDiCAAAIIIIAAAggggAACCCCAAAIIIOBgAQqADk4uoSGAAAIIIIAAAggggAACCCCAAAIIIEABkDmAAAIIIIAAAggggAACCCCAAAIIIICAgwUoADo4uYSGAAIIIIAAAggggAACCCCAAAIIIIAABUDmAAIIIIAAAggggAACCCCAAAIIIIAAAg4WoADo4OQSGgIIIIAAAggggAACCCCAAAIIIIAAAhQAmQMIIIAAAggggAACCCCAAAIIIIAAAgg4WIACoIOTS2gIIIAAAggggAACCCCAAAIIIIAAAghQAGQOIIAAAggggAACCCCAAAIIIIAAAggg4GABCoAOTi6hIYAAAggggAACCCCAAAIIIIAAAgggQAGQOYAAAggggAACCCCAAAIIIIAAAggggICDBSgAOji5hIYAAggggAACCCCAAAIIIIAAAggggAAFQOYAAggggAACCCCAAAIIIIAAAggggAACDhagAOjg5BIaAggggAACCCCAAAIIIIAAAggggAACFACZAwgggAACCCCAAAIIIIAAAggggAACCDhYgAKgg5NLaAgggAACCCCAAAIIIIAAAggggAACCFAAZA4ggAACCCCAAAIIIIAAAggggAACCCDgYAEKgA5OLqEhgAACCCCAAAIIIIAAAggggAACCCBAAZA5gAACCCCAAAIIIIAAAggggAACCCCAgIMFKAA6OLmEhgACCCCAAAIIIIAAAggggAACCCCAAAVA5gACCCCAAAIIIIAAAggggAACCCCAAAIOFqAA6ODkEhoCCCCAAAIIIIAAAggggAACCCCAAAIUAJkDCCCAAAIIIIAAAggggAACCCCAAAIIOFiAAqCDk0toCCCAAAIIIIAAAggggAACCCCAAAIIUABkDiCAAAIIIIAAAggggAACCCCAAAIIIOBgAQqADk4uoSGAAAIIIIAAAggggAACCCCAAAIIIEABkDmAAAIIIIAAAggggAACCCCAAAIIIICAgwUoADo4uYSGAAIIIIAAAggggAACCCCAAAIIIIAABUDmAAIIIIAAAggggAACCCCAAAIIIIAAAg4WoADo4OQSGgIIIIAAAggggAACCCCAAAIIIIAAAhQAmQMIIIAAAggggAACCCCAAAIIIIAAAgg4WIACoIOTS2gIIIAAAggggAACCCCAAAIIIIAAAghQAGQOIIAAAggggAACCCCAAAIIIIAAAggg4GABCoAOTi6hIYAAAggggAACCCCAAAIIIIAAAgggQAGQOYAAAggggAACCCCAAAIIIIAAAggggICDBSgAOji5hIYAAggggAACCCCAAAIIIIAAAggggAAFQOYAAggggAACCCCAAAIIIIAAAggggAACDhagAOjg5BIaAggggAACCCCAAAIIIIAAAggggAACFACZAwgggAACCCCAAAIIIIAAAggggAACCDhYgAKgg5NLaAgggAACCCCAAAIIIIAAAggggAACCFAAZA4ggAACCCCAAAIIIIAAAggggAACCCDgYAEKgA5OLqEhgAACCCCAAAIIIIAAAggggAACCCBAAZA5gAACCCCAAAIIIIAAAggggAACCCCAgIMFKAA6OLmEhgACCCCAAAIIIIAAAggggAACCCCAAAVA5gACCCCAAAIIIIAAAggggAACCCCAAAIOFqAA6ODkEhoCCCCAAAIIIIAAAggggAACCCCAAAIUAJkDCCCAAAIIIIAAAggggAACCCCAAAIIOFiAAqCDk0toCCCAAAIIIIAAAggggAACCCCAAAIIUABkDiCAAAIIIIAAAggggAACCCCAAAIIIOBgAQqADk4uoSGAAAIIIIAAAggggAACCCCAAAIIIEABkDmAAAIIIIAAAggggAACCCCAAAIIIICAgwUoADo4uYSGAAIIIIAAAggggAACCCCAAAIIIIAABUDmAAIIIIAAAggggAACCCCAAAIIIIAAAg4WoADo4OQSGgIIIIAAAggggAACCCCAAAIIIIAAAhQAmQMIIIAAAggggAACCCCAAAIIIIAAAgg4WIACoIOTS2gIIIAAAggggAACCCCAAAIIIIAAAghQAGQOIIAAAggggAACCCCAAAIIIIAAAggg4GABCoAOTi6hIYAAAggggAACCCCAAAIIIIAAAgggQAGQOYAAAggggAACCCCAAAIIIIAAAggggICDBSgAOji5hIYAAggggAACCCCAAAIIIIAAAggggAAFQOYAAggggAACCCCAAAIIIIAAAggggAACDhagAOjg5BIaAggggAACCCCAAAIIIIAAAggggAACFACZAwgggAACCCCAAAIIIIAAAggggAACCDhYgAKgg5NLaAgggAACCCCAAAIIIIAAAggggAACCFAAZA4ggAACCCCAAAIIIIAAAggggAACCCDgYAEKgA5OLqEhgAACCCCAAAIIIIAAAggggAACCCBAAZA5gAACCCCAAAIIIIAAAggggAACCCCAgIMFKAA6OLmEhgACCCCAAAIIIIAAAggggAACCCCAAAVA5gACCCCAAAIIIIAAAggggAACCCCAAAIOFqAA6ODkEhoCCCCAAAIIIIAAAggggAACCCCAAAIUAJkDCCCAAAIIIIAAAggggAACCCCAAAIIOFiAAqCDk0toCCCAAAIIIIAAAggggAACCCCAAAIIUABkDiCAAAIIIIAAAggggAACCCCAAAIIIOBgAQqADk4uoSGAAAIIIIAAAggggAACCCCAAAIIIEABkDmAAAIIIIAAAggggAACCCCAAAIIIICAgwUoADo4uYSGAAIIIIAAAggggAACCCCAAAIIIIAABUDmAAIIIIAAAggggAACCCCAAAIIIIAAAg4WoADo4OQSGgIIIIAAAggggAACCCCAAAIIIIAAAhQAmQMIIIAAAggggAACCCCAAAIIIIAAAgg4WIACoIOTS2gIIIAAAggggAACCCCAAAIIIIAAAghQAGQOIIAAAggggAACCCCAAAIIIIAAAggg4GABCoAOTi6hIYAAAggggAACCCCAAAIIIIAAAgggQAGQOYAAAggggAACCCCAAAIIIIAAAggggICDBSgAOji5hIYAAggggAACCCCAAAIIIIAAAggggAAFQOYAAggggAACCCCAAAIIIIAAAggggAACDhagAOjg5BIaAggggAACCCCAAAIIIIAAAggggAACFACZAwgggAACCCCAAAIIIIAAAggggAACCDhYgAKgg5NLaAgggAACCCCAAAIIIIAAAggggAACCFAAZA4ggAACCCCAAAIIIIAAAggggAACCCDgYAEKgA5OLqEhgAACCCCAAAIIIIAAAggggAACCCBAAZA5gAACCCCAAAIIIIAAAggggAACCCCAgIMFKAA6OLmEhgACCCCAAAIIIIAAAggggAACCCCAAAVA5gACCCCAAAIIIIAAAggggAACCCCAAAIOFqAA6ODkEhoCCCCAAAIIIIAAAggggAACCCCAAAIUAJkDCCCAAAIIIIAAAggggAACCCCAAAIIOFiAAqCDk0toCCCAAAIIIIAAAggggAACCCCAAAIIUABkDiCAAAIIIIAAAggggAACCCCAAAIIIOBgAQqADk4uoSGAAAIIIIAAAggggAACCCCAAAIIIEABkDmAAAIIIIAAAggggAACCCCAAAIIIICAgwUoADo4uYSGAAIIIIAAAggggAACCCCAAAIIIIAABUDmAAIIIIAAAggggAACCCCAAAIIIIAAAg4WoADo4OQSGgIIIIAAAggggAACCCCAAAIIIIAAAhQAmQMIIIAAAggggAACCCCAAAIIIIAAAgg4WIACoIOTS2gIIIAAAggggAACCCCAAAIIIIAAAghQAGQOIIAAAggggAACCCCAAAIIIIAAAggg4GABCoAOTi6hIYAAAggggAACCCCAAAIIIIAAAgggQAGQOYAAAggggAACCCCAAAIIIIAAAggggICDBSgAOji5hIYAAggggAACCCCAAAIIIIAAAggggAAFQOYAAggggAACCCCAAAIIIIAAAggggAACDhagAOjg5IZyaJmZmVqxYoU5xIoVKyo6OjqUh8vYEEAAAQQQQAABBBBAAAEEELClQE5Ojvbu3WuOvVmzZoqPj7dlHAzaPwEKgP75cbWPAj///LPatm3r49VchgACCCCAAAIIIIAAAggggAAC3gosXrxYbdq08fYyzneAAAVAByTRjiFQALRj1hgzAggggAACCCCAAAIIIICAnQUoANo5e/6NnQKgf35c7aPAli1bVLt2bfNqYwGqUqWKjy1xGQIIIIAAAggggAACCCCAAAIIFCWwc+dO1xN4mzdvVq1atcAKQwEKgGGY9FAI+Y8//lBKSoo5lO3bt6t69eqhMCzGgAACCCCAAAIIIIAAAggggICjBNh/OyqdPgdDAdBnOi70R4AFyB89rkUAAQQQQAABBBBAAAEEEEDAMwH23545Of0sCoBOz3CIxscCFKKJYVgIIIAA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\" width=\"640\">"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import struct\n",
"import cmath\n",
"from matplotlib import pyplot as plt\n",
"\n",
"%matplotlib notebook\n",
"\n",
"data = []\n",
"\n",
"if __name__ == \"__main__\":\n",
" with open(\"/tmp/mysine.data\", \"rb\") as f:\n",
" byte = f.read(8)\n",
" while byte:\n",
" r = struct.unpack(\"f\", byte[:4])[0]\n",
" i = struct.unpack(\"f\", byte[4:])[0]\n",
" ##print(abs(complex(r, i)))\n",
" data.append(r)\n",
" byte = f.read(8)\n",
" \n",
"plt.plot(data)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f9626273",
"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.9.5"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
#include <complex>
#include <vector>
#include <string>
#include <fstream>
#include <algorithm>
#include <iostream>
constexpr double PI = 3.1415926535897;
template <typename T>
class wave_table_t {
public:
wave_table_t(const std::string &wave_type, size_t len, const T ampl)
: _wave_table(len) {
if (wave_type == "SINE") {
static T tau = 2 * PI;
static const std::complex<T> J(0, 1);
for (size_t I = 0; I < len; ++I) {
_wave_table[I] = ampl * std::exp(J * static_cast<T>(tau * I / len));
}
_power_dbfs = static_cast<T>(20 * std::log10(ampl));
}
}
void dump_to_file(const std::string &filename) const {
std::ofstream ofile(filename.c_str(), std::ofstream::binary);
ofile.write((char *)&_wave_table[0], _wave_table.size() * sizeof(std::complex<T>));
ofile.close();
}
private:
T _power_dbfs;
std::vector<std::complex<T>> _wave_table;
};
int main() {
wave_table_t<float> wt("SINE", 1024, 1.0);
wt.dump_to_file("/tmp/mysine.data");
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment