Newer
Older
6001
6002
6003
6004
6005
6006
6007
6008
6009
6010
6011
6012
6013
6014
6015
6016
6017
6018
6019
6020
6021
6022
6023
6024
6025
6026
6027
6028
6029
6030
6031
6032
6033
6034
6035
6036
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
" } catch (e) {\n",
" console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
" }\n",
" }\n",
" };\n",
"}\n",
"\n",
"// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
"mpl.findpos = function(e) {\n",
" //this section is from http://www.quirksmode.org/js/events_properties.html\n",
" var targ;\n",
" if (!e)\n",
" e = window.event;\n",
" if (e.target)\n",
" targ = e.target;\n",
" else if (e.srcElement)\n",
" targ = e.srcElement;\n",
" if (targ.nodeType == 3) // defeat Safari bug\n",
" targ = targ.parentNode;\n",
"\n",
" // jQuery normalizes the pageX and pageY\n",
" // pageX,Y are the mouse positions relative to the document\n",
" // offset() returns the position of the element relative to the document\n",
" var x = e.pageX - $(targ).offset().left;\n",
" var y = e.pageY - $(targ).offset().top;\n",
"\n",
" return {\"x\": x, \"y\": y};\n",
"};\n",
"\n",
"/*\n",
" * return a copy of an object with only non-object keys\n",
" * we need this to avoid circular references\n",
" * http://stackoverflow.com/a/24161582/3208463\n",
" */\n",
"function simpleKeys (original) {\n",
" return Object.keys(original).reduce(function (obj, key) {\n",
" if (typeof original[key] !== 'object')\n",
" obj[key] = original[key]\n",
" return obj;\n",
" }, {});\n",
"}\n",
"\n",
"mpl.figure.prototype.mouse_event = function(event, name) {\n",
" var canvas_pos = mpl.findpos(event)\n",
"\n",
" if (name === 'button_press')\n",
" {\n",
" this.canvas.focus();\n",
" this.canvas_div.focus();\n",
" }\n",
"\n",
" var x = canvas_pos.x * mpl.ratio;\n",
" var y = canvas_pos.y * mpl.ratio;\n",
6054
6055
6056
6057
6058
6059
6060
6061
6062
6063
6064
6065
6066
6067
6068
6069
6070
6071
6072
6073
6074
6075
6076
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087
6088
6089
6090
6091
6092
6093
6094
6095
6096
6097
6098
6099
6100
6101
6102
6103
6104
6105
6106
6107
6108
6109
6110
6111
6112
6113
6114
6115
6116
6117
6118
6119
6120
6121
6122
6123
6124
6125
6126
6127
6128
6129
6130
6131
6132
6133
6134
6135
6136
6137
6138
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
6154
6155
6156
6157
6158
6159
6160
6161
6162
6163
6164
6165
6166
6167
6168
6169
6170
6171
6172
6173
"\n",
" this.send_message(name, {x: x, y: y, button: event.button,\n",
" step: event.step,\n",
" guiEvent: simpleKeys(event)});\n",
"\n",
" /* This prevents the web browser from automatically changing to\n",
" * the text insertion cursor when the button is pressed. We want\n",
" * to control all of the cursor setting manually through the\n",
" * 'cursor' event from matplotlib */\n",
" event.preventDefault();\n",
" return false;\n",
"}\n",
"\n",
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
" // Handle any extra behaviour associated with a key event\n",
"}\n",
"\n",
"mpl.figure.prototype.key_event = function(event, name) {\n",
"\n",
" // Prevent repeat events\n",
" if (name == 'key_press')\n",
" {\n",
" if (event.which === this._key)\n",
" return;\n",
" else\n",
" this._key = event.which;\n",
" }\n",
" if (name == 'key_release')\n",
" this._key = null;\n",
"\n",
" var value = '';\n",
" if (event.ctrlKey && event.which != 17)\n",
" value += \"ctrl+\";\n",
" if (event.altKey && event.which != 18)\n",
" value += \"alt+\";\n",
" if (event.shiftKey && event.which != 16)\n",
" value += \"shift+\";\n",
"\n",
" value += 'k';\n",
" value += event.which.toString();\n",
"\n",
" this._key_event_extra(event, name);\n",
"\n",
" this.send_message(name, {key: value,\n",
" guiEvent: simpleKeys(event)});\n",
" return false;\n",
"}\n",
"\n",
"mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
" if (name == 'download') {\n",
" this.handle_save(this, null);\n",
" } else {\n",
" this.send_message(\"toolbar_button\", {name: name});\n",
" }\n",
"};\n",
"\n",
"mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
" this.message.textContent = tooltip;\n",
"};\n",
"mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
"\n",
"mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
"\n",
"mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
" // Create a \"websocket\"-like object which calls the given IPython comm\n",
" // object with the appropriate methods. Currently this is a non binary\n",
" // socket, so there is still some room for performance tuning.\n",
" var ws = {};\n",
"\n",
" ws.close = function() {\n",
" comm.close()\n",
" };\n",
" ws.send = function(m) {\n",
" //console.log('sending', m);\n",
" comm.send(m);\n",
" };\n",
" // Register the callback with on_msg.\n",
" comm.on_msg(function(msg) {\n",
" //console.log('receiving', msg['content']['data'], msg);\n",
" // Pass the mpl event to the overriden (by mpl) onmessage function.\n",
" ws.onmessage(msg['content']['data'])\n",
" });\n",
" return ws;\n",
"}\n",
"\n",
"mpl.mpl_figure_comm = function(comm, msg) {\n",
" // This is the function which gets called when the mpl process\n",
" // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
"\n",
" var id = msg.content.data.id;\n",
" // Get hold of the div created by the display call when the Comm\n",
" // socket was opened in Python.\n",
" var element = $(\"#\" + id);\n",
" var ws_proxy = comm_websocket_adapter(comm)\n",
"\n",
" function ondownload(figure, format) {\n",
" window.open(figure.imageObj.src);\n",
" }\n",
"\n",
" var fig = new mpl.figure(id, ws_proxy,\n",
" ondownload,\n",
" element.get(0));\n",
"\n",
" // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
" // web socket which is closed, not our websocket->open comm proxy.\n",
" ws_proxy.onopen();\n",
"\n",
" fig.parent_element = element.get(0);\n",
" fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
" if (!fig.cell_info) {\n",
" console.error(\"Failed to find cell for figure\", id, fig);\n",
" return;\n",
" }\n",
"\n",
" var output_index = fig.cell_info[2]\n",
" var cell = fig.cell_info[0];\n",
"\n",
"};\n",
"\n",
"mpl.figure.prototype.handle_close = function(fig, msg) {\n",
" var width = fig.canvas.width/mpl.ratio\n",
" fig.root.unbind('remove')\n",
"\n",
" // Update the output cell to use the data from the current canvas.\n",
" fig.push_to_output();\n",
" var dataURL = fig.canvas.toDataURL();\n",
" // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
" // the notebook keyboard shortcuts fail.\n",
" IPython.keyboard_manager.enable()\n",
" $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n",
" fig.close_ws(fig, msg);\n",
"}\n",
"\n",
"mpl.figure.prototype.close_ws = function(fig, msg){\n",
" fig.send_message('closing', msg);\n",
" // fig.ws.close()\n",
"}\n",
"\n",
"mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
" // Turn the data on the canvas into data in the output cell.\n",
" var width = this.canvas.width/mpl.ratio\n",
" var dataURL = this.canvas.toDataURL();\n",
" this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
6197
6198
6199
6200
6201
6202
6203
6204
6205
6206
6207
6208
6209
6210
6211
6212
6213
6214
6215
6216
6217
6218
6219
6220
6221
6222
6223
6224
6225
6226
6227
6228
6229
6230
6231
6232
6233
6234
6235
6236
6237
6238
6239
6240
6241
6242
6243
6244
6245
6246
6247
6248
6249
6250
6251
6252
6253
6254
6255
6256
6257
6258
6259
6260
6261
6262
6263
6264
6265
6266
6267
6268
6269
6270
6271
6272
6273
6274
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284
6285
6286
6287
6288
6289
6290
6291
6292
6293
6294
6295
6296
6297
6298
6299
6300
6301
6302
6303
6304
6305
6306
6307
6308
6309
6310
6311
6312
6313
6314
6315
6316
6317
6318
6319
6320
6321
6322
6323
6324
6325
"}\n",
"\n",
"mpl.figure.prototype.updated_canvas_event = function() {\n",
" // Tell IPython that the notebook contents must change.\n",
" IPython.notebook.set_dirty(true);\n",
" this.send_message(\"ack\", {});\n",
" var fig = this;\n",
" // Wait a second, then push the new image to the DOM so\n",
" // that it is saved nicely (might be nice to debounce this).\n",
" setTimeout(function () { fig.push_to_output() }, 1000);\n",
"}\n",
"\n",
"mpl.figure.prototype._init_toolbar = function() {\n",
" var fig = this;\n",
"\n",
" var nav_element = $('<div/>')\n",
" nav_element.attr('style', 'width: 100%');\n",
" this.root.append(nav_element);\n",
"\n",
" // Define a callback function for later on.\n",
" function toolbar_event(event) {\n",
" return fig.toolbar_button_onclick(event['data']);\n",
" }\n",
" function toolbar_mouse_event(event) {\n",
" return fig.toolbar_button_onmouseover(event['data']);\n",
" }\n",
"\n",
" for(var toolbar_ind in mpl.toolbar_items){\n",
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
"\n",
" if (!name) { continue; };\n",
"\n",
" var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
" button.click(method_name, toolbar_event);\n",
" button.mouseover(tooltip, toolbar_mouse_event);\n",
" nav_element.append(button);\n",
" }\n",
"\n",
" // Add the status bar.\n",
" var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
" nav_element.append(status_bar);\n",
" this.message = status_bar[0];\n",
"\n",
" // Add the close button to the window.\n",
" var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
" var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
" button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
" button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
" buttongrp.append(button);\n",
" var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
" titlebar.prepend(buttongrp);\n",
"}\n",
"\n",
"mpl.figure.prototype._root_extra_style = function(el){\n",
" var fig = this\n",
" el.on(\"remove\", function(){\n",
"\tfig.close_ws(fig, {});\n",
" });\n",
"}\n",
"\n",
"mpl.figure.prototype._canvas_extra_style = function(el){\n",
" // this is important to make the div 'focusable\n",
" el.attr('tabindex', 0)\n",
" // reach out to IPython and tell the keyboard manager to turn it's self\n",
" // off when our div gets focus\n",
"\n",
" // location in version 3\n",
" if (IPython.notebook.keyboard_manager) {\n",
" IPython.notebook.keyboard_manager.register_events(el);\n",
" }\n",
" else {\n",
" // location in version 2\n",
" IPython.keyboard_manager.register_events(el);\n",
" }\n",
"\n",
"}\n",
"\n",
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
" var manager = IPython.notebook.keyboard_manager;\n",
" if (!manager)\n",
" manager = IPython.keyboard_manager;\n",
"\n",
" // Check for shift+enter\n",
" if (event.shiftKey && event.which == 13) {\n",
" this.canvas_div.blur();\n",
" // select the cell after this one\n",
" var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
" IPython.notebook.select(index + 1);\n",
" }\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
" fig.ondownload(fig, null);\n",
"}\n",
"\n",
"\n",
"mpl.find_output_cell = function(html_output) {\n",
" // Return the cell and output element which can be found *uniquely* in the notebook.\n",
" // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
" // IPython event is triggered only after the cells have been serialised, which for\n",
" // our purposes (turning an active figure into a static one), is too late.\n",
" var cells = IPython.notebook.get_cells();\n",
" var ncells = cells.length;\n",
" for (var i=0; i<ncells; i++) {\n",
" var cell = cells[i];\n",
" if (cell.cell_type === 'code'){\n",
" for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
" var data = cell.output_area.outputs[j];\n",
" if (data.data) {\n",
" // IPython >= 3 moved mimebundle to data attribute of output\n",
" data = data.data;\n",
" }\n",
" if (data['text/html'] == html_output) {\n",
" return [cell, data, j];\n",
" }\n",
" }\n",
" }\n",
" }\n",
"}\n",
"\n",
"// Register the function which deals with the matplotlib target/channel.\n",
"// The kernel may be null if the page has been refreshed.\n",
"if (IPython.notebook.kernel != null) {\n",
" IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
"}\n"
],
"<IPython.core.display.Javascript object>"
"output_type": "display_data"
"<img src=\"data:image/png;base64,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\" width=\"1200\">"
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"pl.figure(figsize=(12,3))\n",
"pl.plot(dt_test, def_z,'c')\n",
"pl.title('static baseline')\n",
"def_z_med = np.nanmedian(def_z)\n",
"pl.ylim(def_z_med - 200., def_z_med + 200.)\n",
"\n",
"\n",
"pl.plot(dt_test, adj[2],'k')\n",
"pl.title('affine transform')\n",
"pl.ylim(def_z_med - 200., def_z_med + 200.)\n",
"\n",
"\n",
"pl.plot(dt_test, def_z - adj[2],'b')\n",
"pl.title('$\\Delta z$')\n",
"pl.ylim(- 20., 20.)\n",
"\n",
"# re-formats dates for better presentation\n",
"pl.gcf().autofmt_xdate()"
6368
6369
6370
6371
6372
6373
6374
6375
6376
6377
6378
6379
6380
6381
6382
6383
6384
6385
6386
6387
6388
6389
6390
6391
6392
6393
6394
6395
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.13"
}
},
"nbformat": 4,
"nbformat_minor": 0
}