From 590af94807979d602aba1a8e540acfcb51bba44d Mon Sep 17 00:00:00 2001 From: Roger Labbe Date: Sat, 27 Feb 2016 18:55:34 -0800 Subject: [PATCH] Switching to interactive plots --- 03-Gaussians.ipynb | 10109 ++++++++++++- 04-One-Dimensional-Kalman-Filters.ipynb | 17291 +++++++++++++++++++++- code/book_plots.py | 46 +- code/mkf_internal.py | 40 - figs/residual_chart.png | Bin 0 -> 30679 bytes 5 files changed, 27137 insertions(+), 349 deletions(-) create mode 100644 figs/residual_chart.png diff --git a/03-Gaussians.ipynb b/03-Gaussians.ipynb index a4ce829..5480980 100644 --- a/03-Gaussians.ipynb +++ b/03-Gaussians.ipynb @@ -50,7 +50,7 @@ " font-family: 'Source Code Pro', Consolas, monocco, monospace;\n", "}\n", " div.cell{\n", - " width: 850px;\n", + " //width: 950px;\n", " margin-left: 0% !important;\n", " margin-right: auto;\n", " }\n", @@ -64,7 +64,7 @@ " //font-family: 'Chivo',verdana,arial,sans-serif;\n", " //font-family: 'Cardo',verdana,arial,sans-serif;\n", " //font-family: 'Arvo',verdana,arial,sans-serif;\n", - " //font-family: 'Poppins',verdana,arial,sans-serif; \n", + " //font-family: 'Poppins',verdana,arial,sans-serif;\n", " //font-family: 'Ubuntu',verdana,arial,sans-serif;\n", " //font-family: 'Fontin',verdana,arial,sans-serif;\n", " //font-family: 'Raleway',verdana,arial,sans-serif;\n", @@ -88,10 +88,10 @@ " h1 {\n", " font-family: 'Open sans',verdana,arial,sans-serif;\n", "\t}\n", - "\t\n", + "\n", " div.input_area {\n", " background: #F6F6F9;\n", - " border: 1px solid #586e75; \n", + " border: 1px solid #586e75;\n", " }\n", "\n", " .text_cell_render h1 {\n", @@ -104,7 +104,7 @@ " display: block;\n", " white-space: wrap;\n", " text-align: left;\n", - " } \n", + " }\n", " h2 {\n", " font-family: 'Open sans',verdana,arial,sans-serif;\n", " text-align: left;\n", @@ -120,7 +120,7 @@ " display: block;\n", " white-space: wrap;\n", " text-align: left;\n", - " } \n", + " }\n", " h3 {\n", " font-family: 'Open sans',verdana,arial,sans-serif;\n", " }\n", @@ -187,42 +187,38 @@ " margin: 2em;\n", " }\n", " ul li{\n", - " padding-left: 0.5em; \n", - " margin-bottom: 0.5em; \n", - " margin-top: 0.5em; \n", + " padding-left: 0.5em;\n", + " margin-bottom: 0.5em;\n", + " margin-top: 0.5em;\n", " }\n", " ul li li{\n", - " padding-left: 0.2em; \n", - " margin-bottom: 0.2em; \n", - " margin-top: 0.2em; \n", + " padding-left: 0.2em;\n", + " margin-bottom: 0.2em;\n", + " margin-top: 0.2em;\n", " }\n", " ol{\n", " margin: 2em;\n", " }\n", " ol li{\n", - " padding-left: 0.5em; \n", - " margin-bottom: 0.5em; \n", - " margin-top: 0.5em; \n", + " padding-left: 0.5em;\n", + " margin-bottom: 0.5em;\n", + " margin-top: 0.5em;\n", " }\n", " ul li{\n", - " padding-left: 0.5em; \n", - " margin-bottom: 0.5em; \n", - " margin-top: 0.2em; \n", + " padding-left: 0.5em;\n", + " margin-bottom: 0.5em;\n", + " margin-top: 0.2em;\n", " }\n", " a:link{\n", - " font-weight: bold;\n", " color:#447adb;\n", " }\n", " a:visited{\n", - " font-weight: bold;\n", " color: #1d3b84;\n", " }\n", " a:hover{\n", - " font-weight: bold;\n", " color: #1d3b84;\n", " }\n", " a:focus{\n", - " font-weight: bold;\n", " color:#447adb;\n", " }\n", " a:active{\n", @@ -230,10 +226,10 @@ " color:#447adb;\n", " }\n", " .rendered_html :link {\n", - " text-decoration: underline; \n", + " text-decoration: underline;\n", " }\n", " .rendered_html :hover {\n", - " text-decoration: none; \n", + " text-decoration: none;\n", " }\n", " .rendered_html :visited {\n", " text-decoration: none;\n", @@ -246,7 +242,7 @@ " }\n", " .warning{\n", " color: rgb( 240, 20, 20 )\n", - " } \n", + " }\n", " hr {\n", " color: #f3f3f3;\n", " background-color: #f3f3f3;\n", @@ -300,7 +296,7 @@ ], "source": [ "#format the book\n", - "%matplotlib inline\n", + "%matplotlib notebook\n", "from __future__ import division, print_function\n", "from book_format import load_style\n", "load_style()" @@ -654,9 +650,775 @@ "outputs": [ { "data": { - "image/png": "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\nB42wadMmPf7449q+fbvWr1+vFi1aaOjQoR7vsQz/ERMTo7y8PO3evVslJSUaMmSIHnzwQe3du9fs\n1OCjHTt26OWXX1avXr3MTgU+uvPOO1VWVian0ymn06lPPvnE7JTgg8rKSqWlpclms+m9997TwYMH\ntXTpUkVGRl5zrmWX3/Tr10933323XnjhBddY165dNWbMGOXm5pqYGXx18803a9myZcrIyDA7FTSB\n6upqhYWFqbCwUPfff7/Z6aCR2rVrp1//+teaMmWK2anAS5WVlUpKStKKFSv01FNPuS6kIHDk5OTo\nzTff1N///nezU0Ej/ed//qc2b97s0ZX5K1nySv2lS5dUUlKiYcOGuY3fe++92rZtm0lZAbjc+fPn\nVVtbq/DwcLNTQSPU1tbqj3/8o6qrq5Wammp2OvDBj370Iz388MO65557zE4FjXDkyBF17NhR8fHx\nGjdunNsmIwgchYWFSklJUXp6uqKiotS7d28tW7bMo7mWbOrPnj2rmpoaRUVFuY1HRUXJ6XSalBWA\ny82YMUOJiYnq37+/2anAB3v37tXNN9+sVq1aaerUqXr77bfVo0cPs9OCl15++WUdOXJEv/zlL81O\nBY3Qr18/rVq1Sn/961/1u9/9Tk6nU6mpqaqoqDA7NXjpyJEjWr58uW677TYVFRUpKytLc+bM0fLl\ny6851/QtLQHceGbNmqVt27Zp69atstlsZqcDH9x5553as2ePKisr9ec//1kZGRnauHGjunfvbnZq\n8NCnn36qn//859q6davsdkte47thDB8+3O1+v379FBcXp9WrV7Pld4Cpra1V3759XUvFe/XqpU8/\n/VTLli3T1KlTrzrXkq/iiIgIORwOlZWVuY2XlZUpOjrapKwASNLMmTO1Zs0arV+/vs63QCNwtGjR\nQvHx8erdu7dyc3N19913a/HixWanBS9s375d5eXl6t69u4KCghQUFKSNGzdq2bJlatmypS5dumR2\nivBRSEiIevToocOHD5udCrzUvn17devWzW2sW7duKi0tveZcSzb1QUFBSkpKUnFxsdt4cXGx0tLS\nTMoKwIwZM1wNfZcuXcxOB02otrZWX375pdlpwAvf//739cknn2jPnj2uW3JyssaNG6c9e/YoKCjI\n7BTho4sXL+rgwYNq37692anAS2lpaTp06JDb2KFDhzy6CGbZ5TezZs1SRkaG+vTpo7S0NOXn5+v0\n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\n", + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\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 = $('
');\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 = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width);\n", + " canvas.attr('height', height);\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\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 = $('');\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 = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " event.shiftKey = false;\n", + " // Send a \"J\" for go to next cell\n", + " event.which = 74;\n", + " event.keyCode = 74;\n", + " manager.command_mode();\n", + " manager.handle_keydown(event);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 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": [ - "" + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" ] }, "metadata": {}, @@ -702,8 +2231,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "mean = 1.778\n", - "std = 0.144\n" + "mean = 1.807\n", + "std = 0.132\n" ] } ], @@ -711,7 +2240,7 @@ "from numpy.random import randn\n", "data = [1.8 + .1414*randn() for i in range(100)]\n", "\n", - "with figsize(y=3.):\n", + "with interactive_plot():\n", " plot_height_std(data, lw=2)\n", "\n", "print('mean = {:.3f}'.format(np.mean(data)))\n", @@ -822,9 +2351,775 @@ "outputs": [ { "data": { - "image/png": "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\n", + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\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 = $('
');\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 = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width);\n", + " canvas.attr('height', height);\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\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 = $('');\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 = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " event.shiftKey = false;\n", + " // Send a \"J\" for go to next cell\n", + " event.which = 74;\n", + " event.keyCode = 74;\n", + " manager.command_mode();\n", + " manager.handle_keydown(event);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 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": [ - "" + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" ] }, "metadata": {}, @@ -917,6 +3978,7 @@ ], "source": [ "from filterpy.stats import plot_gaussian_pdf\n", + "plt.figure()\n", "plot_gaussian_pdf(mean=1.8, variance=0.1414**2, \n", " xlabel='Student Height', ylabel='pdf');" ] @@ -946,9 +4008,775 @@ "outputs": [ { "data": { - "image/png": "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\nOXKkDh06pIaGBv3zn//UvHnztGfPHo0ePdrsaKb47LPP9OSTT+r9999XYGC3uE7RrltvvbXV78eP\nH6+YmBht2rSp29661eVy6YYbblBeXp4kKTExUZ999pkKCwv10EMPmZzOfOvWrVNycrISEhLMjmKq\nrVu3avPmzdq6datGjx6t6upqLV68WDExMVqwYIHZ8UyzZcsWZWZmKioqSsHBwRo3bpzuueceVVVV\nmR2tQ7rF3xBX8mh4dF+PPPKISktLVVZWxhNKJQUHBys2NlbXX3+98vLy9Mtf/lL5+flmxzLNBx98\noP/9738aPXq0QkJCFBISoj179qiwsFA9evRQU1OT2RFNFxYWpjFjxujo0aNmRzFNZGSkRo0a1Wps\n1KhROnHihEmJfMfXX3+tN998UwsXLjQ7iukeffRRLV26VLNnz9aYMWN07733Kicnp9t/8DEmJkZl\nZWU6d+6cvvrqK+3fv18XLlxQbGys2dE6pFs02VfyaHh0T0uWLGlpsOPj482O45NcLpe+//57s2OY\n5s4779RHH32kQ4cOtfyyWq2aO3euDh06pJCQELMjmu78+fM6fPiwIiMjzY5imtTU1JZztj86cuQI\nP7hLKikpUa9evTRnzhyzo5ju22+/dfsXscDAwG5/C78fhYaGymKx6PTp09q5c6dmzpxpdqQO6TbH\nRXJycjRv3jwlJye3PBrebrd363NP586d0+effy7DMORyuXTixAkdOnRIAwcOVHR0tNnxutzDDz+s\nLVu26I033lD//v1b/uWjT58+6t27t8npzJGbm6vp06crOjpajY2NeuWVV7Rnz55ufa/sfv36uR2V\n6d27twYOHOh25bK7WLp0qWbMmKGhQ4fK6XRqxYoV+vbbbzV//nyzo5nmkUceUWpqqp599lndfffd\nOnjwoNauXatVq1aZHc10GzZs0Ny5c7l1rKQZM2Zo1apVGj58uMaMGaODBw8qPz9fGRkZZkcz1a5d\nu+RyuTRy5EgdPXpUjz76qEaPHu1/dTH79iZdqbi42IiJiTF69eplWK1Wo7y83OxIptq9e7cREBBg\nBAYGtvq1YMECs6OZoq1aBAYGGsuXLzc7mmkyMjKM4cOHG7169TIsFouRlpZm2Gw2s2P5nFtuuaVb\n38Jvzpw5xpAhQ4yePXsaUVFRxl133WV8+umnZscy3bZt24zExEQjNDTUGDFihPHiiy+aHcl0ZWVl\nRmBgoFFZWWl2FJ9w9uxZ45FHHjGGDx9uhIWFGXFxccayZcuM77//3uxopnrttdeMuLg4o1evXsbg\nwYONxYsXG2fOnDE7VofxWHUAAADAy7rFmWwAAACgK9FkAwAAAF5Gkw0AAAB4GU02AAAA4GU02QAA\nAICX0WQDAAAAXkaTDQAAAHgZTTYAAADgZTTZAAAAgJf9HxdT59tjjUmTAAAAAElFTkSuQmCC\n", + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\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 = $('
');\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 = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width);\n", + " canvas.attr('height', height);\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\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 = $('');\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 = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " event.shiftKey = false;\n", + " // Send a \"J\" for go to next cell\n", + " event.which = 74;\n", + " event.keyCode = 74;\n", + " manager.command_mode();\n", + " manager.handle_keydown(event);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 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": [ - "" + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" ] }, "metadata": {}, @@ -990,7 +5584,7 @@ } ], "source": [ - "with figsize(y=3.):\n", + "with interactive_plot():\n", " plot_gaussian_pdf(mean=120, variance=17**2, xlabel='speed(kph)')" ] }, @@ -1048,9 +5642,775 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAuIAAADxCAYAAACOPtIjAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlcVXX+x/HX5bKvoiCrgqi44C6uaJZrLpVaWtOebbaY\nWtPitEzL2ExT0+5Sv5oaayozlxa1RMt9xy0FcQVFAUWQfb3c3x/YTUYUUvBw8f18PHgIn/M9975v\nJ+DDud/zPSar1WpFREREREQuKwejA4iIiIiIXInUiIuIiIiIGECNuIiIiIiIAdSIi4iIiIgYQI24\niIiIiIgB1IiLiIiIiBhAjbiIiIiIiAFq3IjPnDmTiIgI3NzciI6OZu3atecdu2rVKkaPHk1wcDAe\nHh507tyZTz75pMpx0dHRuLm50apVKz744IOLexUiIiIiInamRo343LlzmTJlCs899xw7duygb9++\nDB8+nJSUlCrHr1+/nk6dOjF//nz27NnDQw89xAMPPMBXX31lG5OUlMTIkSPp168fO3bs4JlnnmHS\npEksXLiwdl6ZiIiIiEg9ZqrJnTV79+5Nly5dmD17tq0WGRnJuHHjmD59eo2e6Oabb6a8vJx58+YB\n8PTTT7No0SISExNtY+6//37i4+NZt27dH30dIiIiIiJ2pdoz4qWlpcTFxTFkyJBK9aFDh7J+/foa\nP1FOTg6+vr62rzdu3MjQoUMrjRk2bBhbt27FYrHU+HFFREREROxRtY14RkYGFouFgICASvWAgADS\n0tJq9CQ//PADP//8Mw8++KCtlpaWVuVjlpWVkZGRUaPHFRERERGxV451/QTr1q3jtttu47333qN7\n9+4X9RjZ2dm1nEpERERE5PLx8fE5p1btGXE/Pz/MZjPp6emV6unp6QQGBl5w37Vr1zJixAj+9re/\n8cADD1TaFhgYWOVjOjo64ufnV10sERERERG7Vm0j7uTkRPfu3YmNja1Uj42NJSYm5rz7rV69mhEj\nRvDyyy8zadKkc7b36dPnnMdctmwZ0dHRmM3mmuYXEREREbFLNZqa8vjjj3PnnXfSo0cPYmJimDVr\nFqmpqUycOBGAadOmsWXLFpYvXw7AypUrGTVqFI888gi33HKL7cy32Wy2ne2eOHEiM2bMYOrUqTz4\n4IOsXbuWOXPmVFrisCpVndb/zdatWwGIjo6uycuSekbHz37p2NWdopJCdh/azLb960hI3obFUnbe\n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\ntZbD1dmdJj4B+HkH0OTM2y1+PoE08Q6gsbe/1usWERGRBslkMtHIswmNPJvQNqxLpW0lpcW2M+IZ\n2alknE7jZHYqGdlpZOWcpPysmxBVpdxabjsxWh1nRxc8XL1wd/Ws+NfNCw8XLzzczqq5euFx5sPN\nxRNXFzeczM510sCbrFZrtZ1m79696dKlC7Nnz7bVIiMjGTduHNOnTz9n/KxZs5g2bRonTpzA2bli\n+sT06dOZPXs2R48eBeDpp59m0aJFJCYm2va7//77iY+PZ926dZUeLzs72/Z50sl4ikoKKS4tpKik\nkJLSooqvSwpJO5FKqaUYFzdniksKKS4torCkgMLi/Ep3kqoLZgdH2/9gjTyb0MirCY08/c587Yef\nTwDurl716q+w+mbr1q0AREdHG5xE/igdO/t29o+l6n8jSH2i7z37puNXPUu5hZz8LLJyMzidl0FW\nbgZZuSfP+jyDvMLs6h/oEjk4mHF1dsfV2Q1XZ3fKSiw4mV0I8A/C1dkVV2d3XH7b7uSGi7Mbzo4u\nNGsSaXsMH59zr+Or9ox4aWkpcXFxPPnkk5XqQ4cOZf369VXus3HjRvr3729rwgGGDRvGCy+8QHJy\nMmFhYWzcuJGhQ4dW2m/YsGHMmTMHi8WC2Vz1XJ+PF79WXWQ4Xf2QmjBhwt3NCy83nzNvb1T863nW\n17813h5u3jiYHGrniUVEREQEs4PZNh/8fErKisnNP01OQRY5+RVTh3MKssjNP01u4Wly8n//uib3\nW6lKebmFgqJcCopyK9WPZR244H6v3P2fC26vthHPyMjAYrEQEBBQqR4QEMCKFSuq3CctLY1mzZqd\nM95qtZKWlkZYWBhpaWkMGTLknDFlZWVkZGSc83yXysXZDXcXT9xdPSv+dfHA3dULd1cP3Fw8K23z\ncvfB090HTzefK3Y5HRERERF74OzoQhOfAJr4XLh3tFqtFJUUUlCcS35hLgVFFVOS88802L9/XlEv\nKMyloDiPopJCLOU1X0r6j7C7VVOq+8ui1pRBXu6lXYApf0zr1q2BylORxD7o2Nm302e9i6hDaF/0\nvWffdPyM4YgrPq6u+Lj6Gx2FaudS+Pn5YTabSU9Pr1RPT08nMDCwyn0CAwOrHG8ymWz7nG+Mo6Mj\nfn7nf/tBRERERKQhqLYRd3Jyonv37sTGxlaqx8bGEhMTU+U+ffr0Yc2aNZSU/D4PZ9myZQQHBxMW\n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\nAAAASUVORK5CYII=\n", + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\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 = $('
');\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 = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width);\n", + " canvas.attr('height', height);\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\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 = $('');\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 = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " event.shiftKey = false;\n", + " // Send a \"J\" for go to next cell\n", + " event.which = 74;\n", + " event.keyCode = 74;\n", + " manager.command_mode();\n", + " manager.handle_keydown(event);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 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": [ - "" + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" ] }, "metadata": {}, @@ -1180,10 +7308,11 @@ "import matplotlib.pyplot as plt\n", " \n", "xs = np.arange(15, 30, 0.05)\n", - "plt.plot(xs, gaussian(xs, 23, 0.05), label='$\\sigma^2$=0.05', c='b')\n", - "plt.plot(xs, gaussian(xs, 23, 1), label='$\\sigma^2$=1', ls=':', c='b')\n", - "plt.plot(xs, gaussian(xs, 23, 5), label='$\\sigma^2$=5', ls='--', c='b')\n", - "plt.legend();" + "with interactive_plot():\n", + " plt.plot(xs, gaussian(xs, 23, 0.05), label='$\\sigma^2$=0.05', c='b')\n", + " plt.plot(xs, gaussian(xs, 23, 1), label='$\\sigma^2$=1', ls=':', c='b')\n", + " plt.plot(xs, gaussian(xs, 23, 5), label='$\\sigma^2$=5', ls='--', c='b')\n", + " plt.legend();" ] }, { @@ -1221,9 +7350,775 @@ "outputs": [ { "data": { - "image/png": "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\nrkJggg==\n", + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\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 = $('
');\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 = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width);\n", + " canvas.attr('height', height);\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\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 = $('');\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 = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " event.shiftKey = false;\n", + " // Send a \"J\" for go to next cell\n", + " event.which = 74;\n", + " event.keyCode = 74;\n", + " manager.command_mode();\n", + " manager.handle_keydown(event);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 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": [ - "" + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" ] }, "metadata": {}, @@ -1269,6 +8930,7 @@ "\n", "set_figsize(y=3)\n", "def plt_g(mu,variance):\n", + " plt.figure()\n", " xs = np.arange(2, 8, 0.1)\n", " ys = gaussian(xs, mu, variance)\n", " plt.plot(xs, ys)\n", @@ -1505,9 +9167,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "[ 2.319 -2.683 4.506 5.454 6.858 3.501 2.62\n", - " 1.606 5.649 -3.655 -4.25 2.354 -2.9 1.926\n", - " 6.512]\n" + "[ 2.555 1.412 -0.268 -1.283 4.361 7.668 3.876\n", + " 1.915 4.536 4.068 1.288 2.493 0.271 2.668\n", + " 5.318]\n" ] } ], @@ -1597,9 +9259,775 @@ "outputs": [ { "data": { - "image/png": "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\nshP/H/VN5Q2UfDpMAAAAAElFTkSuQmCC\n", + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\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 = $('
');\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 = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width);\n", + " canvas.attr('height', height);\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\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 = $('');\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 = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " event.shiftKey = false;\n", + " // Send a \"J\" for go to next cell\n", + " event.which = 74;\n", + " event.keyCode = 74;\n", + " manager.command_mode();\n", + " manager.handle_keydown(event);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 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": [ - "" + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" ] }, "metadata": {}, @@ -1665,7 +10860,8 @@ ], "source": [ "zs = [sense() for i in range(5000)]\n", - "plt.plot(zs, lw=1);" + "with interactive_plot():\n", + " plt.plot(zs, lw=1)" ] }, { @@ -1707,9 +10903,775 @@ "outputs": [ { "data": { - "image/png": "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\n", + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\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 = $('
');\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 = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width);\n", + " canvas.attr('height', height);\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\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 = $('');\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 = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " event.shiftKey = false;\n", + " // Send a \"J\" for go to next cell\n", + " event.which = 74;\n", + " event.keyCode = 74;\n", + " manager.command_mode();\n", + " manager.handle_keydown(event);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 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": [ - "" + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" ] }, "metadata": {}, @@ -357,8 +1119,10 @@ ], "source": [ "from book_format import set_figsize, figsize\n", + "from book_plots import interactive_plot\n", + "\n", "import filterpy.stats as stats\n", - "with figsize(y=3):\n", + "with interactive_plot():\n", " stats.plot_gaussian_pdf(mean=10, variance=1, \n", " xlim=(4, 16), ylim=(0, .5))" ] @@ -379,22 +1143,788 @@ "collapsed": false }, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mean of readings is 10.015\n" - ] - }, { "data": { - "image/png": "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\nTkSuQmCC\n", + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\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 = $('
');\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 = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width);\n", + " canvas.attr('height', height);\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\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 = $('');\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 = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " event.shiftKey = false;\n", + " // Send a \"J\" for go to next cell\n", + " event.which = 74;\n", + " event.keyCode = 74;\n", + " manager.command_mode();\n", + " manager.handle_keydown(event);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 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": [ - "" + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" ] }, "metadata": {}, @@ -457,7 +2754,8 @@ ], "source": [ "import kf_internal\n", - "kf_internal.gaussian_vs_histogram()" + "with interactive_plot():\n", + " kf_internal.gaussian_vs_histogram()" ] }, { @@ -695,22 +2993,788 @@ "scrolled": true }, "outputs": [ + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\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 = $('
');\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 = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width);\n", + " canvas.attr('height', height);\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\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 = $('');\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 = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " event.shiftKey = false;\n", + " // Send a \"J\" for go to next cell\n", + " event.which = 74;\n", + " event.keyCode = 74;\n", + " manager.command_mode();\n", + " manager.handle_keydown(event);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 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": [ - "" + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" ] }, "metadata": {}, @@ -764,7 +4596,7 @@ ], "source": [ "def plot_products(m1, v1, m2, v2, legend=True): \n", - "\n", + " plt.figure()\n", " product = gaussian_multiply((m1, v1), (m2, v2))\n", "\n", " xs = np.arange(5, 15, 0.1)\n", @@ -781,6 +4613,7 @@ " \n", "z1 = (10.2, 1)\n", "z2 = (9.7, 1)\n", + " \n", "plot_products(*z1, *z2)" ] }, @@ -808,9 +4641,1551 @@ "outputs": [ { "data": { - "image/png": "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\nEAgEAiPw/6vdobnAQdbhAAAAAElFTkSuQmCC\n", + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\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 = $('
');\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 = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width);\n", + " canvas.attr('height', height);\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\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 = $('');\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 = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " event.shiftKey = false;\n", + " // Send a \"J\" for go to next cell\n", + " event.which = 74;\n", + " event.keyCode = 74;\n", + " manager.command_mode();\n", + " manager.handle_keydown(event);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 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": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" ] }, "metadata": {}, @@ -819,10 +6194,8 @@ ], "source": [ "prior, z = (8.5, 1.5), (10.2, 0.5)\n", - "plt.subplot(121)\n", "plot_products(*prior, *z, False)\n", "prior, z = (8.5, 0.5), (10.2, 1.5)\n", - "plt.subplot(122)\n", "plot_products(*prior, *z, False)" ] }, @@ -854,9 +6227,775 @@ "outputs": [ { "data": { - "image/png": "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\nrkJggg==\n", + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\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 = $('
');\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 = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width);\n", + " canvas.attr('height', height);\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\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 = $('');\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 = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " event.shiftKey = false;\n", + " // Send a \"J\" for go to next cell\n", + " event.which = 74;\n", + " event.keyCode = 74;\n", + " manager.command_mode();\n", + " manager.handle_keydown(event);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 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": [ - "" + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" ] }, "metadata": {}, @@ -969,10 +7874,11 @@ ], "source": [ "# plot the results\n", - "bp.plot_filter(xs)\n", - "bp.plot_measurements(zs)\n", - "bp.plot_predictions(predictions)\n", - "bp.show_legend();" + "with interactive_plot():\n", + " bp.plot_filter(xs)\n", + " bp.plot_measurements(zs)\n", + " bp.plot_predictions(predictions)\n", + " bp.show_legend()" ] }, { @@ -1050,31 +7956,9 @@ "\n", "which is the average of the two means. It makes intuitive sense to take the average of two equally accurate values.\n", "\n", - "We can understand this by looking at this chart:" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": { - "collapsed": false, - "scrolled": true - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "from mkf_internal import show_residual_chart\n", - "show_residual_chart()" + "We can understand this by looking at this chart:\n", + "\n", + "source: `book_plots.show_residual_chart()`" ] }, { @@ -1086,7 +7970,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 14, "metadata": { "collapsed": true }, @@ -1204,11 +8088,787 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\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 = $('
');\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 = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width);\n", + " canvas.attr('height', height);\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\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 = $('');\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 = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " event.shiftKey = false;\n", + " // Send a \"J\" for go to next cell\n", + " event.which = 74;\n", + " event.keyCode = 74;\n", + " manager.command_mode();\n", + " manager.handle_keydown(event);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 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": [ - "" + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" ] }, "metadata": {}, @@ -1461,8 +9834,7 @@ } ], "source": [ - "import book_format\n", - "with book_format.figsize(y=3):\n", + "with interactive_plot():\n", " xs = np.arange(145, 190, 0.1)\n", " ys = [stats.gaussian(x, 160, 3**2) for x in xs]\n", " plt.plot(xs, ys, label='A', color='g')\n", @@ -1487,16 +9859,782 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { - "image/png": "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\n", + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\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 = $('
');\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 = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width);\n", + " canvas.attr('height', height);\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\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 = $('');\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 = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " event.shiftKey = false;\n", + " // Send a \"J\" for go to next cell\n", + " event.which = 74;\n", + " event.keyCode = 74;\n", + " manager.command_mode();\n", + " manager.handle_keydown(event);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 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": [ - "" + "" ] }, "metadata": {}, @@ -1581,9 +11475,787 @@ }, { "data": { - "image/png": "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\nAElFTkSuQmCC\n", + "text/html": [ + "" + ], "text/plain": [ - "" + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\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 = $('
');\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 = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width);\n", + " canvas.attr('height', height);\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\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 = $('');\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 = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " event.shiftKey = false;\n", + " // Send a \"J\" for go to next cell\n", + " event.which = 74;\n", + " event.keyCode = 74;\n", + " manager.command_mode();\n", + " manager.handle_keydown(event);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 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": [ - "" + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" ] }, "metadata": {}, @@ -1713,9 +13153,10 @@ " pos = update(prior, (zs[i], sensor_var))\n", " ps.append(pos[0])\n", "\n", - "bp.plot_measurements(zs, lw=1)\n", - "bp.plot_filter(ps)\n", - "plt.legend(loc='best');" + "with interactive_plot():\n", + " bp.plot_measurements(zs, lw=1)\n", + " bp.plot_filter(ps)\n", + " plt.legend(loc=4)" ] }, { @@ -1740,16 +13181,782 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { - "image/png": "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\nNCPXIkuIILz9cvsAnL1w0sLCgoYNGxZkk4QCIAJvQfhAOTs7A3Ds2DHmzJlDSkoKV69eRVdXF3t7\n+xzv065dO+bMmUNISAhbt27l6tWrAHTo0CHX83Tv3h1dXV1mzpzJ3bt3+eijj5g9e3auO0rev6/J\nW1emTBnc3d3JysrCzMyMu3fv0qdPH/T09Jg1axbJyclUrVqV5cuXvxXztWVZ5k6CJrjOnnudHWhf\niYaMzFc/ppHBk9zWZeye5Ld2tQeL4mLkWhDeZUWKFAE0//OeXlzZokULTExMCAoKwtvb+5kNuuLj\n4ylZsmSBtlXIOyLwFoQPlIODAyNHjmT69OnKPGyAiRMn5jjaDVC3bl0WL17MoEGDuHLlCgCDBg1i\n5MiRzz1Xly5d6NKly0u1q3Llyujr6/Pvv//SsWNH7t+/z927d7G2tsbR0ZHx48cTGBhIZmZmoaTN\nepSm2Ujm4lMLGy/chAuRr5eOL3t3RjeHpzaQcdBclyop0vAJwtsoL7Ii1ahRA1mWGTVqFJ9//jn6\n+vo0adIEc3Nz5s+fT48ePahatSqdO3fG0tKSGzdusHXrVqpWrZprfnDh7ScCb0F4z8iyTHp6+kvN\n+5s2bRrly5fn77//RpIkOnbsqEwByU3v3r3p0KED165dw9raOsc5iG/C2tqaxYsX07t3b3799VcA\nTE1NWbNmjTLyI0lSvgbd6RkylyLh/A1NfuvLUXDlca7rqNuvd0ybEtrTQrJ3aHQuJXZnFIR3zYu+\nbZIk6Zk6//3d09OTyZMns2DBArZt24ZarVY20OnSpQt2dnZMmTKF6dOnk5aWhq2tLXXq1KFfv36v\n1Bbh7SLJb2Ey28TEJyuKcvs6Or8cPXoU0HwSFT4s73rfy7LM5MmTmTZtGg8ePMDd3Z1ly5bh6emJ\nWq1m/fr1nDlzBmtra7744otcR7WzpaSksHnzZuLj46lWrVq+rN5/ntOnT7N79250dXVp1aoVjo6O\neX6O5BSZP7ed43qcIY8kZ87fgHPXNQH266TkMzF6Mtc6O7h2c9BkDTEtIt4c3zbv+t/82yo1NRVD\nQ8PCboYg5IsXvb5fFMOKEW9BeMfIsszy5csJDQ1FkiTat29P165dmT17NuPGjVPqnTt3jmbNmnH8\n+HFGjBjBhg0blNtmzpxJWFiY1rzCp8XGxtKoUSPOnTunlI0dO5aJEyfm3wP7j4oVK2ptjfy6srJk\n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\n", + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\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 = $('
');\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 = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width);\n", + " canvas.attr('height', height);\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\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 = $('');\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 = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " event.shiftKey = false;\n", + " // Send a \"J\" for go to next cell\n", + " event.which = 74;\n", + " event.keyCode = 74;\n", + " manager.command_mode();\n", + " manager.handle_keydown(event);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 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": [ - "" + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" ] }, "metadata": {}, @@ -1828,9 +14802,10 @@ " pos = update(prior, (z, sensor_var))\n", " ps.append(pos[0])\n", "\n", - "bp.plot_measurements(zs, lw=1)\n", - "bp.plot_filter(ps)\n", - "plt.legend(loc=4);" + "with interactive_plot():\n", + " bp.plot_measurements(zs, lw=1)\n", + " bp.plot_filter(ps)\n", + " plt.legend(loc=4)" ] }, { @@ -1851,16 +14826,782 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "data": { - "image/png": "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\nzFulShWD4lfqGN3c3Lh+/foUs+k0adIkxZoE8fHxBiknAW34izqxPHjwIBVFEelCdVvjxo31fg+u\nX78uJibq62r/W7Zs4bJly8T36cdGCvMM5l0/1hdv6X+Ip62Twvy/jhTmaWP16tUEtLG4iqLw8ePH\nBLTe7vcNabl9+zYPHDjAO3fuZNBokyctdlcUxSCDQaVKlVJMLZcaRo8ebfADtHjxYsbExBgNgUjp\nUXFqiImJEYU9dJsaQpQcvr6+bNu2LevWrcshQ4Z8sO/m2NhYnj9/nj4+Pukupe3t7S0e4+fMmVNv\nwufq6iricydMmMBTp07phbdUqFDBYJGtuv4hX758ejmZrayshIAwNzenh4eHwXVVhXD79u1J8oNM\nNI2FS1hYWHDPnj3Cc667oNrS0pJRUVFMTEwUHvACBQqwXr16PHv2rOhXURSjXuA2bdqIbbZs2WK0\ncMz58+dFyMo333wjhLh6rQBtsaPFixfrPU0oUsyFu7wD2H3cNaLo/2j21XJmLbeTcD1DVHiUIekF\n8fUrwuUwc369g8g/hLCrQWStzj6j/+TJKwpj4/Rt9NdffxHQhkH9/fffnDlzJgHDWGvdCVDPnj1F\nQSNAG+ddvXp1o9fS2JMqRVH00mw2bNjQaBGx2rVrGw0rSgtq9hy1qR5n3bz2alrN+fPni23y5MnD\nMmXK6C1KtbW1TTZ05tKlSwTexqTb2trqLQTNnj07FUURE8IsWbLw0qVLvHjxonAE6cbjP3/+nIDW\ny/7nn3/yyJEjIlXs7du3M/V3XQrzDCY1xuwzU/+D7vuvFOf/ZaQwTxvr1q0joE1DFh8fz3/++Uf8\n4P+XwiHSYnd18ZO1tTU7d+6sV/wivTx69Ej8yE2fPl3kfLa0tGRkZCSfP3/OZs2aMXv27HR0dOTE\niRNTNfFRFIVPnz5lQECAUSEYGhrK7t27s2TJkvTw8OC6detS7O/UqVMGmRTc3NwyPNf87du39bI3\nODk5GQ2ZSImrV68aLTbStm1bPSHVunVrkeYwKiqK58+f57Vr14xe3+TitdVmamoqFpkll7XCw8Mj\n1efw9OlTHj16lLdv307V9mpYyIABA/jkyRORqk712P74449UFEWER2k0Gnp7e/Obb74xOlYrKytm\ny5aNPXr0YFBQEAcOHMhChQqxcOHCHDJkiHhSlJiYKJ6W9e/fnx06dEjxOsHCkRq7GoRDc+ar8Bvr\n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\nKLGYNGtHt6tWrcpddlgrXrw4XFxcUK5cOTRv3lwn2p+UlCQpZ8/OdWbHR1vWYmdnl6mdIPAxcsz2\n9dmzZ5J90D4/TLoxfPhw+Pr68uuNeX+zc1KrVi0QaZyBxGCzAmwgISb+7PeHDh1CRkaGZL/z5cuH\nffv28fNpZGT0RQlMbPuvX78G8LFMvbY3OZNBFSpUCIsXL+aOLayxAcno0aNB9LFSZ79+/fRu10DS\n/nswnPO8QU6Jue8GAbJGX6f5bshczvY5yCz5Uy6XcxnJp4g5oCm2p0/KkpiYiPz582Po0KGSz+Pj\n41GoUCH07duXf+bt7Q25XI5Jkybl6j4akDW+hJhrMgkNyBFSUlIoOTmZFAoFT3ZjCR1t27YlIk1y\n5rp168jf359CQ0OJiGj+/PlEROTo6EjR0dHUpk0bsrS0JCKi3bt3U3x8/Ce3zRIUBw0aRLVq1aLm\nzZtLPhejSJEiNHPmTNq1axfdu3eP3N3dadCgQZScnCxZjiUGHjp0iH9WsmRJ/rezszN17dqVrzM+\nPp6USiXNmjWLvL29iUiTuNe8eXNavXo13blzh/z8/KhWrVokCAJ5eXnRwIEDiYioU6dO1Lp1a6pa\ntSr169dPp99Pnz4lIqL+/fvz5FkiTcKig4MDERGdOnWKdu3aRUREDRs2pMGDBxMR0e3bt+nevXt0\n7Ngx/rv3799TUFAQ3b59m3/2+++/86RTIqL27dvzBE0x7ty5Q5cuXSIiIicnJ1q4cCGFh4dTYGAg\nRUZG0tmzZ6lx48aS35ibm1NAQACZmJgQEdGJEycoLi6OWrZsSUSkk2DJEjkZXr16Rb/99hutWrWK\nVq5cSQ8ePJB8zxKN4+PjeTIqEfG+L126lOLi4sjHx4eIiOrXr08ymYzWrFlDM2fOJEEQaNSoUTzh\nlEiT1Hrz5k0i+nj9MixatIhKlizJE27T09OJSJMwXKhQISIi6tChA1lYWNDZs2fJ0tKSPDw8KDU1\nlbp06ULDhg0jIqIpU6Z8UfJS9erViYjI09OTpk6dSlu3bpV8zpCQkEBERNbW1jR+/Hh+7zGw64sl\nLefPn5+INOfNAAMMMCC3IJPJaPXq1XTmzBneTp8+nWmSfU5w8uRJSkxMpB49elBcXBxvarWaGjdu\nTIGBgTq/Yc9iA75/GFxZPgPm5uZUqFAhevPmDQUFBRER0b1794iIJDfE0KFD+d/9+vUjDw8PMjEx\n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\nS6wQQD6BAAAAAElFTkSuQmCC\n", + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\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 = $('
');\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 = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width);\n", + " canvas.attr('height', height);\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\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 = $('');\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 = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " event.shiftKey = false;\n", + " // Send a \"J\" for go to next cell\n", + " event.which = 74;\n", + " event.keyCode = 74;\n", + " manager.command_mode();\n", + " manager.handle_keydown(event);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 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": [ - "" + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" ] }, "metadata": {}, @@ -1930,9 +16438,10 @@ " pos = update(prior, (z, sensor_var))\n", " ps.append(pos[0])\n", "\n", - "bp.plot_measurements(zs, lw=1)\n", - "bp.plot_filter(ps)\n", - "plt.legend(loc='best');" + "with interactive_plot():\n", + " bp.plot_measurements(zs, lw=1)\n", + " bp.plot_filter(ps)\n", + " plt.legend(loc='best')" ] }, { @@ -1955,11 +16464,788 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 25, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\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 = $('
');\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 = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width);\n", + " canvas.attr('height', height);\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\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 = $('');\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 = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " event.shiftKey = false;\n", + " // Send a \"J\" for go to next cell\n", + " event.which = 74;\n", + " event.keyCode = 74;\n", + " manager.command_mode();\n", + " manager.handle_keydown(event);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 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": [ - "" + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" ] }, "metadata": {}, @@ -2026,15 +18079,16 @@ " pos = update(pos, (z, sensor_noise))\n", " ps.append(pos[0])\n", "\n", + " plt.figure()\n", " plt.plot(zs, c='k', marker='o', linestyle='', label='measurement')\n", " plt.plot(ps, c='#004080', alpha=0.7, label='filter')\n", " plt.legend(loc=4);\n", "\n", "interact(plot_kalman_filter,\n", " start_pos=(-10, 10), \n", - " sensor_noise=FloatSlider(value=5, min=0., max=100), \n", - " velocity=FloatSlider(value=1, min=-2., max=2.), \n", - " process_noise=FloatSlider(value=.1, min=0, max=40));" + " sensor_noise=FloatSlider(value=5, min=0., max=100, continuous_update=False), \n", + " velocity=FloatSlider(value=1, min=-2., max=2., continuous_update=False), \n", + " process_noise=FloatSlider(value=.1, min=0, max=40, continuous_update=False));" ] }, { @@ -2064,7 +18118,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 27, "metadata": { "collapsed": false }, @@ -2082,16 +18136,782 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "data": { - "image/png": "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\nn+DSJWm6/eJF7RwzhWGTzpLNY1po+FkbGSnYOq4lBX6lEUgUTH19Ye9e9QptFtAoY7Zp+2WePpXy\nFS0tNZsU/O4YeqQ86izan3/qbxyC+BNVlMdW5K8toory1asl95b27aUbfgqktlNe7qzux+Qf/Msf\nvPBl/Noz5O+8CKc/VjB7+0Uev/rIpPVu5Ou4gBUHr8u2qQqFVNB3a1VfCuY0bPelUFtbKbXVwUFK\nZ4qt/M7YWArkAMydK92r/Pykh/oUSukC9pxf0IP1o5qRPo30cBMeoWTI4qO0m7SbL99CNLafuukc\ny/Z7yMvDWpdnWJsfimOTitOnoXVrqUj7hyJffaP1+TZXV1eN5Y0bN2Jtbc2FCxdoqKtuSc+eSUK8\nWDHpw2OuxemwqBXVQpTHSLUSufinS1X+WXcGgJl/1KJ+Oe3lmGbat0/tlFO5MhSOYtkXEiJFJG7c\nkIpr0qeP/iAxUb26lEfasqX0QY3JhSc0VHq6PnlSskyMj1OApaWUmw7w5EnCxpXScHeXuuXa2Gha\nhQUExLyPvvD11VxOZr7DvyVJLcpLlZKajd28qb5eQkOlz7sBdAbUBeZmJoztXIUONYvyz7oz7Dn3\nQMOlxeOxDx6PfTS6tH6nVuk8zOpbmxL5YrEWNCBU5ubSA1Z8PveXL0v3p5cvpRnW3+S7wshIstOs\nUjwnrSfslJ1adpy5x62nb9k9sQ2Fc9uy5vANxq1Rd8ltX6OIbAqhF74HyCIiDM6aV+dJcAEBASiV\nStInVCglhGPH1JHTDh2kfGBtUbSoJKwCA6Uc41evROFfDIzrUoXS+e0wNzOhVuk8ce+QAD7Wr0/W\n9OmliNSPUfKaNaV0A5DsEWMr8P2Rly/VHqWurlKL7ehEeXi4VLPgFdnookcPKU0qLooUUb++ezf+\n40qJ+PhINpZv3kgNuTw9pTQWQ6zTiPp9VaSI9Pk3xHEK1CR1+sqQIdKPSgUjRsD/2Tvv8KbKL45/\nb7rSQlsotNACZRYoLSBDhrJlyBJQ9pChbAREZYqAslQEfsgSEUWZIggIsmQjimXvWUqB0kJL6aQr\neX9/nKb3Jk2a3STN+3mePL25ueNt8t57z3vec75n8WJaf+BAkTXKVVQJKolfpvfA6pedseef29h8\n5Cr2/XcXWdmKfNuGVw7A16PaocOrVQtP8tBSGNNeV1e1qqDORKWyJXBq2VBMXLE/zxt+62ECGo1Z\n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\n", + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\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 = $('
');\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 = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width);\n", + " canvas.attr('height', height);\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\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 = $('