Skip to content

Instantly share code, notes, and snippets.

@jdmonaco
Created December 21, 2016 20:42
Show Gist options
  • Save jdmonaco/1d7bd95dc5b96d2bbc7f372d3a4005e2 to your computer and use it in GitHub Desktop.
Save jdmonaco/1d7bd95dc5b96d2bbc7f372d3a4005e2 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib notebook"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Set bin edges for half-bins on either side of zero"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([ 0. , 0.39269908, 1.17809725, 1.96349541, 2.74889357,\n",
" 3.53429174, 4.3196899 , 5.10508806, 5.89048623, 6.28318531])"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"width = np.pi / 4\n",
"edges = (np.pi / 8) * np.array([0] + range(1, 17, 2) + [16])\n",
"edges"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Compute raw histogram on random angle data"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([ 6, 11, 4, 7, 11, 5, 8, 9, 3])"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"theta = 2 * np.pi * np.random.rand(64)\n",
"H, _ = np.histogram(theta, bins=edges)\n",
"H"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Merge the 0/2pi half-bins together"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(array([ 9, 11, 4, 7, 11, 5, 8, 9]),\n",
" array([-0.39269908, 0.39269908, 1.17809725, 1.96349541, 2.74889357,\n",
" 3.53429174, 4.3196899 , 5.10508806, 5.89048623]))"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"edges2 = edges.copy()\n",
"edges2[0] = edges[-2] - 2*np.pi # start the [0,pi/8] a half-bin earlier\n",
"edges2 = edges2[:-1] # remove the now extraneous edge at 2pi\n",
"\n",
"H2 = H.copy()\n",
"H2[0] += H2[-1] # add the count from the old 2pi half-bin to the expanded 0-bin\n",
"H2 = H2[:-1] # remove the now extraneous 2pi bin count\n",
"\n",
"H2, edges2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Plot the circular histogram as a polar bar chart"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"application/javascript": [
"/* Put everything inside the global mpl namespace */\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('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",
" 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",
" this.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 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);\n",
" canvas.attr('height', height);\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'];\n",
" var y0 = fig.canvas.height - msg['y0'];\n",
" var x1 = msg['x1'];\n",
" var y1 = fig.canvas.height - msg['y1'];\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;\n",
" var y = canvas_pos.y;\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\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\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 overriden (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",
" 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 + '\">');\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 dataURL = this.canvas.toDataURL();\n",
" this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\">';\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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\">"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Container object of 8 artists>"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ax = plt.axes(polar=True)\n",
"ax.bar(edges2[:-1], H2, width=width, bottom=0.0,\n",
" color='c', ec='k', lw=1)"
]
}
],
"metadata": {
"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.12"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment