Skip to content

Instantly share code, notes, and snippets.

@franloza
Created October 14, 2017 15:47
Show Gist options
  • Save franloza/8615dc3c80e52a3760dd8aa4f4840021 to your computer and use it in GitHub Desktop.
Save franloza/8615dc3c80e52a3760dd8aa4f4840021 to your computer and use it in GitHub Desktop.
Study about negative correlation between returns and volatility in IBEX 35. Reference: [The Benefits of Volatility Derivatives in Equity Portfolio Management](https://www.eurexchange.com/blob/184758/e21ae91e662cd0c0a176823353b21450/data/edhec_benefits_volatility_derivatives_2012.pdf.pdf)
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Negative correlation Return - Volatility - IBEX 35"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import pandas_datareader as pdr\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import pandas as pd\n",
"%matplotlib notebook"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"ibex = pdr.get_data_yahoo('^IBEX')[\"Close\"].to_frame()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"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",
" 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 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\", \"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",
" 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",
" // 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",
"\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"
},
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x22ddd31f1d0>"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ibex.plot()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ibex[\"Returns\"] = np.log(ibex / ibex.shift(1))"
]
},
{
"cell_type": "code",
"execution_count": 7,
"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",
" 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 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\", \"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",
" 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",
" // 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",
"\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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cxEQAccQkAB0zFSpoyIgAlkkQAHIXbtLva7vAmAigDsAfGDm1KZIrGruEo4C8BiAQwA6AZjsdf3TAIYCyAPgOQDXmvdZAuBxAFOy2F9dJgIiIAIRJyABGHHEuoEIiECMCfgTgOzWAgBbAfQC8CCAhQDWmyLwbQCTANwDIDeAuwEMA1DLHA+FIf95H0BdAE+YbV0G4FkADQCsjvHYdXsREAER8ElAAlALQwREINEJZCYAvwHQ0BRw3hyuBPAugBLmB76OgCsCWAeA/6aQtMoEAH8DGJjocDU+ERABZxKQAHTmvKnXIiACwRPITAB+C6A+gHoAupl2gbUBpADICSAvgAIAjgDwJQAvAPAbgMNe3eGx8E8Arg6+m6opAiIgAtEjIAEYPda6kwiIQGwIZCYA6Q28EcB9AFYAeAcARSE9hdsD+BBAUQD7/QhACrwvTQF52mt4PB7eHpsh664iIAIikDkBCUCtEBEQgUQnEMgJ5FYAB8ywMNzxs8LCDALwjIcA7APgPQCFPIDVBLASQEfTozjRWWp8IiACCUJAAjBBJlLDEAER8EsgszAw9NSldzCPgekQQkcQev+2A/ACgHIeArAtgBnmUTGdRXgszH++MOs/AmA+gJIAupqxBkdrXkRABEQgHglIAMbjrKhPIiACdhLwDgS9z/T2/QrApx47fg8B6G+GcvnTPNr9zEMAsk88Iu4NoDgAKwxMLgDcLbzRFIy7AcwC8BSAxXYORG2JgAiIgF0EJADtIql2REAEREAEREAERMAhBCQAHTJR6qYIiIAIiIAIiIAI2EVAAtAukmpHBERABERABERABBxCQALQIROlboqACIiACIiACIiAXQQkAO0iqXZEQAREQAREQAREwCEEJAAdMlHqpgiIgAiIgAiIgAjYRUAC0C6SakcEREAEREAEREAEHEJAAtAhE6VuioAIiIAIiIAIiIBdBCQA7SKpdkRABERABERABETAIQQkAB0yUeqmCIiACIiACIiACNhFQALQLpJqRwREQAREQAREQAQcQkAC0CETpW6KgAiIgAiIgAiIgF0EJADtIql2REAEREAEREAERMAhBCQAHTJR6qYIiIAIiIAIiIAI2EVAAtAukmpHBERABERABERABBxCQALQIROlboqACIiACIiACIiAXQQkAO0iqXZEQAREQAREQAREwCEEJAAdMlHqpgiIgAiIgAiIgAjYRUAC0C6SakcEREAEREAEREAEHEJAAtAhE6VuioAIiIAIiIAIiIBdBCQA7SKpdkRABERABERABETAIQQkAB0yUeqmCIiACIiACIiACNhFQALQLpJqRwREQAREQAREQAQcQkAC0CETpW6KgAiIgAiIgAiIgF0EJADtIql2REAEREAEREAERMAhBCQAHTJR6qYIiIAIiIAIiIAI2EVAAtAukmpHBERABERABERABBxCQALQIROlboqACIiACIiACIiAXQQkAO0iqXZEQAREQAREQAREwCEEJAAdMlHqpgiIgAiIgAiIgAjYRUAC0C6SakcEREAEREAEREAEHEJAAtAhE6VuioAIiIAIiIAIiIBdBCQA7SKpdkRABERABERABETAIQQkAB0yUeqmCIiACIiACIiACNhFQALQLpJqRwREQAREQAREQAQcQkAC0CETpW6KgAiIgAiIgAiIgF0EJADtIql2REAEREAEREAERMAhBCQAHTJR6qYIiIAIiIAIiIAI2EVAAtAukmpHBERABERABERABBxCQALQIROlboqACIiACIiACIiAXQT+D6JwDSjYW3XIAAAAAElFTkSuQmCC\" width=\"640\">"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x22ddd9e14a8>"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fig, axes = plt.subplots(3,1,sharex=True)\n",
"axes[0].set_title('IBEX 35')\n",
"axes[0].set_ylabel('Returns')\n",
"ibex[\"Returns\"].plot(ax=axes[0])\n",
"ibex[\"Equity\"] = ibex[\"Returns\"].cumsum()\n",
"axes[1].set_ylabel('Equity')\n",
"ibex[\"Equity\"].plot(ax=axes[1])\n",
"ibex[\"Volatility\"] = ibex[\"Returns\"].rolling(window=252).std()*np.sqrt(252)\n",
"axes[2].set_ylabel('Volatility')\n",
"ibex[\"Volatility\"].plot(ax=axes[2])"
]
},
{
"cell_type": "code",
"execution_count": 8,
"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",
" 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 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\", \"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",
" 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",
" // 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",
"\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,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAgAElEQVR4Xuy9C5gU1Zn//x0Y7jAwjBgFESTiBYEIBlTERM2G/LPJKhI1oq43TCKiJkZNRN1o3CRqVmPW+8Y7akjiP0aN2d1osorKTZCboJFBZLglAsPAAMOd+T1vUzVU11TVOadOdXd197eex0edPtfPOd397fe873sqwIcESIAESIAESIAESKCsCFSU1Ww5WRIgARIgARIgARIgAVAAchOQAAmQAAmQAAmQQJkRoAAsswXndEmABEiABEiABEiAApB7gARIgARIgARIgATKjAAFYJktOKdLAiRAAiRAAiRAAhSA3AMkQAIkQAIkQAIkUGYEKADLbME5XRIgARIgARIgARKgAOQeIAESIAESIAESIIEyI0ABWGYLzumSAAmQAAmQAAmQAAUg9wAJkAAJkAAJkAAJlBkBCsAyW3BOlwRIgARIgARIgAQoALkHSIAESIAESIAESKDMCFAAltmCc7okQAIkQAIkQAIkQAHIPUACJEACJEACJEACZUaAArDMFpzTJQESIAESIAESIAEKQO4BEiABEiABEiABEigzAhSAZbbgnC4JkAAJkAAJkAAJUAByD5AACZAACZAACZBAmRGgACyzBed0SYAESIAESIAESIACkHuABEiABEiABEiABMqMAAVgmS04p0sCJEACJEACJEACFIDcAyRAAiRAAiRAAiRQZgQoAMtswTldEiABEiABEiABEqAA5B4gARIgARIgARIggTIjQAFYZgvO6ZIACZAACZAACZAABSD3AAmQAAmQAAmQAAmUGQEKwDJbcE6XBEiABEiABEiABCgAuQdIgARIgARIgARIoMwIUACW2YJzuiRAAiRAAiRAAiRAAcg9QAIkQAIkQAIkQAJlRoACsMwWnNMlARIgARIgARIgAQpA7gESIAESIAESIAESKDMCFIBltuCcLgmQAAmQAAmQAAlQAHIPkAAJkAAJkAAJkECZEaAALLMF53RJgARIgARIgARIgAKQe4AESIAESIAESIAEyowABWCZLTinSwIkQAIkQAIkQAIUgNwDJEACJEACJEACJFBmBCgAy2zBOV0SIAESIAESIAESoADkHiABEiABEiABEiCBMiNAAVhmC87pkgAJkAAJkAAJkAAFIPcACZAACZAACZAACZQZAQrA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\" width=\"640\">"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x22dddb08240>"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ibex.plot(x='Equity', y='Volatility', kind='scatter')"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Anaconda3\\lib\\site-packages\\statsmodels\\compat\\pandas.py:56: FutureWarning: The pandas.core.datetools module is deprecated and will be removed in a future version. Please use the pandas.tseries module instead.\n",
" from pandas.core import datetools\n"
]
}
],
"source": [
"import statsmodels.api as sm\n"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"result = sm.OLS(ibex[\"Volatility\"],sm.add_constant(ibex[\"Equity\"]), missing='drop').fit()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table class=\"simpletable\">\n",
"<caption>OLS Regression Results</caption>\n",
"<tr>\n",
" <th>Dep. Variable:</th> <td>Volatility</td> <th> R-squared: </th> <td> 0.509</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Model:</th> <td>OLS</td> <th> Adj. R-squared: </th> <td> 0.508</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Method:</th> <td>Least Squares</td> <th> F-statistic: </th> <td> 1593.</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Date:</th> <td>Sat, 14 Oct 2017</td> <th> Prob (F-statistic):</th> <td>1.05e-239</td>\n",
"</tr>\n",
"<tr>\n",
" <th>Time:</th> <td>17:39:53</td> <th> Log-Likelihood: </th> <td> 3051.1</td> \n",
"</tr>\n",
"<tr>\n",
" <th>No. Observations:</th> <td> 1540</td> <th> AIC: </th> <td> -6098.</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Df Residuals:</th> <td> 1538</td> <th> BIC: </th> <td> -6088.</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Df Model:</th> <td> 1</td> <th> </th> <td> </td> \n",
"</tr>\n",
"<tr>\n",
" <th>Covariance Type:</th> <td>nonrobust</td> <th> </th> <td> </td> \n",
"</tr>\n",
"</table>\n",
"<table class=\"simpletable\">\n",
"<tr>\n",
" <td></td> <th>coef</th> <th>std err</th> <th>t</th> <th>P>|t|</th> <th>[0.025</th> <th>0.975]</th> \n",
"</tr>\n",
"<tr>\n",
" <th>const</th> <td> 0.1698</td> <td> 0.002</td> <td> 89.350</td> <td> 0.000</td> <td> 0.166</td> <td> 0.174</td>\n",
"</tr>\n",
"<tr>\n",
" <th>Equity</th> <td> -0.2441</td> <td> 0.006</td> <td> -39.915</td> <td> 0.000</td> <td> -0.256</td> <td> -0.232</td>\n",
"</tr>\n",
"</table>\n",
"<table class=\"simpletable\">\n",
"<tr>\n",
" <th>Omnibus:</th> <td>182.351</td> <th> Durbin-Watson: </th> <td> 0.013</td>\n",
"</tr>\n",
"<tr>\n",
" <th>Prob(Omnibus):</th> <td> 0.000</td> <th> Jarque-Bera (JB): </th> <td> 272.739</td>\n",
"</tr>\n",
"<tr>\n",
" <th>Skew:</th> <td> 0.851</td> <th> Prob(JB): </th> <td>5.96e-60</td>\n",
"</tr>\n",
"<tr>\n",
" <th>Kurtosis:</th> <td> 4.164</td> <th> Cond. No. </th> <td> 7.75</td>\n",
"</tr>\n",
"</table>"
],
"text/plain": [
"<class 'statsmodels.iolib.summary.Summary'>\n",
"\"\"\"\n",
" OLS Regression Results \n",
"==============================================================================\n",
"Dep. Variable: Volatility R-squared: 0.509\n",
"Model: OLS Adj. R-squared: 0.508\n",
"Method: Least Squares F-statistic: 1593.\n",
"Date: Sat, 14 Oct 2017 Prob (F-statistic): 1.05e-239\n",
"Time: 17:39:53 Log-Likelihood: 3051.1\n",
"No. Observations: 1540 AIC: -6098.\n",
"Df Residuals: 1538 BIC: -6088.\n",
"Df Model: 1 \n",
"Covariance Type: nonrobust \n",
"==============================================================================\n",
" coef std err t P>|t| [0.025 0.975]\n",
"------------------------------------------------------------------------------\n",
"const 0.1698 0.002 89.350 0.000 0.166 0.174\n",
"Equity -0.2441 0.006 -39.915 0.000 -0.256 -0.232\n",
"==============================================================================\n",
"Omnibus: 182.351 Durbin-Watson: 0.013\n",
"Prob(Omnibus): 0.000 Jarque-Bera (JB): 272.739\n",
"Skew: 0.851 Prob(JB): 5.96e-60\n",
"Kurtosis: 4.164 Cond. No. 7.75\n",
"==============================================================================\n",
"\n",
"Warnings:\n",
"[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
"\"\"\""
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"result.summary()"
]
},
{
"cell_type": "code",
"execution_count": 12,
"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",
" 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 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\", \"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",
" 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",
" // 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",
"\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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uRkoLbVlof4iIAIiIAIiMCIISABKANpu1JElAJ3VLlsGHHNM+NoffRT44hdteai/CIiACIiACGQ9AQlACUDbTToyBaBjDWQwyOLF4QxaW4GKClsu6i8CIiACIiACWUtAAlAC0HZzjlwB6Kx89Wpg3rxwDg8+CHzta7Zs1F8EREAEREAEspKABKAEoO3GHPkC0CFw5ZUAg0Lc1549wNixtozUXwREQAREQASyioAEoASg7YYcPQKQJN57Dzj88HAm99wDXHedLSf1FwEREAEREIGsISABKAFouxlHlwB0aFx1FfDII+FsduwAJk605aX+IiACIiACIpBxAhKAEoC2m3B0CkBS2bwZmD49nM+ttwK33WbLTP1FQAREQAREIKMEJAAlAG034OgVgA6Za68F7rsvnBOriNTU2LJTfxEQAREQARHICAEJQAlA2403+gUgCTU0AHV14azoF0j/QF0iIAIiIAIiMMIISABKANpu2dwQgA6l734XuOOOcGY8Kp42zZaj+ouACIiACIjAsBGQAJQAtN1suSUASWv7dmDKlHBuX/0q8B//YctS/UVABERABERgWAhIAEoA2m603BOADrEf/hC46aZwfhs3AoccYstU/UVABERABEQgrQQkACUAbTdY7gpAkmOi6PHjwxl+/vPAL39py1X9RUAEREAERCBtBCQAs0cAsu7YvwDg2eJKAP8M4M0YT/4kAD8CMBNAKYCPADwEwB2qehWALwCoD46xDMDNEWMyn8mtEfd4Nziu102X2wLQofTAA8A3vxnObO1aYPZsrxzVTgREQAREQASGjYAEYHYIwMsA0GT0FQBvAPgWgEsAsCTFjii74cigSFsFoB0ABSEF4DUA/jPY/lcAXgWwFEAXgBsAXABgDmNag20oAC8GcLrrHn4AuxLYgRKADqzWVqCqKhzd+ecDTz8N5OUlgFRNRUAEREAERCC9BCQAs0MAUvS9BeDrwcedD2ALgH8D8EOPW+DpoBj8fIz2PgB7g/dwzicpAM8HMN/jPaI1kwCMpMIKIqwk4r6WLwfm22C2eELqKgIiIAIiIAIRBCQAMy8AiwB0BC1xi1zP5xcAqgEs9LBraRF8AcB3AETULwv1rghaE2lZfD74VwpAHju3BK2ErwFgVMPHQ9yzGAD/cS6Ou7WlpQWVldSCugyB9naAPAKB/UBOPx146aVhtwb2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URjJchhlxYrS3bXDigFkzEy59aHIcjC5diTLwOv5stEFnMw6JMuArl/W/KPg52cCXcB8X/AzhC7ydcncPEvOTZYBPztZBoahAIyF3Ol4jn1WklSWPJrvaSTLgBem+JluxYQzNIIxwvwjiJ8P/F82HywDw6QP1vGkEKR1/yIAM631ZKwfs/0/Zj2EXQbmB5almxbf71mZwSoDk80rrblFCPANy79wnIWgmcHnLATNwHZmNzkLXH7aynai9YMZsbl8pMqA2YIUxrR68UOOiTPMBM3VI1kOrPfGrGfW+mLpA5YNYtbj111fgLnEI1kGw1EAJsuACQ+0fDBQnuKPbk8mf7Awci4mgdhCJpnPRdvi5bUfmCD0bC69Cay5JrsPOOzjluXb/bgMl8kFSzBLwNiFoFnAmt+FdjFzfv9xnflHvn3wv78NYLZVDeNW1/dkDi57sCnLBRyMn0aLgAiIgAiIgAiIQM4RkADMuSXThEVABERABERABEQgGAEJwGD8NFoEREAEREAEREAEco6ABGDOLZkmLAIiIAIiIAIiIALBCEgABuOn0SIgAiIgAiIgAiKQcwQkAHNuyTRhERABERABERABEQhGQAIwGD+NFgEREAEREAEREIGcIyABmHNLpgmLgAiIgAiIgAiIQDACEoDB+Gm0CIiACIiACIiACOQcAQnAnFsyTVgEREAEREAEREAEghGQAAzGT6NFQAREQAREQAREIOcISADm3JJpwiIgAiIgAiIgAiIQjIAEYDB+Gi0CIiACIiACIiACOUdAAjDnlkwTFgEREAEREAEREIFgBCQAg/HTaBEQAREQAREQARHIOQISgDm3ZJqwCIiACIiACIiACAQjIAEYjJ9Gi4AIiIAIiIAIiEDOEZAAzLkl04RFQAREQAREQAREIBgBCcBg/DRaBERABERABERABHKOgARgzi2ZJiwCIiACIiACIiACwQhIAAbjp9EiIAIiIAIiIAIikHMEJABzbsk0YREQAREQAREQAREIRkACMBg/jRYBERABERABERCBnCMgAZhzS6YJi4AIiIAIiIAIiEAwAhKAwfhptAiIgAiIgAiIgAjkHAEJwJxbMk1YBERABERABERABIIRkAAMxk+jRUAEREAEREAERCDnCEgA5tySacIiIAIiIAIiIAIiEIyABGAwfhotAiIgAiIgAiIgAjlHQAIw55ZMExYBERABERABERCBYAQkAIPx02gREAEREAEREAERyDkCEoA5t2SasAiIgAiIgAiIgAgEI/D/Abor8tqjsMZ3AAAAAElFTkSuQmCC\" width=\"640\">"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"p = result.params\n",
"y = ibex[\"Volatility\"].dropna().values\n",
"x = ibex[[\"Equity\", \"Volatility\"]].dropna()[\"Equity\"].values\n",
"plt.plot(x, p.const + p.Equity * x, color='r', zorder=1)\n",
"plt.scatter(x, y, marker = 'o', alpha=0.8, s=5)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"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.1"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment