{
“cells”: [
{

“cell_type”: “markdown”, “metadata”: {

“pycharm”: {}

}, “source”: [

“McsPyDataTools Tutorial for CMOS-MEA files<a id=’Top’></a>n”, “=======================n”, “n”, “This tutorial focuses on the HDF5 files generated by the MCS CMOS-MEA software (V. 2.0 and newer) and the usage of the McsPyDataTools toolbox to interact with these files.n”, “n”, “- ### <a href=’#McsPy’>The McsPy module for MCS CMOS-MEA file handling</a>n”, “- ### <a href=’#Mcs-HDF5’>Structure of the CMOS-MEA HDF5 files</a>n”, “n”, “- ### <a href=’#McsData Module’>McsData Classes and Inheritance</a>n”, “——————————————————————————————-n”, ” n”, “- ### <a href=’#Accessing your Data with McsData’>Accessing your Data with McsData</a>n”, ” - #### <a href=’#Req’>Requirements</a>n”, ” - #### <a href=’#naming’>Naming</a>n”, “- ### <a href=’#RawData’>Raw Data Files (.cmcr)</a>n”, ” - #### <a href=’#acquisition’>Acquisition</a>n”, ” - #### <a href=’#channelStream’>ChannelStream</a>n”, ” - #### <a href=’#sensorStream’>SensorStream</a>n”, ” - #### <a href=’#eventStream’>EventStream</a>n”, “- ### <a href=’#processedData’>Processed Data Files (.cmtr)</a>n”, ” - #### <a href=’#filterTool’>Filter Tool</a>n”, ” - #### <a href=’#spikeExplorer’>Spike Explorer</a>n”, ” - #### <a href=’#networkExplorer’>Network Explorer</a>n”, ” - #### <a href=’#spikeSorter’>Spike Sorter</a>n”, “n”, “The McsPy module for MCS CMOS-MEA file handling<a id=’McsPy’></a>n”, “—————————————————n”, “With the `h5py` package, a powerful tool for accessing HDF5 files in python already exists. This toolbox builds upon h5py by subclassing its central `h5py.Group` and `h5py.Dataset` classes as `McsGroup` and `McsDataset` respectively. Thus the McsPy classes feature all attributes and methods you might be used to from working with `h5py`, and simply extend them with MCS specific features. So if you are new to HDF5 in python you can always refer to the h5py documentation and discussions. Likewise, if you have worked with `h5py` previously you will find yourself in an at least familiar environment.n”, “If you prefer to work with h5py functionalities at any point in your analysis, feel free to retrieve the h5py base object from the McsPy object attribute `.h5py_object`n”, “n”, “`python\n", "    h5py_object = self.h5py_object\n", "`n”, “n”, “Structure of the HDF5 MCS-CMOS-MEA file system<a id=’Mcs-HDF5’></a>n”, “—————————————————n”, “n”, “A MCS-CMOS-MEA filesystem typically consists of two seperate files. A MCS CMOS-MEA RawData (RD) HDF5 file and a MCS CMOS-MEA ProcessedData (PD) HDF5 file.n”, “The RD file holds all raw data generated in a CMOS-MEA experiment with the CMOS-MEA-Control software, i.e. mainly different MCS data streams. The corresponding file extension is ‘.cmcr’.n”, “The PD file contains all data generated in post-processing raw data with the CMOS-MEA-Tools software. Each tool in the CMOS-MEA-Tools software (Filter Tool, STA or Network Explorer, Spike Explorer, and Spike Sorter) stores its results and settings in its own subgroup. Furthermore, the CMOS-MEA-Tools make use of the HDF5 capabilities to mount HDF5 files into each other. In that sense, the PD file mounts the RD file into the “Acquisition” subgroup of its own hierarchy tree. Thus, given the link in the PD file correctly points to the RD file, this toolbox provides a set of intuitive access tools for both RD and PD via just the PD file. The corresponding file extension is ‘.cmtr’.n”, “n”, “As the McsPyDataTools toolbox works with the underlying, strictly hierarchical HDF5 structure, the starting point of every data exploration with the McsPyDataTools toolbox is the `McsData` object. As the docstrings of the class already imply, this class was designed to hold the information of a complete CMOS-MEA HDF5 file system.n”, “n”, “`python\n", "    data = McsCMOSMEA.McsData('path to your data')\n", "`n”, “n”, “We highly recommend the supplementary use of the HDF Group’s HDFView software to help visualize and understand the structure of HDF5 files. This makes accessing the data much easier.n”, “n”, “<a href=’#Top’>Back to index</a>n”, “n”, “McsData Classes and Inheritance <a id=’McsData Module’></a>n”, “—————————————————————————————n”, “n”, “Generally, the McsPyDataTools toolbox creates a structure that, upon navigation through the file, reflects the CMOS-MEA HDF5 file structure, e.g. just as the CMOS-MEA HDF5 file system holds raw data in the “Acquisition” subgroup, the McsData object has an attribute `data.Acquisition`. Therefore, you can refer to the following graphical representation of the CMOS-MEA HDF5 file hierarchy for easy navigation through the python objects.n”, “n”, “Note: The subgroups of the root will not be accessible if they do not exist in the loaded CMOS-MEA file system.n”, “n”, “<a id=’file_structure_graphic’></a>n”, “<img src=”./Cmos_Hierarchy_short.png”>n”, “n”, “Upon initialization with the path to your datan”, “n”, “`python\n", "    data = McsCMOSMEA.McsData('path to your data')\n", "`n”, “n”, “member methods of this class will check if the provided file meets the version requirements to be further processed. This is neccessary, as not only the way how MCS programs handle the HDF5 formatted files may change, but the file format itself can undergo changes.n”, “n”, “Afterwards all information about the data stored in the file is retrieved from the HDF5 attributes, decoded and saved in the attribute `.attributes` as a dictionary. The `.attributes` dictionary is created for every McsPy object.n”, “n”, “`python\n", "    data.attributes\n", "`n”, “n”, “An access request on one of the subgroups or datasets (i.e. Acquisition, Filter Tool, STA Explorer, Network Explorer, Spike Explorer, Spike Sorter) readies the respective data:n”, “n”, “`python\n", "    aquisition_data = data.Aquisition\n", "`n”, “n”, “This instantiates a new McsPy object holding the all data about the requested subgroup.n”, “n”, “<a href=’#Top’>Back to index</a>”

]

}, {

“cell_type”: “markdown”, “metadata”: {

“pycharm”: {}

}, “source”: [

“## Accessing your Data with McsData<a id=’Accessing your Data with McsData’></a>n”, “n”, “Now that the general structure of a HDF5 file and the McsPy package with its McsData class is clear, we can walk through some quick and easy examples of how to access and visualize your data.n”, “n”, “n”, “Navigation through McsPy objects implements two central concepts:n”, “1. Groups work like dictionaries or classes.n”, “2. Datasets work like numpy arrays.n”, “n”, “### Naming<a id=’naming’></a>n”, “n”, “Wherever possible, McsPy names instances and attributes as found in the CMOS-MEA HDF5 file system. However, some systematic substitutions in group, dataset, and attribute naming are necessary to ensure python compatibility:n”, “n”, “n”, “| HDF5 MCS-CMOS-MEA | McsPyDataTools toolbox |\n", "|———————–|----------------------------|n”, “| whitespace | _ |\n", "| . | _ |\n", "| , | _ |\n", "| @ | at |\n", "| ( | (character removed) |\n", "| ) | (character removed) |\n", "| : | (character removed) |

]

}, {

“cell_type”: “markdown”, “metadata”: {

“pycharm”: {}

}, “source”: [

“### Requirements <a id=’Req’></a>n”, “n”, “So let’s dig in and get an impression of working with MCS CMOS-MEA data.n”, “n”, “First some modules need to be imported:”

]

}, {

“cell_type”: “code”, “execution_count”: 1, “metadata”: {

“pycharm”: {
“is_executing”: false

}

}, “outputs”: [], “source”: [

“# These are the imports of the McsData modulen”, “import sys, importlib, osn”, “n”, “import McsPyn”, “import McsPy.McsCMOSMEA as McsCMOSMEAn”, “n”, “# matplotlib.pyplot will be used in these examples to generate the plots visualizing the datan”, “import matplotlib.pyplot as pltn”, “from matplotlib.figure import Figuren”, “from matplotlib.widgets import Slider, AxesWidgetn”, “import matplotlib.animation as animationn”, “from IPython.display import HTMLn”, “# These adjustments only need to be made so that the plot gets displayed inside the notebookn”, “%matplotlib inlinen”, “# %config InlineBackend.figure_formats = {‘png’, ‘retina’}n”, “n”, “# numpy is numpy & pandas os pandasn”, “import numpy as npn”, “import pandas as pdn”, “n”, “# bokeh adds more interactivity to the plots within notebooks. Adds toolbar at the top-right corner of the plot.n”, “# Allows zooming, panning and saving of the plotn”, “import bokeh.ion”, “import bokeh.plottingn”, “n”, “# IMPORT cv2 to write a videon”, “from cv2 import VideoWriter, VideoWriter_fourccn”, “n”, “#import widgetsn”, “from ipywidgets import *n”, “from ipywebrtc import VideoStreamn”, “n”, “# autoreload modulesn”, “%load_ext autoreloadn”, “%autoreload 2”

]

}, {

“cell_type”: “markdown”, “metadata”: {

“pycharm”: {}

}, “source”: [

“Then, we need to define where the test data is located. This needs to be adjusted to your local setup! The McsPyDataTools toolbox includes a set of small test files in its tests/TestData folder. An archive with larger test files can be downloaded from the [Multi Channel DataManager](https://www.multichannelsystems.com/software/multi-channel-datamanager) page.”

]

}, {

“cell_type”: “code”, “execution_count”: 2, “metadata”: {

“pycharm”: {
“is_executing”: false

}

}, “outputs”: [], “source”: [

“path2TestData = r’..\McsPyDataTools\McsPy\tests\TestData’ # adjust this!”

]

}, {

“cell_type”: “markdown”, “metadata”: {

“pycharm”: {}

}, “source”: [

“Sometimes running Python applications in the background can interfere with the functionalities of this notebook. To make sure that all plots are created correctly you are best advised to exit any other Python related processes.”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“## Raw Data Files (.cmcr)<a id=’RawData’></a>”

]

}, {

“cell_type”: “markdown”, “metadata”: {

“pycharm”: {}

}, “source”: [

“In order to access a raw data file with extension .cmcr, we need to initialize an instance of the McsData class from the McsData module with the path to the file:”

]

}, {

“cell_type”: “code”, “execution_count”: 3, “metadata”: {

“pycharm”: {
“is_executing”: false

}

}, “outputs”: [], “source”: [

“path2TestDataFile1 = os.path.join(path2TestData, “V200-SensorRoi-3Aux-Dig-Stim2-DiginEvts-5kHz.cmcr”)n”, “data = McsCMOSMEA.McsData(path2TestDataFile1)”

]

}, {

“cell_type”: “markdown”, “metadata”: {

“pycharm”: {}

}, “source”: [

Note: The `McsData` call actually determines the type of MCS HDF5 file system which you have called, and returns an instance of an appropriate class. Do not be confused if the return is not an instance of `McsData` as you have maybe expected.n”, “n”, “To check if we got access to the file we can simply print the object. This gives a rough overview of the contents of the CMOS MEA RawData, or CMOS MEA ProcessedData file. In general, all McsGroup objects provide some information about themselves and a table of all subgroups or datasets (which you can check against the file hierarchy image) upon printing. The table also provides the McsPy access name of all contents.”

]

}, {

“cell_type”: “code”, “execution_count”: 4, “metadata”: {

“pycharm”: {
“is_executing”: false

}

}, “outputs”: [

{

“name”: “stdout”, “output_type”: “stream”, “text”: [

“<McsCMOSMEAData instance at 0x246d6401ef0>n”, “n”, “This object represents the Mcs CMOS MEA file:n”, “Filename: V200-SensorRoi-3Aux-Dig-Stim2-DiginEvts-5kHz.cmcrn”, “n”, “Date Program Version n”, “——————- ————————– ———-n”, “10.10.2017 10:08:46 CMOS-MEA-Control 2.0.0.0 n”, “n”, “n”, “Content:n”, “n”, “| Mcs Type | HDF5 name | McsPy name |\n", "===============================================================================\n", "Groups:\n", "| Acquisition | Acquisition | Acquisition |n”, “——————————————————————————-n”, “Datasets:n”, ” Nonen”, “n”

]

}

], “source”: [

“print(data)”

]

}, {

“cell_type”: “markdown”, “metadata”: {

“pycharm”: {}

}, “source”: [

“The root object holds information about the Date of the recording, the Program which was used as well as its Version.n”, “n”, “Feel free to browse the `self.attributes` on any instance of `McsGroup` or `McsDataset` for more detailed information. And finally, you can call `McsGroup.tree(self)` for an ‘indent-tree’ of the current HDF5 Group and all its descendants. Feel free to check the output against the file hierarchy image <a href=’#file_structure_graphic’>above</a>.n”, “n”, “Note: As file trees may become very large very quickly, you are advised to print the instance rather than the tree once you are familiar with the MCS HDF5 file system.”

]

}, {

“cell_type”: “code”, “execution_count”: 5, “metadata”: {

“pycharm”: {
“is_executing”: false

}

}, “outputs”: [

{

“name”: “stdout”, “output_type”: “stream”, “text”: [

“/n”, ” Acquisition n”, ” Analog_Data n”, ” ChannelData_1 n”, ” ChannelMeta n”, ” Digital_Data n”, ” ChannelData_1 n”, ” ChannelMeta n”, ” Digital_Data_Events n”, ” EventData n”, ” EventMeta n”, ” STG_Sideband_Events n”, ” EventData n”, ” EventMeta n”, ” StimulationSites n”, ” STG_Waveform n”, ” ChannelData_1 n”, ” ChannelMeta n”, ” StimulationSites n”, ” Sensor_Data n”, ” SensorData_1_1 n”, ” SensorMeta n”, “n”

]

}

], “source”: [

“print(data.tree())”

]

}, {

“cell_type”: “markdown”, “metadata”: {

“pycharm”: {}

}, “source”: [

“<a href=’#Top’>Back to index</a>”

]

}, {

“cell_type”: “markdown”, “metadata”: {

“pycharm”: {}

}, “source”: [

“### Accessing Acquisition Data<a id=’acquisition’></a>n”, “n”, “From the table we see that we can access the RawData, which is stored in the ‘Acquisition’ group of the MCS HDF5 file by simply calling the acquisition attribute on our `data` instance. Let’s go ahead and get a glimpse of the raw data streams in the file.”

]

}, {

“cell_type”: “code”, “execution_count”: 6, “metadata”: {

“pycharm”: {
“is_executing”: false

}

}, “outputs”: [

{

“name”: “stdout”, “output_type”: “stream”, “text”: [

“——————————————————————————-n”, “Parent Group: <class ‘McsPyDataTools.McsPy.McsCMOSMEA.Acquisition’ object at 0x246d64201d0>n”, “n”, “——————————————————————————-n”, “n”, “n”, “| Subtype | HDF5 name | McsPy name |\n", "===============================================================================\n", "ChannelStream\n", "| Auxiliary | Analog Data | Analog_Data |\n", "| Digital | Digital Data | Digital_Data |\n", "| StgWaveform | STG Waveform | STG_Waveform |\n", "-------------------------------------------------------------------------------\n", "EventStream\n", "| DigitalPort | Digital Data Events | Digital_Data_Events |\n", "| StgSideband | STG Sideband Events | STG_Sideband_Events |\n", "-------------------------------------------------------------------------------\n", "SensorStream\n", "| CMosSensor | Sensor Data | Sensor_Data |n”, “——————————————————————————-n”, “n”

]

}

], “source”: [

“print(data.Acquisition)”

]

}, {

“cell_type”: “markdown”, “metadata”: {

“pycharm”: {}

}, “source”: [

“#### Channel Streams<a id=’channelStream’></a>n”, “We can navigate further to start and work with some channel data.”

]

}, {

“cell_type”: “code”, “execution_count”: 7, “metadata”: {

“pycharm”: {
“is_executing”: false

}

}, “outputs”: [

{

“name”: “stdout”, “output_type”: “stream”, “text”: [

“——————————————————————————-n”, “Parent Group: <class ‘McsPyDataTools.McsPy.McsCMOSMEA.McsChannelStream’ object at 0x246d64205c0>n”, “——————————————————————————-n”, “n”, “n”, “| Mcs Type | HDF5 name | McsPy name |\n", "===============================================================================\n", "Groups:\n", " None\n", "-------------------------------------------------------------------------------\n", "Datasets:\n", "| ChannelData | ChannelData 1 | ChannelData_1 |\n", "| ChannelMeta | ChannelMeta | ChannelMeta |\n", "| Sites | StimulationSites | StimulationSites |n”, “n”

]

}

], “source”: [

“print(data.Acquisition.STG_Waveform)”

]

}, {

“cell_type”: “markdown”, “metadata”: {

“pycharm”: {}

}, “source”: [

“The Channel Stream ‘Digital Data’ object contains the two data sets `ChannelData_1` and `ChannelMeta`. The objects we obtain upon access are not arrays, but subclasses of `h5py.Dataset`. However, ```h5py.Dataset```s can be accessed, sliced and manipulated just as numpy arrays. So ```h5py.Dataset```s have a shape, a size, and a data type. For more information on working with Datasets please refer to the h5py <a href=’https://readthedocs.org/projects/h5py/’>documentation</a>.”

]

}, {

“cell_type”: “code”, “execution_count”: 8, “metadata”: {

“pycharm”: {
“is_executing”: false

}

}, “outputs”: [

{

“name”: “stdout”, “output_type”: “stream”, “text”: [

“Shape: (1, 10000)n”, “Size: 10000n”, “Type: int32n”

]

}

], “source”: [

“print(‘Shape:’.ljust(10)+str(data.Acquisition.STG_Waveform.ChannelData_1.shape))n”, “print(‘Size:’.ljust(10)+str(data.Acquisition.STG_Waveform.ChannelData_1.size))n”, “print(‘Type:’.ljust(10)+str(data.Acquisition.STG_Waveform.ChannelData_1.dtype))”

]

}, {

“cell_type”: “markdown”, “metadata”: {

“pycharm”: {}

}, “source”: [

“Now, let’s go ahead and visual the signal of a channel we recorded:”

]

}, {

“cell_type”: “code”, “execution_count”: 9, “metadata”: {

“pycharm”: {
“is_executing”: false

}

}, “outputs”: [

{
“data”: {
“text/plain”: [
“Text(0.5, 1.0, ‘Signal recorded by Channel 2’)”

]

}, “execution_count”: 9, “metadata”: {}, “output_type”: “execute_result”

}, {

“data”: {

“image/png”: “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”, “text/plain”: [

“<Figure size 980.64x472.32 with 1 Axes>”

]

}, “metadata”: {

“needs_background”: “light”

}, “output_type”: “display_data”

}

], “source”: [

“channeldata_1 = data.Acquisition.STG_Waveform.ChannelData_1n”, “exponent = data.Acquisition.STG_Waveform.ChannelData_1.Meta[‘Exponent’][0]n”, “channel_id = data.Acquisition.STG_Waveform.ChannelData_1.Meta[‘ChannelID’][0]n”, “n”, “plt.figure(figsize=(0.681*20, 0.328*20))n”, “plt.plot(channeldata_1[0,2000:3000])n”, “plt.ylabel(‘Voltage [Ve’+str(exponent)+’]’)n”, “plt.xlabel(‘Time in timesteps’)n”, “plt.title(‘Signal recorded by Channel ‘+str(channel_id), fontweight=’bold’)”

]

}, {

“cell_type”: “markdown”, “metadata”: {

“pycharm”: {}

}, “source”: [

“#### Sensor Streams<a id=’sensorStream’></a>n”, “Alternatively we can investigate a Sensor Stream.”

]

}, {

“cell_type”: “code”, “execution_count”: 10, “metadata”: {

“pycharm”: {
“is_executing”: false

}

}, “outputs”: [

{

“name”: “stdout”, “output_type”: “stream”, “text”: [

“——————————————————————————-n”, “Parent Group: <class ‘McsPyDataTools.McsPy.McsCMOSMEA.McsSensorStream’ object at 0x246d6507400>n”, “——————————————————————————-n”, “n”, “n”, “| Mcs Type | HDF5 name | McsPy name |\n", "===============================================================================\n", "Groups:\n", " None\n", "-------------------------------------------------------------------------------\n", "Datasets:\n", "| SensorData | SensorData 1 1 | SensorData_1_1 |\n", "| SensorMeta | SensorMeta | SensorMeta |n”, “n”

]

}

], “source”: [

“print(data.Acquisition.Sensor_Data)”

]

}, {

“cell_type”: “markdown”, “metadata”: {

“pycharm”: {}

}, “source”: [

“To visualize the sensor data as greyscale images, we can create an animation in matplotlib and play it as a HTML video. You’ll need to have FFmpeg available for this to work.”

]

}, {

“cell_type”: “code”, “execution_count”: null, “metadata”: {

“pycharm”: {
“is_executing”: false

}

}, “outputs”: [], “source”: [

“images = data.Acquisition.Sensor_Data.SensorData_1_1n”, “n”, “fig = plt.figure()n”, “n”, “im = plt.imshow(images[0], animated=True, cmap=’gray’)n”, “plt.title(‘Sensor Data 1 1’)n”, “plt.box(False)n”, “n”, “def updatefig(i):n”, ” global imagesn”, ” im.set_array(images[i])n”, ” return im,n”, “n”, “ani = animation.FuncAnimation(fig, updatefig, interval=50, blit=True)n”, “n”, “plt.close(ani._fig)n”, “n”, “# Call function to display the animationn”, “HTML(ani.to_html5_video())”

]

}, {

“cell_type”: “markdown”, “metadata”: {

“pycharm”: {}

}, “source”: [

“We can also take the sensor data and create a simple slider to go through the blocks of sensor data in time:”

]

}, {

“cell_type”: “code”, “execution_count”: 13, “metadata”: {

“pycharm”: {
“is_executing”: false

}

}, “outputs”: [

{
“data”: {
“application/javascript”: [
“/* Put everything inside the global mpl namespace /n”, “window.mpl = {};n”, “n”, “n”, “mpl.get_websocket_type = function() {n”, ” if (typeof(WebSocket) !== ‘undefined’) {n”, ” return WebSocket;n”, ” } else if (typeof(MozWebSocket) !== ‘undefined’) {n”, ” return MozWebSocket;n”, ” } else {n”, ” alert(‘Your browser does not have WebSocket support. ‘ +n”, ” ‘Please try Chrome, Safari or Firefox ≥ 6. ‘ +n”, ” ‘Firefox 4 and 5 are also supported but you ‘ +n”, ” ‘have to enable WebSockets in about:config.’);n”, ” };n”, “}n”, “n”, “mpl.figure = function(figure_id, websocket, ondownload, parent_element) {n”, ” this.id = figure_id;n”, “n”, ” this.ws = websocket;n”, “n”, ” this.supports_binary = (this.ws.binaryType != undefined);n”, “n”, ” if (!this.supports_binary) {n”, ” var warnings = document.getElementById(“mpl-warnings”);n”, ” if (warnings) {n”, ” warnings.style.display = ‘block’;n”, ” warnings.textContent = (n”, ” “This browser does not support binary websocket messages. ” +n”, ” “Performance may be slow.”);n”, ” }n”, ” }n”, “n”, ” this.imageObj = new Image();n”, “n”, ” this.context = undefined;n”, ” this.message = undefined;n”, ” this.canvas = undefined;n”, ” this.rubberband_canvas = undefined;n”, ” this.rubberband_context = undefined;n”, ” this.format_dropdown = undefined;n”, “n”, ” this.image_mode = ‘full’;n”, “n”, ” this.root = $(‘<div/>’);n”, ” this._root_extra_style(this.root)n”, ” this.root.attr(‘style’, ‘display: inline-block’);n”, “n”, ” $(parent_element).append(this.root);n”, “n”, ” this._init_header(this);n”, ” this._init_canvas(this);n”, ” this._init_toolbar(this);n”, “n”, ” var fig = this;n”, “n”, ” this.waiting = false;n”, “n”, ” this.ws.onopen = function () {n”, ” fig.send_message(“supports_binary”, {value: fig.supports_binary});n”, ” fig.send_message(“send_image_mode”, {});n”, ” if (mpl.ratio != 1) {n”, ” fig.send_message(“set_dpi_ratio”, {‘dpi_ratio’: mpl.ratio});n”, ” }n”, ” fig.send_message(“refresh”, {});n”, ” }n”, “n”, ” this.imageObj.onload = function() {n”, ” if (fig.image_mode == ‘full’) {n”, ” // Full images could contain transparency (where diff imagesn”, ” // almost always do), so we need to clear the canvas so thatn”, ” // there is no ghosting.n”, ” fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);n”, ” }n”, ” fig.context.drawImage(fig.imageObj, 0, 0);n”, ” };n”, “n”, ” this.imageObj.onunload = function() {n”, ” fig.ws.close();n”, ” }n”, “n”, ” this.ws.onmessage = this._make_on_message_function(this);n”, “n”, ” this.ondownload = ondownload;n”, “}n”, “n”, “mpl.figure.prototype._init_header = function() {n”, ” var titlebar = $(n”, ” ‘<div class=”ui-dialog-titlebar ui-widget-header ui-corner-all ‘ +n”, ” ‘ui-helper-clearfix”/>’);n”, ” var titletext = $(n”, ” ‘<div class=”ui-dialog-title” style=”width: 100%; ‘ +n”, ” ‘text-align: center; padding: 3px;”/>’);n”, ” titlebar.append(titletext)n”, ” this.root.append(titlebar);n”, ” this.header = titletext[0];n”, “}n”, “n”, “n”, “n”, “mpl.figure.prototype._canvas_extra_style = function(canvas_div) {n”, “n”, “}n”, “n”, “n”, “mpl.figure.prototype._root_extra_style = function(canvas_div) {n”, “n”, “}n”, “n”, “mpl.figure.prototype._init_canvas = function() {n”, ” var fig = this;n”, “n”, ” var canvas_div = $(‘<div/>’);n”, “n”, ” canvas_div.attr(‘style’, ‘position: relative; clear: both; outline: 0’);n”, “n”, ” function canvas_keyboard_event(event) {n”, ” return fig.key_event(event, event[‘data’]);n”, ” }n”, “n”, ” canvas_div.keydown(‘key_press’, canvas_keyboard_event);n”, ” canvas_div.keyup(‘key_release’, canvas_keyboard_event);n”, ” this.canvas_div = canvas_divn”, ” this._canvas_extra_style(canvas_div)n”, ” this.root.append(canvas_div);n”, “n”, ” var canvas = $(‘<canvas/>’);n”, ” canvas.addClass(‘mpl-canvas’);n”, ” canvas.attr(‘style’, “left: 0; top: 0; z-index: 0; outline: 0”)n”, “n”, ” this.canvas = canvas[0];n”, ” this.context = canvas[0].getContext(“2d”);n”, “n”, ” var backingStore = this.context.backingStorePixelRatio ||n”, “tthis.context.webkitBackingStorePixelRatio ||n”, “tthis.context.mozBackingStorePixelRatio ||n”, “tthis.context.msBackingStorePixelRatio ||n”, “tthis.context.oBackingStorePixelRatio ||n”, “tthis.context.backingStorePixelRatio || 1;n”, “n”, ” mpl.ratio = (window.devicePixelRatio || 1) / backingStore;n”, “n”, ” var rubberband = $(‘<canvas/>’);n”, ” rubberband.attr(‘style’, “position: absolute; left: 0; top: 0; z-index: 1;”)n”, “n”, ” var pass_mouse_events = true;n”, “n”, ” canvas_div.resizable({n”, ” start: function(event, ui) {n”, ” pass_mouse_events = false;n”, ” },n”, ” resize: function(event, ui) {n”, ” fig.request_resize(ui.size.width, ui.size.height);n”, ” },n”, ” stop: function(event, ui) {n”, ” pass_mouse_events = true;n”, ” fig.request_resize(ui.size.width, ui.size.height);n”, ” },n”, ” });n”, “n”, ” function mouse_event_fn(event) {n”, ” if (pass_mouse_events)n”, ” return fig.mouse_event(event, event[‘data’]);n”, ” }n”, “n”, ” rubberband.mousedown(‘button_press’, mouse_event_fn);n”, ” rubberband.mouseup(‘button_release’, mouse_event_fn);n”, ” // Throttle sequential mouse events to 1 every 20ms.n”, ” rubberband.mousemove(‘motion_notify’, mouse_event_fn);n”, “n”, ” rubberband.mouseenter(‘figure_enter’, mouse_event_fn);n”, ” rubberband.mouseleave(‘figure_leave’, mouse_event_fn);n”, “n”, ” canvas_div.on(“wheel”, function (event) {n”, ” event = event.originalEvent;n”, ” event[‘data’] = ‘scroll’n”, ” if (event.deltaY < 0) {n”, ” event.step = 1;n”, ” } else {n”, ” event.step = -1;n”, ” }n”, ” mouse_event_fn(event);n”, ” });n”, “n”, ” canvas_div.append(canvas);n”, ” canvas_div.append(rubberband);n”, “n”, ” this.rubberband = rubberband;n”, ” this.rubberband_canvas = rubberband[0];n”, ” this.rubberband_context = rubberband[0].getContext(“2d”);n”, ” this.rubberband_context.strokeStyle = “#000000”;n”, “n”, ” this._resize_canvas = function(width, height) {n”, ” // Keep the size of the canvas, canvas container, and rubber bandn”, ” // canvas in synch.n”, ” canvas_div.css(‘width’, width)n”, ” canvas_div.css(‘height’, height)n”, “n”, ” canvas.attr(‘width’, width * mpl.ratio);n”, ” canvas.attr(‘height’, height * mpl.ratio);n”, ” canvas.attr(‘style’, ‘width: ‘ + width + ‘px; height: ‘ + height + ‘px;’);n”, “n”, ” rubberband.attr(‘width’, width);n”, ” rubberband.attr(‘height’, height);n”, ” }n”, “n”, ” // Set the figure to an initial 600x600px, this will subsequently be updatedn”, ” // upon first draw.n”, ” this._resize_canvas(600, 600);n”, “n”, ” // Disable right mouse context menu.n”, ” $(this.rubberband_canvas).bind(“contextmenu”,function(e){n”, ” return false;n”, ” });n”, “n”, ” function set_focus () {n”, ” canvas.focus();n”, ” canvas_div.focus();n”, ” }n”, “n”, ” window.setTimeout(set_focus, 100);n”, “}n”, “n”, “mpl.figure.prototype._init_toolbar = function() {n”, ” var fig = this;n”, “n”, ” var nav_element = $(‘<div/>’);n”, ” nav_element.attr(‘style’, ‘width: 100%’);n”, ” this.root.append(nav_element);n”, “n”, ” // Define a callback function for later on.n”, ” function toolbar_event(event) {n”, ” return fig.toolbar_button_onclick(event[‘data’]);n”, ” }n”, ” function toolbar_mouse_event(event) {n”, ” return fig.toolbar_button_onmouseover(event[‘data’]);n”, ” }n”, “n”, ” for(var toolbar_ind in mpl.toolbar_items) {n”, ” var name = mpl.toolbar_items[toolbar_ind][0];n”, ” var tooltip = mpl.toolbar_items[toolbar_ind][1];n”, ” var image = mpl.toolbar_items[toolbar_ind][2];n”, ” var method_name = mpl.toolbar_items[toolbar_ind][3];n”, “n”, ” if (!name) {n”, ” // put a spacer in here.n”, ” continue;n”, ” }n”, ” var button = $(‘<button/>’);n”, ” button.addClass(‘ui-button ui-widget ui-state-default ui-corner-all ‘ +n”, ” ‘ui-button-icon-only’);n”, ” button.attr(‘role’, ‘button’);n”, ” button.attr(‘aria-disabled’, ‘false’);n”, ” button.click(method_name, toolbar_event);n”, ” button.mouseover(tooltip, toolbar_mouse_event);n”, “n”, ” var icon_img = $(‘<span/>’);n”, ” icon_img.addClass(‘ui-button-icon-primary ui-icon’);n”, ” icon_img.addClass(image);n”, ” icon_img.addClass(‘ui-corner-all’);n”, “n”, ” var tooltip_span = $(‘<span/>’);n”, ” tooltip_span.addClass(‘ui-button-text’);n”, ” tooltip_span.html(tooltip);n”, “n”, ” button.append(icon_img);n”, ” button.append(tooltip_span);n”, “n”, ” nav_element.append(button);n”, ” }n”, “n”, ” var fmt_picker_span = $(‘<span/>’);n”, “n”, ” var fmt_picker = $(‘<select/>’);n”, ” fmt_picker.addClass(‘mpl-toolbar-option ui-widget ui-widget-content’);n”, ” fmt_picker_span.append(fmt_picker);n”, ” nav_element.append(fmt_picker_span);n”, ” this.format_dropdown = fmt_picker[0];n”, “n”, ” for (var ind in mpl.extensions) {n”, ” var fmt = mpl.extensions[ind];n”, ” var option = $(n”, ” ‘<option/>’, {selected: fmt === mpl.default_extension}).html(fmt);n”, ” fmt_picker.append(option);n”, ” }n”, “n”, ” // Add hover states to the ui-buttonsn”, ” $( “.ui-button” ).hover(n”, ” function() { $(this).addClass(“ui-state-hover”);},n”, ” function() { $(this).removeClass(“ui-state-hover”);}n”, ” );n”, “n”, ” var status_bar = $(‘<span class=”mpl-message”/>’);n”, ” nav_element.append(status_bar);n”, ” this.message = status_bar[0];n”, “}n”, “n”, “mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {n”, ” // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,n”, ” // which will in turn request a refresh of the image.n”, ” this.send_message(‘resize’, {‘width’: x_pixels, ‘height’: y_pixels});n”, “}n”, “n”, “mpl.figure.prototype.send_message = function(type, properties) {n”, ” properties[‘type’] = type;n”, ” properties[‘figure_id’] = this.id;n”, ” this.ws.send(JSON.stringify(properties));n”, “}n”, “n”, “mpl.figure.prototype.send_draw_message = function() {n”, ” if (!this.waiting) {n”, ” this.waiting = true;n”, ” this.ws.send(JSON.stringify({type: “draw”, figure_id: this.id}));n”, ” }n”, “}n”, “n”, “n”, “mpl.figure.prototype.handle_save = function(fig, msg) {n”, ” var format_dropdown = fig.format_dropdown;n”, ” var format = format_dropdown.options[format_dropdown.selectedIndex].value;n”, ” fig.ondownload(fig, format);n”, “}n”, “n”, “n”, “mpl.figure.prototype.handle_resize = function(fig, msg) {n”, ” var size = msg[‘size’];n”, ” if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {n”, ” fig._resize_canvas(size[0], size[1]);n”, ” fig.send_message(“refresh”, {});n”, ” };n”, “}n”, “n”, “mpl.figure.prototype.handle_rubberband = function(fig, msg) {n”, ” var x0 = msg[‘x0’] / mpl.ratio;n”, ” var y0 = (fig.canvas.height - msg[‘y0’]) / mpl.ratio;n”, ” var x1 = msg[‘x1’] / mpl.ratio;n”, ” var y1 = (fig.canvas.height - msg[‘y1’]) / mpl.ratio;n”, ” x0 = Math.floor(x0) + 0.5;n”, ” y0 = Math.floor(y0) + 0.5;n”, ” x1 = Math.floor(x1) + 0.5;n”, ” y1 = Math.floor(y1) + 0.5;n”, ” var min_x = Math.min(x0, x1);n”, ” var min_y = Math.min(y0, y1);n”, ” var width = Math.abs(x1 - x0);n”, ” var height = Math.abs(y1 - y0);n”, “n”, ” fig.rubberband_context.clearRect(n”, ” 0, 0, fig.canvas.width / mpl.ratio, fig.canvas.height / mpl.ratio);n”, “n”, ” fig.rubberband_context.strokeRect(min_x, min_y, width, height);n”, “}n”, “n”, “mpl.figure.prototype.handle_figure_label = function(fig, msg) {n”, ” // Updates the figure title.n”, ” fig.header.textContent = msg[‘label’];n”, “}n”, “n”, “mpl.figure.prototype.handle_cursor = function(fig, msg) {n”, ” var cursor = msg[‘cursor’];n”, ” switch(cursor)n”, ” {n”, ” case 0:n”, ” cursor = ‘pointer’;n”, ” break;n”, ” case 1:n”, ” cursor = ‘default’;n”, ” break;n”, ” case 2:n”, ” cursor = ‘crosshair’;n”, ” break;n”, ” case 3:n”, ” cursor = ‘move’;n”, ” break;n”, ” }n”, ” fig.rubberband_canvas.style.cursor = cursor;n”, “}n”, “n”, “mpl.figure.prototype.handle_message = function(fig, msg) {n”, ” fig.message.textContent = msg[‘message’];n”, “}n”, “n”, “mpl.figure.prototype.handle_draw = function(fig, msg) {n”, ” // Request the server to send over a new figure.n”, ” fig.send_draw_message();n”, “}n”, “n”, “mpl.figure.prototype.handle_image_mode = function(fig, msg) {n”, ” fig.image_mode = msg[‘mode’];n”, “}n”, “n”, “mpl.figure.prototype.updated_canvas_event = function() {n”, ” // Called whenever the canvas gets updated.n”, ” this.send_message(“ack”, {});n”, “}n”, “n”, “// A function to construct a web socket function for onmessage handling.n”, “// Called in the figure constructor.n”, “mpl.figure.prototype._make_on_message_function = function(fig) {n”, ” return function socket_on_message(evt) {n”, ” if (evt.data instanceof Blob) {n”, ” / FIXME: We get “Resource interpreted as Image butn”, ” * transferred with MIME type text/plain:” errors onn”, ” * Chrome. But how to set the MIME type? It doesn’t seemn”, ” * to be part of the websocket stream /n”, ” evt.data.type = “image/png”;n”, “n”, ” / Free the memory for the previous frames /n”, ” if (fig.imageObj.src) {n”, ” (window.URL || window.webkitURL).revokeObjectURL(n”, ” fig.imageObj.src);n”, ” }n”, “n”, ” fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(n”, ” evt.data);n”, ” fig.updated_canvas_event();n”, ” fig.waiting = false;n”, ” return;n”, ” }n”, ” else if (typeof evt.data === ‘string’ && evt.data.slice(0, 21) == “data:image/png;base64”) {n”, ” fig.imageObj.src = evt.data;n”, ” fig.updated_canvas_event();n”, ” fig.waiting = false;n”, ” return;n”, ” }n”, “n”, ” var msg = JSON.parse(evt.data);n”, ” var msg_type = msg[‘type’];n”, “n”, ” // Call the “handle_{type}” callback, which takesn”, ” // the figure and JSON message as its only arguments.n”, ” try {n”, ” var callback = fig[“handle_” + msg_type];n”, ” } catch (e) {n”, ” console.log(“No handler for the ‘” + msg_type + “’ message type: “, msg);n”, ” return;n”, ” }n”, “n”, ” if (callback) {n”, ” try {n”, ” // console.log(“Handling ‘” + msg_type + “’ message: “, msg);n”, ” callback(fig, msg);n”, ” } catch (e) {n”, ” console.log(“Exception inside the ‘handler_” + msg_type + “’ callback:”, e, e.stack, msg);n”, ” }n”, ” }n”, ” };n”, “}n”, “n”, “// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvasn”, “mpl.findpos = function(e) {n”, ” //this section is from http://www.quirksmode.org/js/events_properties.htmln”, ” 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 bugn”, ” targ = targ.parentNode;n”, “n”, ” // jQuery normalizes the pageX and pageYn”, ” // pageX,Y are the mouse positions relative to the documentn”, ” // offset() returns the position of the element relative to the documentn”, ” 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 keysn”, ” * we need this to avoid circular referencesn”, ” * http://stackoverflow.com/a/24161582/3208463n”, ” /n”, “function simpleKeys (original) {n”, ” return Object.keys(original).reduce(function (obj, key) {n”, ” if (typeof original[key] !== ‘object’)n”, ” obj[key] = original[key]n”, ” return obj;n”, ” }, {});n”, “}n”, “n”, “mpl.figure.prototype.mouse_event = function(event, name) {n”, ” var canvas_pos = mpl.findpos(event)n”, “n”, ” if (name === ‘button_press’)n”, ” {n”, ” this.canvas.focus();n”, ” this.canvas_div.focus();n”, ” }n”, “n”, ” var x = canvas_pos.x * mpl.ratio;n”, ” var y = canvas_pos.y * mpl.ratio;n”, “n”, ” this.send_message(name, {x: x, y: y, button: event.button,n”, ” step: event.step,n”, ” guiEvent: simpleKeys(event)});n”, “n”, ” / This prevents the web browser from automatically changing ton”, ” * the text insertion cursor when the button is pressed. We wantn”, ” * to control all of the cursor setting manually through then”, ” * ‘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 eventn”, “}n”, “n”, “mpl.figure.prototype.key_event = function(event, name) {n”, “n”, ” // Prevent repeat eventsn”, ” if (name == ‘key_press’)n”, ” {n”, ” if (event.which === this._key)n”, ” return;n”, ” elsen”, ” 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 commn”, ” // object with the appropriate methods. Currently this is a non binaryn”, ” // 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 overridden (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 processn”, ” // 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 Commn”, ” // 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 realn”, ” // 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.ration”, ” 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.ration”, ” var dataURL = this.canvas.toDataURL();n”, ” this.cell_info[1][‘text/html’] = ‘<img src=”’ + dataURL + ‘” width=”’ + width + ‘”>’;n”, “}n”, “n”, “mpl.figure.prototype.updated_canvas_event = function() {n”, ” // Tell IPython that the notebook contents must change.n”, ” IPython.notebook.set_dirty(true);n”, ” this.send_message(“ack”, {});n”, ” var fig = this;n”, ” // Wait a second, then push the new image to the DOM son”, ” // 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 = thisn”, ” 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 ‘focusablen”, ” el.attr(‘tabindex’, 0)n”, ” // reach out to IPython and tell the keyboard manager to turn it’s selfn”, ” // off when our div gets focusn”, “n”, ” // location in version 3n”, ” if (IPython.notebook.keyboard_manager) {n”, ” IPython.notebook.keyboard_manager.register_events(el);n”, ” }n”, ” else {n”, ” // location in version 2n”, ” 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+entern”, ” if (event.shiftKey && event.which == 13) {n”, ” this.canvas_div.blur();n”, ” event.shiftKey = false;n”, ” // Send a “J” for go to next celln”, ” 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 forn”, ” // 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 outputn”, ” data = data.data;n”, ” }n”, ” if (data[‘text/html’] == html_output) {n”, ” return [cell, data, j];n”, ” }n”, ” }n”, ” }n”, ” }n”, “}n”, “n”, “// Register the function which deals with the matplotlib target/channel.n”, “// The kernel may be null if the page has been refreshed.n”, “if (IPython.notebook.kernel != null) {n”, ” IPython.notebook.kernel.comm_manager.register_target(‘matplotlib’, mpl.mpl_figure_comm);n”, “}n”

], “text/plain”: [

“<IPython.core.display.Javascript object>”

]

}, “metadata”: {}, “output_type”: “display_data”

}, {

“data”: {
“text/html”: [
“<img src=”data:image/png;base64,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” width=”490”>”

], “text/plain”: [

“<IPython.core.display.HTML object>”

]

}, “metadata”: {}, “output_type”: “display_data”

}, {

“data”: {
“application/vnd.jupyter.widget-view+json”: {
“model_id”: “cb2c84c7925f4ca6aaf2676706b6ec24”, “version_major”: 2, “version_minor”: 0

}, “text/plain”: [

“interactive(children=(IntSlider(value=0, description=’Frame’, max=9999), Output()), _dom_classes=(‘widget-inte…”

]

}, “metadata”: {}, “output_type”: “display_data”

}

], “source”: [

“%matplotlib notebookn”, “n”, “images = data.Acquisition.Sensor_Data.SensorData_1_1n”, “num_of_images = images.shape[0]-1n”, “n”, “fig = plt.figure(figsize=(0.681*10, 0.328*10))n”, “ax = fig.add_subplot(1,1,1)n”, “plt.title(‘Sensor Data 1 1’)n”, “plt.box(False)n”, “fig.show()n”, “#print(images.shape)n”, “def updateFrame(Frame):n”, ” ax.imshow(images[Frame,::], cmap=”gray”)n”, ” n”, “_ = interact(updateFrame, Frame=widgets.IntSlider(min=0,max=num_of_images,step=1,value=0))”

]

}, {

“cell_type”: “markdown”, “metadata”: {

“pycharm”: {}

}, “source”: [

“<a href=’#Top’>Back to index</a>”

]

}, {

“cell_type”: “markdown”, “metadata”: {

“pycharm”: {}

}, “source”: [

“#### EventStream<a id=’eventStream’></a>n”, “n”, “EventStreams can be a wide array of events predefined by the user and stored in this stream. From the beginning/end or the duration of a treatment to periodically recurring stimuli this can be everything.”

]

}, {

“cell_type”: “markdown”, “metadata”: {

“pycharm”: {}

}, “source”: [

“<a href=’#Top’>Back to index</a>”

]

}, {

“cell_type”: “code”, “execution_count”: 14, “metadata”: {

“pycharm”: {
“is_executing”: false

}

}, “outputs”: [

{

“name”: “stdout”, “output_type”: “stream”, “text”: [

“——————————————————————————-n”, “Parent Group: <class ‘McsPyDataTools.McsPy.McsCMOSMEA.McsEventStream’ object at 0x246d9737ef0>n”, “——————————————————————————-n”, “n”, “n”, “| Mcs Type | HDF5 name | McsPy name |\n", "===============================================================================\n", "Groups:\n", " None\n", "-------------------------------------------------------------------------------\n", "Datasets:\n", "| EventData | EventData | EventData |\n", "| EventMeta | EventMeta | EventMeta |\n", "| Sites | StimulationSites | StimulationSites |n”, “n”

]

}

], “source”: [

“print(data.Acquisition.STG_Sideband_Events)”

]

}, {

“cell_type”: “markdown”, “metadata”: {

“pycharm”: {}

}, “source”: [

“We prepare the data:”

]

}, {

“cell_type”: “code”, “execution_count”: 16, “metadata”: {

“pycharm”: {
“is_executing”: false

}

}, “outputs”: [], “source”: [

“# GET pandas DataFrame FROM MCSHDF5 FORMATn”, “eventData = data.Acquisition.STG_Sideband_Events.EventData.to_pdDataFrame().iloc[:50,:]n”, “eventData = eventData.sort_values(by=’EventID’)n”, “n”, “# EXTRACT EVENT POSITION IN TIMEn”, “eventPosition = eventData.pivot(columns=’EventID’, values=’TimeStamp’)n”, “eventPosition.fillna(method=’ffill’, axis=’index’, inplace=True)n”, “eventPosition.fillna(method=’bfill’, axis=’index’, inplace=True)n”, “n”, “# EXTRACT EVENT DURATIONn”, “eventDuration = eventData.pivot(columns=’EventID’, values=’Duration’)n”, “eventDuration.fillna(method=’ffill’, axis=’index’, inplace=True)n”, “eventDuration.fillna(method=’bfill’, axis=’index’, inplace=True)n”, “eventDuration[eventDuration == 0] += 0.2 # add minimum event durationn”, “n”, “# EXTRACT EVENT DESCRIPTIONn”, “eventMeta = data.Acquisition.STG_Sideband_Events.EventMeta.to_pdDataFrame().iloc[:50,:]n”, “eventMeta = eventMeta.sort_values(by=’EventID’)n”, “eventLabels = eventMeta.loc[eventMeta[‘EventID’].isin(eventData.EventID.unique())][‘Label’].tolist()”

]

}, {

“cell_type”: “markdown”, “metadata”: {

“pycharm”: {}

}, “source”: [

“And visualize it”

]

}, {

“cell_type”: “code”, “execution_count”: 17, “metadata”: {

“pycharm”: {
“is_executing”: false

}

}, “outputs”: [

{
“data”: {
“application/javascript”: [
“/* Put everything inside the global mpl namespace /n”, “window.mpl = {};n”, “n”, “n”, “mpl.get_websocket_type = function() {n”, ” if (typeof(WebSocket) !== ‘undefined’) {n”, ” return WebSocket;n”, ” } else if (typeof(MozWebSocket) !== ‘undefined’) {n”, ” return MozWebSocket;n”, ” } else {n”, ” alert(‘Your browser does not have WebSocket support. ‘ +n”, ” ‘Please try Chrome, Safari or Firefox ≥ 6. ‘ +n”, ” ‘Firefox 4 and 5 are also supported but you ‘ +n”, ” ‘have to enable WebSockets in about:config.’);n”, ” };n”, “}n”, “n”, “mpl.figure = function(figure_id, websocket, ondownload, parent_element) {n”, ” this.id = figure_id;n”, “n”, ” this.ws = websocket;n”, “n”, ” this.supports_binary = (this.ws.binaryType != undefined);n”, “n”, ” if (!this.supports_binary) {n”, ” var warnings = document.getElementById(“mpl-warnings”);n”, ” if (warnings) {n”, ” warnings.style.display = ‘block’;n”, ” warnings.textContent = (n”, ” “This browser does not support binary websocket messages. ” +n”, ” “Performance may be slow.”);n”, ” }n”, ” }n”, “n”, ” this.imageObj = new Image();n”, “n”, ” this.context = undefined;n”, ” this.message = undefined;n”, ” this.canvas = undefined;n”, ” this.rubberband_canvas = undefined;n”, ” this.rubberband_context = undefined;n”, ” this.format_dropdown = undefined;n”, “n”, ” this.image_mode = ‘full’;n”, “n”, ” this.root = $(‘<div/>’);n”, ” this._root_extra_style(this.root)n”, ” this.root.attr(‘style’, ‘display: inline-block’);n”, “n”, ” $(parent_element).append(this.root);n”, “n”, ” this._init_header(this);n”, ” this._init_canvas(this);n”, ” this._init_toolbar(this);n”, “n”, ” var fig = this;n”, “n”, ” this.waiting = false;n”, “n”, ” this.ws.onopen = function () {n”, ” fig.send_message(“supports_binary”, {value: fig.supports_binary});n”, ” fig.send_message(“send_image_mode”, {});n”, ” if (mpl.ratio != 1) {n”, ” fig.send_message(“set_dpi_ratio”, {‘dpi_ratio’: mpl.ratio});n”, ” }n”, ” fig.send_message(“refresh”, {});n”, ” }n”, “n”, ” this.imageObj.onload = function() {n”, ” if (fig.image_mode == ‘full’) {n”, ” // Full images could contain transparency (where diff imagesn”, ” // almost always do), so we need to clear the canvas so thatn”, ” // there is no ghosting.n”, ” fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);n”, ” }n”, ” fig.context.drawImage(fig.imageObj, 0, 0);n”, ” };n”, “n”, ” this.imageObj.onunload = function() {n”, ” fig.ws.close();n”, ” }n”, “n”, ” this.ws.onmessage = this._make_on_message_function(this);n”, “n”, ” this.ondownload = ondownload;n”, “}n”, “n”, “mpl.figure.prototype._init_header = function() {n”, ” var titlebar = $(n”, ” ‘<div class=”ui-dialog-titlebar ui-widget-header ui-corner-all ‘ +n”, ” ‘ui-helper-clearfix”/>’);n”, ” var titletext = $(n”, ” ‘<div class=”ui-dialog-title” style=”width: 100%; ‘ +n”, ” ‘text-align: center; padding: 3px;”/>’);n”, ” titlebar.append(titletext)n”, ” this.root.append(titlebar);n”, ” this.header = titletext[0];n”, “}n”, “n”, “n”, “n”, “mpl.figure.prototype._canvas_extra_style = function(canvas_div) {n”, “n”, “}n”, “n”, “n”, “mpl.figure.prototype._root_extra_style = function(canvas_div) {n”, “n”, “}n”, “n”, “mpl.figure.prototype._init_canvas = function() {n”, ” var fig = this;n”, “n”, ” var canvas_div = $(‘<div/>’);n”, “n”, ” canvas_div.attr(‘style’, ‘position: relative; clear: both; outline: 0’);n”, “n”, ” function canvas_keyboard_event(event) {n”, ” return fig.key_event(event, event[‘data’]);n”, ” }n”, “n”, ” canvas_div.keydown(‘key_press’, canvas_keyboard_event);n”, ” canvas_div.keyup(‘key_release’, canvas_keyboard_event);n”, ” this.canvas_div = canvas_divn”, ” this._canvas_extra_style(canvas_div)n”, ” this.root.append(canvas_div);n”, “n”, ” var canvas = $(‘<canvas/>’);n”, ” canvas.addClass(‘mpl-canvas’);n”, ” canvas.attr(‘style’, “left: 0; top: 0; z-index: 0; outline: 0”)n”, “n”, ” this.canvas = canvas[0];n”, ” this.context = canvas[0].getContext(“2d”);n”, “n”, ” var backingStore = this.context.backingStorePixelRatio ||n”, “tthis.context.webkitBackingStorePixelRatio ||n”, “tthis.context.mozBackingStorePixelRatio ||n”, “tthis.context.msBackingStorePixelRatio ||n”, “tthis.context.oBackingStorePixelRatio ||n”, “tthis.context.backingStorePixelRatio || 1;n”, “n”, ” mpl.ratio = (window.devicePixelRatio || 1) / backingStore;n”, “n”, ” var rubberband = $(‘<canvas/>’);n”, ” rubberband.attr(‘style’, “position: absolute; left: 0; top: 0; z-index: 1;”)n”, “n”, ” var pass_mouse_events = true;n”, “n”, ” canvas_div.resizable({n”, ” start: function(event, ui) {n”, ” pass_mouse_events = false;n”, ” },n”, ” resize: function(event, ui) {n”, ” fig.request_resize(ui.size.width, ui.size.height);n”, ” },n”, ” stop: function(event, ui) {n”, ” pass_mouse_events = true;n”, ” fig.request_resize(ui.size.width, ui.size.height);n”, ” },n”, ” });n”, “n”, ” function mouse_event_fn(event) {n”, ” if (pass_mouse_events)n”, ” return fig.mouse_event(event, event[‘data’]);n”, ” }n”, “n”, ” rubberband.mousedown(‘button_press’, mouse_event_fn);n”, ” rubberband.mouseup(‘button_release’, mouse_event_fn);n”, ” // Throttle sequential mouse events to 1 every 20ms.n”, ” rubberband.mousemove(‘motion_notify’, mouse_event_fn);n”, “n”, ” rubberband.mouseenter(‘figure_enter’, mouse_event_fn);n”, ” rubberband.mouseleave(‘figure_leave’, mouse_event_fn);n”, “n”, ” canvas_div.on(“wheel”, function (event) {n”, ” event = event.originalEvent;n”, ” event[‘data’] = ‘scroll’n”, ” if (event.deltaY < 0) {n”, ” event.step = 1;n”, ” } else {n”, ” event.step = -1;n”, ” }n”, ” mouse_event_fn(event);n”, ” });n”, “n”, ” canvas_div.append(canvas);n”, ” canvas_div.append(rubberband);n”, “n”, ” this.rubberband = rubberband;n”, ” this.rubberband_canvas = rubberband[0];n”, ” this.rubberband_context = rubberband[0].getContext(“2d”);n”, ” this.rubberband_context.strokeStyle = “#000000”;n”, “n”, ” this._resize_canvas = function(width, height) {n”, ” // Keep the size of the canvas, canvas container, and rubber bandn”, ” // canvas in synch.n”, ” canvas_div.css(‘width’, width)n”, ” canvas_div.css(‘height’, height)n”, “n”, ” canvas.attr(‘width’, width * mpl.ratio);n”, ” canvas.attr(‘height’, height * mpl.ratio);n”, ” canvas.attr(‘style’, ‘width: ‘ + width + ‘px; height: ‘ + height + ‘px;’);n”, “n”, ” rubberband.attr(‘width’, width);n”, ” rubberband.attr(‘height’, height);n”, ” }n”, “n”, ” // Set the figure to an initial 600x600px, this will subsequently be updatedn”, ” // upon first draw.n”, ” this._resize_canvas(600, 600);n”, “n”, ” // Disable right mouse context menu.n”, ” $(this.rubberband_canvas).bind(“contextmenu”,function(e){n”, ” return false;n”, ” });n”, “n”, ” function set_focus () {n”, ” canvas.focus();n”, ” canvas_div.focus();n”, ” }n”, “n”, ” window.setTimeout(set_focus, 100);n”, “}n”, “n”, “mpl.figure.prototype._init_toolbar = function() {n”, ” var fig = this;n”, “n”, ” var nav_element = $(‘<div/>’);n”, ” nav_element.attr(‘style’, ‘width: 100%’);n”, ” this.root.append(nav_element);n”, “n”, ” // Define a callback function for later on.n”, ” function toolbar_event(event) {n”, ” return fig.toolbar_button_onclick(event[‘data’]);n”, ” }n”, ” function toolbar_mouse_event(event) {n”, ” return fig.toolbar_button_onmouseover(event[‘data’]);n”, ” }n”, “n”, ” for(var toolbar_ind in mpl.toolbar_items) {n”, ” var name = mpl.toolbar_items[toolbar_ind][0];n”, ” var tooltip = mpl.toolbar_items[toolbar_ind][1];n”, ” var image = mpl.toolbar_items[toolbar_ind][2];n”, ” var method_name = mpl.toolbar_items[toolbar_ind][3];n”, “n”, ” if (!name) {n”, ” // put a spacer in here.n”, ” continue;n”, ” }n”, ” var button = $(‘<button/>’);n”, ” button.addClass(‘ui-button ui-widget ui-state-default ui-corner-all ‘ +n”, ” ‘ui-button-icon-only’);n”, ” button.attr(‘role’, ‘button’);n”, ” button.attr(‘aria-disabled’, ‘false’);n”, ” button.click(method_name, toolbar_event);n”, ” button.mouseover(tooltip, toolbar_mouse_event);n”, “n”, ” var icon_img = $(‘<span/>’);n”, ” icon_img.addClass(‘ui-button-icon-primary ui-icon’);n”, ” icon_img.addClass(image);n”, ” icon_img.addClass(‘ui-corner-all’);n”, “n”, ” var tooltip_span = $(‘<span/>’);n”, ” tooltip_span.addClass(‘ui-button-text’);n”, ” tooltip_span.html(tooltip);n”, “n”, ” button.append(icon_img);n”, ” button.append(tooltip_span);n”, “n”, ” nav_element.append(button);n”, ” }n”, “n”, ” var fmt_picker_span = $(‘<span/>’);n”, “n”, ” var fmt_picker = $(‘<select/>’);n”, ” fmt_picker.addClass(‘mpl-toolbar-option ui-widget ui-widget-content’);n”, ” fmt_picker_span.append(fmt_picker);n”, ” nav_element.append(fmt_picker_span);n”, ” this.format_dropdown = fmt_picker[0];n”, “n”, ” for (var ind in mpl.extensions) {n”, ” var fmt = mpl.extensions[ind];n”, ” var option = $(n”, ” ‘<option/>’, {selected: fmt === mpl.default_extension}).html(fmt);n”, ” fmt_picker.append(option);n”, ” }n”, “n”, ” // Add hover states to the ui-buttonsn”, ” $( “.ui-button” ).hover(n”, ” function() { $(this).addClass(“ui-state-hover”);},n”, ” function() { $(this).removeClass(“ui-state-hover”);}n”, ” );n”, “n”, ” var status_bar = $(‘<span class=”mpl-message”/>’);n”, ” nav_element.append(status_bar);n”, ” this.message = status_bar[0];n”, “}n”, “n”, “mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {n”, ” // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,n”, ” // which will in turn request a refresh of the image.n”, ” this.send_message(‘resize’, {‘width’: x_pixels, ‘height’: y_pixels});n”, “}n”, “n”, “mpl.figure.prototype.send_message = function(type, properties) {n”, ” properties[‘type’] = type;n”, ” properties[‘figure_id’] = this.id;n”, ” this.ws.send(JSON.stringify(properties));n”, “}n”, “n”, “mpl.figure.prototype.send_draw_message = function() {n”, ” if (!this.waiting) {n”, ” this.waiting = true;n”, ” this.ws.send(JSON.stringify({type: “draw”, figure_id: this.id}));n”, ” }n”, “}n”, “n”, “n”, “mpl.figure.prototype.handle_save = function(fig, msg) {n”, ” var format_dropdown = fig.format_dropdown;n”, ” var format = format_dropdown.options[format_dropdown.selectedIndex].value;n”, ” fig.ondownload(fig, format);n”, “}n”, “n”, “n”, “mpl.figure.prototype.handle_resize = function(fig, msg) {n”, ” var size = msg[‘size’];n”, ” if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {n”, ” fig._resize_canvas(size[0], size[1]);n”, ” fig.send_message(“refresh”, {});n”, ” };n”, “}n”, “n”, “mpl.figure.prototype.handle_rubberband = function(fig, msg) {n”, ” var x0 = msg[‘x0’] / mpl.ratio;n”, ” var y0 = (fig.canvas.height - msg[‘y0’]) / mpl.ratio;n”, ” var x1 = msg[‘x1’] / mpl.ratio;n”, ” var y1 = (fig.canvas.height - msg[‘y1’]) / mpl.ratio;n”, ” x0 = Math.floor(x0) + 0.5;n”, ” y0 = Math.floor(y0) + 0.5;n”, ” x1 = Math.floor(x1) + 0.5;n”, ” y1 = Math.floor(y1) + 0.5;n”, ” var min_x = Math.min(x0, x1);n”, ” var min_y = Math.min(y0, y1);n”, ” var width = Math.abs(x1 - x0);n”, ” var height = Math.abs(y1 - y0);n”, “n”, ” fig.rubberband_context.clearRect(n”, ” 0, 0, fig.canvas.width / mpl.ratio, fig.canvas.height / mpl.ratio);n”, “n”, ” fig.rubberband_context.strokeRect(min_x, min_y, width, height);n”, “}n”, “n”, “mpl.figure.prototype.handle_figure_label = function(fig, msg) {n”, ” // Updates the figure title.n”, ” fig.header.textContent = msg[‘label’];n”, “}n”, “n”, “mpl.figure.prototype.handle_cursor = function(fig, msg) {n”, ” var cursor = msg[‘cursor’];n”, ” switch(cursor)n”, ” {n”, ” case 0:n”, ” cursor = ‘pointer’;n”, ” break;n”, ” case 1:n”, ” cursor = ‘default’;n”, ” break;n”, ” case 2:n”, ” cursor = ‘crosshair’;n”, ” break;n”, ” case 3:n”, ” cursor = ‘move’;n”, ” break;n”, ” }n”, ” fig.rubberband_canvas.style.cursor = cursor;n”, “}n”, “n”, “mpl.figure.prototype.handle_message = function(fig, msg) {n”, ” fig.message.textContent = msg[‘message’];n”, “}n”, “n”, “mpl.figure.prototype.handle_draw = function(fig, msg) {n”, ” // Request the server to send over a new figure.n”, ” fig.send_draw_message();n”, “}n”, “n”, “mpl.figure.prototype.handle_image_mode = function(fig, msg) {n”, ” fig.image_mode = msg[‘mode’];n”, “}n”, “n”, “mpl.figure.prototype.updated_canvas_event = function() {n”, ” // Called whenever the canvas gets updated.n”, ” this.send_message(“ack”, {});n”, “}n”, “n”, “// A function to construct a web socket function for onmessage handling.n”, “// Called in the figure constructor.n”, “mpl.figure.prototype._make_on_message_function = function(fig) {n”, ” return function socket_on_message(evt) {n”, ” if (evt.data instanceof Blob) {n”, ” / FIXME: We get “Resource interpreted as Image butn”, ” * transferred with MIME type text/plain:” errors onn”, ” * Chrome. But how to set the MIME type? It doesn’t seemn”, ” * to be part of the websocket stream /n”, ” evt.data.type = “image/png”;n”, “n”, ” / Free the memory for the previous frames /n”, ” if (fig.imageObj.src) {n”, ” (window.URL || window.webkitURL).revokeObjectURL(n”, ” fig.imageObj.src);n”, ” }n”, “n”, ” fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(n”, ” evt.data);n”, ” fig.updated_canvas_event();n”, ” fig.waiting = false;n”, ” return;n”, ” }n”, ” else if (typeof evt.data === ‘string’ && evt.data.slice(0, 21) == “data:image/png;base64”) {n”, ” fig.imageObj.src = evt.data;n”, ” fig.updated_canvas_event();n”, ” fig.waiting = false;n”, ” return;n”, ” }n”, “n”, ” var msg = JSON.parse(evt.data);n”, ” var msg_type = msg[‘type’];n”, “n”, ” // Call the “handle_{type}” callback, which takesn”, ” // the figure and JSON message as its only arguments.n”, ” try {n”, ” var callback = fig[“handle_” + msg_type];n”, ” } catch (e) {n”, ” console.log(“No handler for the ‘” + msg_type + “’ message type: “, msg);n”, ” return;n”, ” }n”, “n”, ” if (callback) {n”, ” try {n”, ” // console.log(“Handling ‘” + msg_type + “’ message: “, msg);n”, ” callback(fig, msg);n”, ” } catch (e) {n”, ” console.log(“Exception inside the ‘handler_” + msg_type + “’ callback:”, e, e.stack, msg);n”, ” }n”, ” }n”, ” };n”, “}n”, “n”, “// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvasn”, “mpl.findpos = function(e) {n”, ” //this section is from http://www.quirksmode.org/js/events_properties.htmln”, ” 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 bugn”, ” targ = targ.parentNode;n”, “n”, ” // jQuery normalizes the pageX and pageYn”, ” // pageX,Y are the mouse positions relative to the documentn”, ” // offset() returns the position of the element relative to the documentn”, ” 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 keysn”, ” * we need this to avoid circular referencesn”, ” * http://stackoverflow.com/a/24161582/3208463n”, ” /n”, “function simpleKeys (original) {n”, ” return Object.keys(original).reduce(function (obj, key) {n”, ” if (typeof original[key] !== ‘object’)n”, ” obj[key] = original[key]n”, ” return obj;n”, ” }, {});n”, “}n”, “n”, “mpl.figure.prototype.mouse_event = function(event, name) {n”, ” var canvas_pos = mpl.findpos(event)n”, “n”, ” if (name === ‘button_press’)n”, ” {n”, ” this.canvas.focus();n”, ” this.canvas_div.focus();n”, ” }n”, “n”, ” var x = canvas_pos.x * mpl.ratio;n”, ” var y = canvas_pos.y * mpl.ratio;n”, “n”, ” this.send_message(name, {x: x, y: y, button: event.button,n”, ” step: event.step,n”, ” guiEvent: simpleKeys(event)});n”, “n”, ” / This prevents the web browser from automatically changing ton”, ” * the text insertion cursor when the button is pressed. We wantn”, ” * to control all of the cursor setting manually through then”, ” * ‘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 eventn”, “}n”, “n”, “mpl.figure.prototype.key_event = function(event, name) {n”, “n”, ” // Prevent repeat eventsn”, ” if (name == ‘key_press’)n”, ” {n”, ” if (event.which === this._key)n”, ” return;n”, ” elsen”, ” 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 commn”, ” // object with the appropriate methods. Currently this is a non binaryn”, ” // 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 overridden (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 processn”, ” // 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 Commn”, ” // 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 realn”, ” // 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.ration”, ” 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.ration”, ” var dataURL = this.canvas.toDataURL();n”, ” this.cell_info[1][‘text/html’] = ‘<img src=”’ + dataURL + ‘” width=”’ + width + ‘”>’;n”, “}n”, “n”, “mpl.figure.prototype.updated_canvas_event = function() {n”, ” // Tell IPython that the notebook contents must change.n”, ” IPython.notebook.set_dirty(true);n”, ” this.send_message(“ack”, {});n”, ” var fig = this;n”, ” // Wait a second, then push the new image to the DOM son”, ” // 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 = thisn”, ” 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 ‘focusablen”, ” el.attr(‘tabindex’, 0)n”, ” // reach out to IPython and tell the keyboard manager to turn it’s selfn”, ” // off when our div gets focusn”, “n”, ” // location in version 3n”, ” if (IPython.notebook.keyboard_manager) {n”, ” IPython.notebook.keyboard_manager.register_events(el);n”, ” }n”, ” else {n”, ” // location in version 2n”, ” 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+entern”, ” if (event.shiftKey && event.which == 13) {n”, ” this.canvas_div.blur();n”, ” event.shiftKey = false;n”, ” // Send a “J” for go to next celln”, ” 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 forn”, ” // 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 outputn”, ” data = data.data;n”, ” }n”, ” if (data[‘text/html’] == html_output) {n”, ” return [cell, data, j];n”, ” }n”, ” }n”, ” }n”, ” }n”, “}n”, “n”, “// Register the function which deals with the matplotlib target/channel.n”, “// The kernel may be null if the page has been refreshed.n”, “if (IPython.notebook.kernel != null) {n”, ” IPython.notebook.kernel.comm_manager.register_target(‘matplotlib’, mpl.mpl_figure_comm);n”, “}n”

], “text/plain”: [

“<IPython.core.display.Javascript object>”

]

}, “metadata”: {}, “output_type”: “display_data”

}, {

“data”: {
“text/html”: [
“<img src=”data:image/png;base64,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” width=”720”>”

], “text/plain”: [

“<IPython.core.display.HTML object>”

]

}, “metadata”: {}, “output_type”: “display_data”

}

], “source”: [

“# VISUALIZE EVENTSn”, “fig = plt.figure(figsize=(10, 5))n”, “ax = fig.add_subplot(111)n”, “n”, “colors = [[0, 1, 0], [1, 0, 0]]n”, “n”, “ax.eventplot(eventPosition.values.transpose(), n”, ” linewidth=eventDuration.values.transpose(), n”, ” linelength = 0.62,n”, ” colors=colors)n”, “n”, “ax.set_title(‘Events in STG_Sideband_Events’)n”, “ax.set_xlabel(‘time [ms]’)n”, “ax.set_ylabel(‘Event’)n”, “ax.set_yticks(range(len(eventLabels)))n”, “ax.set_yticklabels(eventLabels)n”, “plt.box(False)”

]

}, {

“cell_type”: “markdown”, “metadata”: {

“pycharm”: {}

}, “source”: [

“## Processed Data Files (.cmtr)<a id=’processedData’></a>n”, “n”, “Processed data files with the file extension .cmtr are created by the CMOS-MEA-Tools software and contain the analysis results from different data sources. To access them, we need to create an instance of McsData in the same way as for the Raw Data files:”

]

}, {

“cell_type”: “code”, “execution_count”: 3, “metadata”: {}, “outputs”: [], “source”: [

“path2TestDataFile2 = os.path.join(path2TestData, “CMOS_MEA_Results.cmtr”)n”, “processed = McsCMOSMEA.McsData(path2TestDataFile2)”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“The easiest way to see the file contents is to print the object”

]

}, {

“cell_type”: “code”, “execution_count”: 19, “metadata”: {}, “outputs”: [

{

“name”: “stdout”, “output_type”: “stream”, “text”: [

“<McsCMOSMEAData instance at 0x246d97f6ba8>n”, “n”, “This object represents the Mcs CMOS MEA file:n”, “Filename: result_file_with_network_explorer.cmtrn”, “n”, “Date Program Version n”, “——————- ————————– ———-n”, “16.12.2019 11:34:19 CMOS-MEA-Tools 2.4.0.0 n”, “n”, “n”, “Content:n”, “n”, “| Mcs Type | HDF5 name | McsPy name |\n", "===============================================================================\n", "Groups:\n", "| Acquisition | Acquisition | Acquisition |\n", "| SummaryTool | Activity Summary | Activity_Summary |\n", "| FilterTool | Filter Tool | Filter_Tool |\n", "| NetworkExplorerTool | Network Explorer | Network_Explorer |\n", "| SpikeExplorerTool | Spike Explorer | Spike_Explorer |\n", "| SpikeSorter | Spike Sorter | Spike_Sorter |n”, “——————————————————————————-n”, “Datasets:n”, ” Nonen”, “n”

]

}

], “source”: [

“print(processed)”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“The file contains 5 different data sources: Acquisition, Filter Tool, STA Explorer, Spike Explorer and Spike Sorter. Of these, Acquisition is a special case because it is actually a link to the Acquisition group in the Raw Data file 2017.12.14-18.38.15-GFP8ms_470nm_100pc_10rep_nofilter.cmcr that served as input to the analysis in CMOS-MEA-Tools. Still, you can access the contents of this group as usual:”

]

}, {

“cell_type”: “code”, “execution_count”: 20, “metadata”: {}, “outputs”: [

{

“name”: “stdout”, “output_type”: “stream”, “text”: [

“——————————————————————————-n”, “Parent Group: <class ‘McsPyDataTools.McsPy.McsCMOSMEA.Acquisition’ object at 0x246d9971240>n”, “n”, “——————————————————————————-n”, “n”, “n”, “| Subtype | HDF5 name | McsPy name |\n", "===============================================================================\n", "ChannelStream\n", "| Digital | Digital Data | Digital_Data |\n", "-------------------------------------------------------------------------------\n", "EventStream\n", "| DigitalPort |EventTool @ Digital Data |EventTool_at_Digital_Data|n”, “——————————————————————————-n”, “SensorStreamn”, “| CMosSensor | Sensor Data | Sensor_Data |\n", "-------------------------------------------------------------------------------\n", "\n", "| Subtype | McsPy name | HDF5 name |\n", "=============================================================================================================\n", "SensorStream:\n", "| CMosSensor | Sensor_Data | Sensor Data |n”, “————————————————————————————————————-n”, “n”, “(205584, 65, 65)n”

]

}

], “source”: [

“print(processed.Acquisition)n”, “print(processed.Acquisition.SensorStreams)n”, “print(processed.Acquisition.SensorStreams[0].SensorData[0].shape)”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“For more details about the interaction with the Acquisition group, please refer to the <a href=’#RawData’>Raw Data</a> section above. Because it is a link to a different file, it is necessary that a file with the correct name is found in the same folder as the ProcessedData file.n”, “n”, “The other data sources correspond to different tools in the CMOS-MEA-Tools software. Please note that data sources are only present if they had been activated for the analysis in CMOS-MEA-Tools, so it is possible that other .cmtr files contain a different set of data sources.”

]

}, {

“cell_type”: “markdown”, “metadata”: {

“pycharm”: {}

}, “source”: [

“<a href=’#Top’>Back to index</a>”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“### Filter Tool<a id=’filterTool’></a>n”, “n”, “The Filter_Tool contains the settings for the filter pipeline applied to the raw data in CMOS-MEA-Tools:”

]

}, {

“cell_type”: “code”, “execution_count”: 21, “metadata”: {}, “outputs”: [

{

“name”: “stdout”, “output_type”: “stream”, “text”: [

“——————————————————————————-n”, “Parent Group: <class ‘McsPyDataTools.McsPy.McsCMOSMEA.FilterTool’ object at 0x246d99718d0>n”, “——————————————————————————-n”, “n”, “n”, “| Mcs Type | HDF5 name | McsPy name |\n", "===============================================================================\n", "Groups:\n", "| PipeModel | Pipe | Pipe |\n", "-------------------------------------------------------------------------------\n", "Datasets:\n", "| SettingsFilterTool | SettingsFilterTool | SettingsFilterTool |n”, “n”, “Filter Order: 2n”, “Cutoff Frequency: 300.0 Hzn”

]

}

], “source”: [

“print(processed.Filter_Tool)n”, “print(“Filter Order: ” + str(processed.Filter_Tool.Pipe[‘1 High-Pass’][‘Order’][0]))n”, “print(“Cutoff Frequency: ” + str(processed.Filter_Tool.Pipe[‘1 High-Pass’][‘CutOffFrequency’][0]) + ” Hz”)”

]

}, {

“cell_type”: “markdown”, “metadata”: {

“pycharm”: {}

}, “source”: [

“<a href=’#Top’>Back to index</a>”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“### Spike Explorer<a id=’spikeExplorer’></a>n”, “n”, “The Spike_Explorer holds settings for the channel-wise spike detector in CMOS-MEA-Tools, as well as its detected spikes:”

]

}, {

“cell_type”: “code”, “execution_count”: 22, “metadata”: {}, “outputs”: [

{

“name”: “stdout”, “output_type”: “stream”, “text”: [

“——————————————————————————-n”, “Parent Group: <class ‘McsPyDataTools.McsPy.McsCMOSMEA.SpikeExplorer’ object at 0x246d97f6f60>n”, “——————————————————————————-n”, “n”, “n”, “| Mcs Type | HDF5 name | McsPy name |\n", "===============================================================================\n", "Groups:\n", " None\n", "-------------------------------------------------------------------------------\n", "Datasets:\n", "| SettingsMapCreator | SettingsMapCreator | SettingsMapCreator |\n", "| SettingsSpikeDetector | SettingsSpikeDetector | SettingsSpikeDetector |\n", "| SettingsSpikeExplorer | SettingsSpikeExplorer | SettingsSpikeExplorer |\n", "|SettingsSpikePeakActivity|SettingsSpikePeakActivity|SettingsSpikePeakActivity|n”, “| SpikeData | SpikeData | SpikeData |\n", "| SpikeMeta | SpikeMeta | SpikeMeta |n”, “n”

]

}

], “source”: [

“print(processed.Spike_Explorer)”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“The detection threshold and other details for the spike detector can be found in the SettingsSpikeDetector data set:”

]

}, {

“cell_type”: “code”, “execution_count”: 23, “metadata”: {}, “outputs”: [

{
“data”: {
“text/plain”: [
“5.0”

]

}, “execution_count”: 23, “metadata”: {}, “output_type”: “execute_result”

}

], “source”: [

“processed.Spike_Explorer.SettingsSpikeDetector[‘Threshold’][0]”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“The detected spikes are contained in the SpikeData dataset. It stores for each spike the SensorID of the detection location, the TimeStamp as the detection time in µs and an optional signal cutout around the spike timestamp:”

]

}, {

“cell_type”: “code”, “execution_count”: 24, “metadata”: {}, “outputs”: [

{

“name”: “stdout”, “output_type”: “stream”, “text”: [

“Compound McsDataset SpikeDatan”, “n”, “location in hdf5 file: /Spike Explorer/SpikeDatan”, “shape: /Spike Explorer/SpikeData(18486,)n”, “dtype: /Spike Explorer/SpikeData[(‘SensorID’, ‘<i4’), (‘TimeStamp’, ‘<i8’), (‘1’, ‘<f8’), (‘2’, ‘<f8’), (‘3’, ‘<f8’), (‘4’, ‘<f8’), (‘5’, ‘<f8’), (‘6’, ‘<f8’), (‘7’, ‘<f8’), (‘8’, ‘<f8’), (‘9’, ‘<f8’), (‘10’, ‘<f8’), (‘11’, ‘<f8’), (‘12’, ‘<f8’), (‘13’, ‘<f8’), (‘14’, ‘<f8’), (‘15’, ‘<f8’), (‘16’, ‘<f8’), (‘17’, ‘<f8’), (‘18’, ‘<f8’), (‘19’, ‘<f8’), (‘20’, ‘<f8’), (‘21’, ‘<f8’), (‘22’, ‘<f8’), (‘23’, ‘<f8’), (‘24’, ‘<f8’), (‘25’, ‘<f8’), (‘26’, ‘<f8’), (‘27’, ‘<f8’), (‘28’, ‘<f8’), (‘29’, ‘<f8’), (‘30’, ‘<f8’), (‘31’, ‘<f8’), (‘32’, ‘<f8’), (‘33’, ‘<f8’), (‘34’, ‘<f8’), (‘35’, ‘<f8’), (‘36’, ‘<f8’), (‘37’, ‘<f8’), (‘38’, ‘<f8’), (‘39’, ‘<f8’), (‘40’, ‘<f8’), (‘41’, ‘<f8’), (‘42’, ‘<f8’), (‘43’, ‘<f8’), (‘44’, ‘<f8’), (‘45’, ‘<f8’), (‘46’, ‘<f8’), (‘47’, ‘<f8’), (‘48’, ‘<f8’), (‘49’, ‘<f8’), (‘50’, ‘<f8’), (‘51’, ‘<f8’), (‘52’, ‘<f8’), (‘53’, ‘<f8’), (‘54’, ‘<f8’), (‘55’, ‘<f8’), (‘56’, ‘<f8’), (‘57’, ‘<f8’), (‘58’, ‘<f8’), (‘59’, ‘<f8’), (‘60’, ‘<f8’)]n”, “n”

]

}

], “source”: [

“print(processed.Spike_Explorer.SpikeData)”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“This allows us to do different visualizations of the spike data:”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“#### Raster Plotn”, “n”, “We can generate a raster plot for one or more sensors:”

]

}, {

“cell_type”: “code”, “execution_count”: 26, “metadata”: {}, “outputs”: [

{
“data”: {
“application/javascript”: [
“/* Put everything inside the global mpl namespace /n”, “window.mpl = {};n”, “n”, “n”, “mpl.get_websocket_type = function() {n”, ” if (typeof(WebSocket) !== ‘undefined’) {n”, ” return WebSocket;n”, ” } else if (typeof(MozWebSocket) !== ‘undefined’) {n”, ” return MozWebSocket;n”, ” } else {n”, ” alert(‘Your browser does not have WebSocket support. ‘ +n”, ” ‘Please try Chrome, Safari or Firefox ≥ 6. ‘ +n”, ” ‘Firefox 4 and 5 are also supported but you ‘ +n”, ” ‘have to enable WebSockets in about:config.’);n”, ” };n”, “}n”, “n”, “mpl.figure = function(figure_id, websocket, ondownload, parent_element) {n”, ” this.id = figure_id;n”, “n”, ” this.ws = websocket;n”, “n”, ” this.supports_binary = (this.ws.binaryType != undefined);n”, “n”, ” if (!this.supports_binary) {n”, ” var warnings = document.getElementById(“mpl-warnings”);n”, ” if (warnings) {n”, ” warnings.style.display = ‘block’;n”, ” warnings.textContent = (n”, ” “This browser does not support binary websocket messages. ” +n”, ” “Performance may be slow.”);n”, ” }n”, ” }n”, “n”, ” this.imageObj = new Image();n”, “n”, ” this.context = undefined;n”, ” this.message = undefined;n”, ” this.canvas = undefined;n”, ” this.rubberband_canvas = undefined;n”, ” this.rubberband_context = undefined;n”, ” this.format_dropdown = undefined;n”, “n”, ” this.image_mode = ‘full’;n”, “n”, ” this.root = $(‘<div/>’);n”, ” this._root_extra_style(this.root)n”, ” this.root.attr(‘style’, ‘display: inline-block’);n”, “n”, ” $(parent_element).append(this.root);n”, “n”, ” this._init_header(this);n”, ” this._init_canvas(this);n”, ” this._init_toolbar(this);n”, “n”, ” var fig = this;n”, “n”, ” this.waiting = false;n”, “n”, ” this.ws.onopen = function () {n”, ” fig.send_message(“supports_binary”, {value: fig.supports_binary});n”, ” fig.send_message(“send_image_mode”, {});n”, ” if (mpl.ratio != 1) {n”, ” fig.send_message(“set_dpi_ratio”, {‘dpi_ratio’: mpl.ratio});n”, ” }n”, ” fig.send_message(“refresh”, {});n”, ” }n”, “n”, ” this.imageObj.onload = function() {n”, ” if (fig.image_mode == ‘full’) {n”, ” // Full images could contain transparency (where diff imagesn”, ” // almost always do), so we need to clear the canvas so thatn”, ” // there is no ghosting.n”, ” fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);n”, ” }n”, ” fig.context.drawImage(fig.imageObj, 0, 0);n”, ” };n”, “n”, ” this.imageObj.onunload = function() {n”, ” fig.ws.close();n”, ” }n”, “n”, ” this.ws.onmessage = this._make_on_message_function(this);n”, “n”, ” this.ondownload = ondownload;n”, “}n”, “n”, “mpl.figure.prototype._init_header = function() {n”, ” var titlebar = $(n”, ” ‘<div class=”ui-dialog-titlebar ui-widget-header ui-corner-all ‘ +n”, ” ‘ui-helper-clearfix”/>’);n”, ” var titletext = $(n”, ” ‘<div class=”ui-dialog-title” style=”width: 100%; ‘ +n”, ” ‘text-align: center; padding: 3px;”/>’);n”, ” titlebar.append(titletext)n”, ” this.root.append(titlebar);n”, ” this.header = titletext[0];n”, “}n”, “n”, “n”, “n”, “mpl.figure.prototype._canvas_extra_style = function(canvas_div) {n”, “n”, “}n”, “n”, “n”, “mpl.figure.prototype._root_extra_style = function(canvas_div) {n”, “n”, “}n”, “n”, “mpl.figure.prototype._init_canvas = function() {n”, ” var fig = this;n”, “n”, ” var canvas_div = $(‘<div/>’);n”, “n”, ” canvas_div.attr(‘style’, ‘position: relative; clear: both; outline: 0’);n”, “n”, ” function canvas_keyboard_event(event) {n”, ” return fig.key_event(event, event[‘data’]);n”, ” }n”, “n”, ” canvas_div.keydown(‘key_press’, canvas_keyboard_event);n”, ” canvas_div.keyup(‘key_release’, canvas_keyboard_event);n”, ” this.canvas_div = canvas_divn”, ” this._canvas_extra_style(canvas_div)n”, ” this.root.append(canvas_div);n”, “n”, ” var canvas = $(‘<canvas/>’);n”, ” canvas.addClass(‘mpl-canvas’);n”, ” canvas.attr(‘style’, “left: 0; top: 0; z-index: 0; outline: 0”)n”, “n”, ” this.canvas = canvas[0];n”, ” this.context = canvas[0].getContext(“2d”);n”, “n”, ” var backingStore = this.context.backingStorePixelRatio ||n”, “tthis.context.webkitBackingStorePixelRatio ||n”, “tthis.context.mozBackingStorePixelRatio ||n”, “tthis.context.msBackingStorePixelRatio ||n”, “tthis.context.oBackingStorePixelRatio ||n”, “tthis.context.backingStorePixelRatio || 1;n”, “n”, ” mpl.ratio = (window.devicePixelRatio || 1) / backingStore;n”, “n”, ” var rubberband = $(‘<canvas/>’);n”, ” rubberband.attr(‘style’, “position: absolute; left: 0; top: 0; z-index: 1;”)n”, “n”, ” var pass_mouse_events = true;n”, “n”, ” canvas_div.resizable({n”, ” start: function(event, ui) {n”, ” pass_mouse_events = false;n”, ” },n”, ” resize: function(event, ui) {n”, ” fig.request_resize(ui.size.width, ui.size.height);n”, ” },n”, ” stop: function(event, ui) {n”, ” pass_mouse_events = true;n”, ” fig.request_resize(ui.size.width, ui.size.height);n”, ” },n”, ” });n”, “n”, ” function mouse_event_fn(event) {n”, ” if (pass_mouse_events)n”, ” return fig.mouse_event(event, event[‘data’]);n”, ” }n”, “n”, ” rubberband.mousedown(‘button_press’, mouse_event_fn);n”, ” rubberband.mouseup(‘button_release’, mouse_event_fn);n”, ” // Throttle sequential mouse events to 1 every 20ms.n”, ” rubberband.mousemove(‘motion_notify’, mouse_event_fn);n”, “n”, ” rubberband.mouseenter(‘figure_enter’, mouse_event_fn);n”, ” rubberband.mouseleave(‘figure_leave’, mouse_event_fn);n”, “n”, ” canvas_div.on(“wheel”, function (event) {n”, ” event = event.originalEvent;n”, ” event[‘data’] = ‘scroll’n”, ” if (event.deltaY < 0) {n”, ” event.step = 1;n”, ” } else {n”, ” event.step = -1;n”, ” }n”, ” mouse_event_fn(event);n”, ” });n”, “n”, ” canvas_div.append(canvas);n”, ” canvas_div.append(rubberband);n”, “n”, ” this.rubberband = rubberband;n”, ” this.rubberband_canvas = rubberband[0];n”, ” this.rubberband_context = rubberband[0].getContext(“2d”);n”, ” this.rubberband_context.strokeStyle = “#000000”;n”, “n”, ” this._resize_canvas = function(width, height) {n”, ” // Keep the size of the canvas, canvas container, and rubber bandn”, ” // canvas in synch.n”, ” canvas_div.css(‘width’, width)n”, ” canvas_div.css(‘height’, height)n”, “n”, ” canvas.attr(‘width’, width * mpl.ratio);n”, ” canvas.attr(‘height’, height * mpl.ratio);n”, ” canvas.attr(‘style’, ‘width: ‘ + width + ‘px; height: ‘ + height + ‘px;’);n”, “n”, ” rubberband.attr(‘width’, width);n”, ” rubberband.attr(‘height’, height);n”, ” }n”, “n”, ” // Set the figure to an initial 600x600px, this will subsequently be updatedn”, ” // upon first draw.n”, ” this._resize_canvas(600, 600);n”, “n”, ” // Disable right mouse context menu.n”, ” $(this.rubberband_canvas).bind(“contextmenu”,function(e){n”, ” return false;n”, ” });n”, “n”, ” function set_focus () {n”, ” canvas.focus();n”, ” canvas_div.focus();n”, ” }n”, “n”, ” window.setTimeout(set_focus, 100);n”, “}n”, “n”, “mpl.figure.prototype._init_toolbar = function() {n”, ” var fig = this;n”, “n”, ” var nav_element = $(‘<div/>’);n”, ” nav_element.attr(‘style’, ‘width: 100%’);n”, ” this.root.append(nav_element);n”, “n”, ” // Define a callback function for later on.n”, ” function toolbar_event(event) {n”, ” return fig.toolbar_button_onclick(event[‘data’]);n”, ” }n”, ” function toolbar_mouse_event(event) {n”, ” return fig.toolbar_button_onmouseover(event[‘data’]);n”, ” }n”, “n”, ” for(var toolbar_ind in mpl.toolbar_items) {n”, ” var name = mpl.toolbar_items[toolbar_ind][0];n”, ” var tooltip = mpl.toolbar_items[toolbar_ind][1];n”, ” var image = mpl.toolbar_items[toolbar_ind][2];n”, ” var method_name = mpl.toolbar_items[toolbar_ind][3];n”, “n”, ” if (!name) {n”, ” // put a spacer in here.n”, ” continue;n”, ” }n”, ” var button = $(‘<button/>’);n”, ” button.addClass(‘ui-button ui-widget ui-state-default ui-corner-all ‘ +n”, ” ‘ui-button-icon-only’);n”, ” button.attr(‘role’, ‘button’);n”, ” button.attr(‘aria-disabled’, ‘false’);n”, ” button.click(method_name, toolbar_event);n”, ” button.mouseover(tooltip, toolbar_mouse_event);n”, “n”, ” var icon_img = $(‘<span/>’);n”, ” icon_img.addClass(‘ui-button-icon-primary ui-icon’);n”, ” icon_img.addClass(image);n”, ” icon_img.addClass(‘ui-corner-all’);n”, “n”, ” var tooltip_span = $(‘<span/>’);n”, ” tooltip_span.addClass(‘ui-button-text’);n”, ” tooltip_span.html(tooltip);n”, “n”, ” button.append(icon_img);n”, ” button.append(tooltip_span);n”, “n”, ” nav_element.append(button);n”, ” }n”, “n”, ” var fmt_picker_span = $(‘<span/>’);n”, “n”, ” var fmt_picker = $(‘<select/>’);n”, ” fmt_picker.addClass(‘mpl-toolbar-option ui-widget ui-widget-content’);n”, ” fmt_picker_span.append(fmt_picker);n”, ” nav_element.append(fmt_picker_span);n”, ” this.format_dropdown = fmt_picker[0];n”, “n”, ” for (var ind in mpl.extensions) {n”, ” var fmt = mpl.extensions[ind];n”, ” var option = $(n”, ” ‘<option/>’, {selected: fmt === mpl.default_extension}).html(fmt);n”, ” fmt_picker.append(option);n”, ” }n”, “n”, ” // Add hover states to the ui-buttonsn”, ” $( “.ui-button” ).hover(n”, ” function() { $(this).addClass(“ui-state-hover”);},n”, ” function() { $(this).removeClass(“ui-state-hover”);}n”, ” );n”, “n”, ” var status_bar = $(‘<span class=”mpl-message”/>’);n”, ” nav_element.append(status_bar);n”, ” this.message = status_bar[0];n”, “}n”, “n”, “mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {n”, ” // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,n”, ” // which will in turn request a refresh of the image.n”, ” this.send_message(‘resize’, {‘width’: x_pixels, ‘height’: y_pixels});n”, “}n”, “n”, “mpl.figure.prototype.send_message = function(type, properties) {n”, ” properties[‘type’] = type;n”, ” properties[‘figure_id’] = this.id;n”, ” this.ws.send(JSON.stringify(properties));n”, “}n”, “n”, “mpl.figure.prototype.send_draw_message = function() {n”, ” if (!this.waiting) {n”, ” this.waiting = true;n”, ” this.ws.send(JSON.stringify({type: “draw”, figure_id: this.id}));n”, ” }n”, “}n”, “n”, “n”, “mpl.figure.prototype.handle_save = function(fig, msg) {n”, ” var format_dropdown = fig.format_dropdown;n”, ” var format = format_dropdown.options[format_dropdown.selectedIndex].value;n”, ” fig.ondownload(fig, format);n”, “}n”, “n”, “n”, “mpl.figure.prototype.handle_resize = function(fig, msg) {n”, ” var size = msg[‘size’];n”, ” if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {n”, ” fig._resize_canvas(size[0], size[1]);n”, ” fig.send_message(“refresh”, {});n”, ” };n”, “}n”, “n”, “mpl.figure.prototype.handle_rubberband = function(fig, msg) {n”, ” var x0 = msg[‘x0’] / mpl.ratio;n”, ” var y0 = (fig.canvas.height - msg[‘y0’]) / mpl.ratio;n”, ” var x1 = msg[‘x1’] / mpl.ratio;n”, ” var y1 = (fig.canvas.height - msg[‘y1’]) / mpl.ratio;n”, ” x0 = Math.floor(x0) + 0.5;n”, ” y0 = Math.floor(y0) + 0.5;n”, ” x1 = Math.floor(x1) + 0.5;n”, ” y1 = Math.floor(y1) + 0.5;n”, ” var min_x = Math.min(x0, x1);n”, ” var min_y = Math.min(y0, y1);n”, ” var width = Math.abs(x1 - x0);n”, ” var height = Math.abs(y1 - y0);n”, “n”, ” fig.rubberband_context.clearRect(n”, ” 0, 0, fig.canvas.width / mpl.ratio, fig.canvas.height / mpl.ratio);n”, “n”, ” fig.rubberband_context.strokeRect(min_x, min_y, width, height);n”, “}n”, “n”, “mpl.figure.prototype.handle_figure_label = function(fig, msg) {n”, ” // Updates the figure title.n”, ” fig.header.textContent = msg[‘label’];n”, “}n”, “n”, “mpl.figure.prototype.handle_cursor = function(fig, msg) {n”, ” var cursor = msg[‘cursor’];n”, ” switch(cursor)n”, ” {n”, ” case 0:n”, ” cursor = ‘pointer’;n”, ” break;n”, ” case 1:n”, ” cursor = ‘default’;n”, ” break;n”, ” case 2:n”, ” cursor = ‘crosshair’;n”, ” break;n”, ” case 3:n”, ” cursor = ‘move’;n”, ” break;n”, ” }n”, ” fig.rubberband_canvas.style.cursor = cursor;n”, “}n”, “n”, “mpl.figure.prototype.handle_message = function(fig, msg) {n”, ” fig.message.textContent = msg[‘message’];n”, “}n”, “n”, “mpl.figure.prototype.handle_draw = function(fig, msg) {n”, ” // Request the server to send over a new figure.n”, ” fig.send_draw_message();n”, “}n”, “n”, “mpl.figure.prototype.handle_image_mode = function(fig, msg) {n”, ” fig.image_mode = msg[‘mode’];n”, “}n”, “n”, “mpl.figure.prototype.updated_canvas_event = function() {n”, ” // Called whenever the canvas gets updated.n”, ” this.send_message(“ack”, {});n”, “}n”, “n”, “// A function to construct a web socket function for onmessage handling.n”, “// Called in the figure constructor.n”, “mpl.figure.prototype._make_on_message_function = function(fig) {n”, ” return function socket_on_message(evt) {n”, ” if (evt.data instanceof Blob) {n”, ” / FIXME: We get “Resource interpreted as Image butn”, ” * transferred with MIME type text/plain:” errors onn”, ” * Chrome. But how to set the MIME type? It doesn’t seemn”, ” * to be part of the websocket stream /n”, ” evt.data.type = “image/png”;n”, “n”, ” / Free the memory for the previous frames /n”, ” if (fig.imageObj.src) {n”, ” (window.URL || window.webkitURL).revokeObjectURL(n”, ” fig.imageObj.src);n”, ” }n”, “n”, ” fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(n”, ” evt.data);n”, ” fig.updated_canvas_event();n”, ” fig.waiting = false;n”, ” return;n”, ” }n”, ” else if (typeof evt.data === ‘string’ && evt.data.slice(0, 21) == “data:image/png;base64”) {n”, ” fig.imageObj.src = evt.data;n”, ” fig.updated_canvas_event();n”, ” fig.waiting = false;n”, ” return;n”, ” }n”, “n”, ” var msg = JSON.parse(evt.data);n”, ” var msg_type = msg[‘type’];n”, “n”, ” // Call the “handle_{type}” callback, which takesn”, ” // the figure and JSON message as its only arguments.n”, ” try {n”, ” var callback = fig[“handle_” + msg_type];n”, ” } catch (e) {n”, ” console.log(“No handler for the ‘” + msg_type + “’ message type: “, msg);n”, ” return;n”, ” }n”, “n”, ” if (callback) {n”, ” try {n”, ” // console.log(“Handling ‘” + msg_type + “’ message: “, msg);n”, ” callback(fig, msg);n”, ” } catch (e) {n”, ” console.log(“Exception inside the ‘handler_” + msg_type + “’ callback:”, e, e.stack, msg);n”, ” }n”, ” }n”, ” };n”, “}n”, “n”, “// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvasn”, “mpl.findpos = function(e) {n”, ” //this section is from http://www.quirksmode.org/js/events_properties.htmln”, ” 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 bugn”, ” targ = targ.parentNode;n”, “n”, ” // jQuery normalizes the pageX and pageYn”, ” // pageX,Y are the mouse positions relative to the documentn”, ” // offset() returns the position of the element relative to the documentn”, ” 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 keysn”, ” * we need this to avoid circular referencesn”, ” * http://stackoverflow.com/a/24161582/3208463n”, ” /n”, “function simpleKeys (original) {n”, ” return Object.keys(original).reduce(function (obj, key) {n”, ” if (typeof original[key] !== ‘object’)n”, ” obj[key] = original[key]n”, ” return obj;n”, ” }, {});n”, “}n”, “n”, “mpl.figure.prototype.mouse_event = function(event, name) {n”, ” var canvas_pos = mpl.findpos(event)n”, “n”, ” if (name === ‘button_press’)n”, ” {n”, ” this.canvas.focus();n”, ” this.canvas_div.focus();n”, ” }n”, “n”, ” var x = canvas_pos.x * mpl.ratio;n”, ” var y = canvas_pos.y * mpl.ratio;n”, “n”, ” this.send_message(name, {x: x, y: y, button: event.button,n”, ” step: event.step,n”, ” guiEvent: simpleKeys(event)});n”, “n”, ” / This prevents the web browser from automatically changing ton”, ” * the text insertion cursor when the button is pressed. We wantn”, ” * to control all of the cursor setting manually through then”, ” * ‘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 eventn”, “}n”, “n”, “mpl.figure.prototype.key_event = function(event, name) {n”, “n”, ” // Prevent repeat eventsn”, ” if (name == ‘key_press’)n”, ” {n”, ” if (event.which === this._key)n”, ” return;n”, ” elsen”, ” 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 commn”, ” // object with the appropriate methods. Currently this is a non binaryn”, ” // 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 overridden (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 processn”, ” // 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 Commn”, ” // 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 realn”, ” // 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.ration”, ” 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.ration”, ” var dataURL = this.canvas.toDataURL();n”, ” this.cell_info[1][‘text/html’] = ‘<img src=”’ + dataURL + ‘” width=”’ + width + ‘”>’;n”, “}n”, “n”, “mpl.figure.prototype.updated_canvas_event = function() {n”, ” // Tell IPython that the notebook contents must change.n”, ” IPython.notebook.set_dirty(true);n”, ” this.send_message(“ack”, {});n”, ” var fig = this;n”, ” // Wait a second, then push the new image to the DOM son”, ” // 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 = thisn”, ” 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 ‘focusablen”, ” el.attr(‘tabindex’, 0)n”, ” // reach out to IPython and tell the keyboard manager to turn it’s selfn”, ” // off when our div gets focusn”, “n”, ” // location in version 3n”, ” if (IPython.notebook.keyboard_manager) {n”, ” IPython.notebook.keyboard_manager.register_events(el);n”, ” }n”, ” else {n”, ” // location in version 2n”, ” 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+entern”, ” if (event.shiftKey && event.which == 13) {n”, ” this.canvas_div.blur();n”, ” event.shiftKey = false;n”, ” // Send a “J” for go to next celln”, ” 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 forn”, ” // 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 outputn”, ” data = data.data;n”, ” }n”, ” if (data[‘text/html’] == html_output) {n”, ” return [cell, data, j];n”, ” }n”, ” }n”, ” }n”, ” }n”, “}n”, “n”, “// Register the function which deals with the matplotlib target/channel.n”, “// The kernel may be null if the page has been refreshed.n”, “if (IPython.notebook.kernel != null) {n”, ” IPython.notebook.kernel.comm_manager.register_target(‘matplotlib’, mpl.mpl_figure_comm);n”, “}n”

], “text/plain”: [

“<IPython.core.display.Javascript object>”

]

}, “metadata”: {}, “output_type”: “display_data”

}, {

“data”: {
“text/html”: [
“<img src=”data:image/png;base64,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” width=”864”>”

], “text/plain”: [

“<IPython.core.display.HTML object>”

]

}, “metadata”: {}, “output_type”: “display_data”

}

], “source”: [

“sensors_to_plot = [611, 977, 1772, 4150]n”, “timestamps = processed.Spike_Explorer.get_spike_timestamps_at_sensors(sensors_to_plot)n”, “plt.figure(figsize=(12,5))n”, “_ = plt.eventplot(timestamps.values(), linelengths=0.8, colors=’k’)n”, “_ = plt.xlabel(‘Time (microsecond)’)n”, “_ = plt.ylabel(‘Sensor IDs’)n”, “_ = plt.yticks(labels=[str(s) for s in timestamps.keys()], ticks=range(len(sensors_to_plot)))n”, “_ = plt.title(‘Raster plot of spike timestamps’)”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“#### Spike Countsn”, “n”, “Another option is to plot the spike counts for all sensors… the lighter, the more spikes were detected on the sensor:”

]

}, {

“cell_type”: “code”, “execution_count”: 27, “metadata”: {}, “outputs”: [

{
“data”: {
“application/javascript”: [
“/* Put everything inside the global mpl namespace /n”, “window.mpl = {};n”, “n”, “n”, “mpl.get_websocket_type = function() {n”, ” if (typeof(WebSocket) !== ‘undefined’) {n”, ” return WebSocket;n”, ” } else if (typeof(MozWebSocket) !== ‘undefined’) {n”, ” return MozWebSocket;n”, ” } else {n”, ” alert(‘Your browser does not have WebSocket support. ‘ +n”, ” ‘Please try Chrome, Safari or Firefox ≥ 6. ‘ +n”, ” ‘Firefox 4 and 5 are also supported but you ‘ +n”, ” ‘have to enable WebSockets in about:config.’);n”, ” };n”, “}n”, “n”, “mpl.figure = function(figure_id, websocket, ondownload, parent_element) {n”, ” this.id = figure_id;n”, “n”, ” this.ws = websocket;n”, “n”, ” this.supports_binary = (this.ws.binaryType != undefined);n”, “n”, ” if (!this.supports_binary) {n”, ” var warnings = document.getElementById(“mpl-warnings”);n”, ” if (warnings) {n”, ” warnings.style.display = ‘block’;n”, ” warnings.textContent = (n”, ” “This browser does not support binary websocket messages. ” +n”, ” “Performance may be slow.”);n”, ” }n”, ” }n”, “n”, ” this.imageObj = new Image();n”, “n”, ” this.context = undefined;n”, ” this.message = undefined;n”, ” this.canvas = undefined;n”, ” this.rubberband_canvas = undefined;n”, ” this.rubberband_context = undefined;n”, ” this.format_dropdown = undefined;n”, “n”, ” this.image_mode = ‘full’;n”, “n”, ” this.root = $(‘<div/>’);n”, ” this._root_extra_style(this.root)n”, ” this.root.attr(‘style’, ‘display: inline-block’);n”, “n”, ” $(parent_element).append(this.root);n”, “n”, ” this._init_header(this);n”, ” this._init_canvas(this);n”, ” this._init_toolbar(this);n”, “n”, ” var fig = this;n”, “n”, ” this.waiting = false;n”, “n”, ” this.ws.onopen = function () {n”, ” fig.send_message(“supports_binary”, {value: fig.supports_binary});n”, ” fig.send_message(“send_image_mode”, {});n”, ” if (mpl.ratio != 1) {n”, ” fig.send_message(“set_dpi_ratio”, {‘dpi_ratio’: mpl.ratio});n”, ” }n”, ” fig.send_message(“refresh”, {});n”, ” }n”, “n”, ” this.imageObj.onload = function() {n”, ” if (fig.image_mode == ‘full’) {n”, ” // Full images could contain transparency (where diff imagesn”, ” // almost always do), so we need to clear the canvas so thatn”, ” // there is no ghosting.n”, ” fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);n”, ” }n”, ” fig.context.drawImage(fig.imageObj, 0, 0);n”, ” };n”, “n”, ” this.imageObj.onunload = function() {n”, ” fig.ws.close();n”, ” }n”, “n”, ” this.ws.onmessage = this._make_on_message_function(this);n”, “n”, ” this.ondownload = ondownload;n”, “}n”, “n”, “mpl.figure.prototype._init_header = function() {n”, ” var titlebar = $(n”, ” ‘<div class=”ui-dialog-titlebar ui-widget-header ui-corner-all ‘ +n”, ” ‘ui-helper-clearfix”/>’);n”, ” var titletext = $(n”, ” ‘<div class=”ui-dialog-title” style=”width: 100%; ‘ +n”, ” ‘text-align: center; padding: 3px;”/>’);n”, ” titlebar.append(titletext)n”, ” this.root.append(titlebar);n”, ” this.header = titletext[0];n”, “}n”, “n”, “n”, “n”, “mpl.figure.prototype._canvas_extra_style = function(canvas_div) {n”, “n”, “}n”, “n”, “n”, “mpl.figure.prototype._root_extra_style = function(canvas_div) {n”, “n”, “}n”, “n”, “mpl.figure.prototype._init_canvas = function() {n”, ” var fig = this;n”, “n”, ” var canvas_div = $(‘<div/>’);n”, “n”, ” canvas_div.attr(‘style’, ‘position: relative; clear: both; outline: 0’);n”, “n”, ” function canvas_keyboard_event(event) {n”, ” return fig.key_event(event, event[‘data’]);n”, ” }n”, “n”, ” canvas_div.keydown(‘key_press’, canvas_keyboard_event);n”, ” canvas_div.keyup(‘key_release’, canvas_keyboard_event);n”, ” this.canvas_div = canvas_divn”, ” this._canvas_extra_style(canvas_div)n”, ” this.root.append(canvas_div);n”, “n”, ” var canvas = $(‘<canvas/>’);n”, ” canvas.addClass(‘mpl-canvas’);n”, ” canvas.attr(‘style’, “left: 0; top: 0; z-index: 0; outline: 0”)n”, “n”, ” this.canvas = canvas[0];n”, ” this.context = canvas[0].getContext(“2d”);n”, “n”, ” var backingStore = this.context.backingStorePixelRatio ||n”, “tthis.context.webkitBackingStorePixelRatio ||n”, “tthis.context.mozBackingStorePixelRatio ||n”, “tthis.context.msBackingStorePixelRatio ||n”, “tthis.context.oBackingStorePixelRatio ||n”, “tthis.context.backingStorePixelRatio || 1;n”, “n”, ” mpl.ratio = (window.devicePixelRatio || 1) / backingStore;n”, “n”, ” var rubberband = $(‘<canvas/>’);n”, ” rubberband.attr(‘style’, “position: absolute; left: 0; top: 0; z-index: 1;”)n”, “n”, ” var pass_mouse_events = true;n”, “n”, ” canvas_div.resizable({n”, ” start: function(event, ui) {n”, ” pass_mouse_events = false;n”, ” },n”, ” resize: function(event, ui) {n”, ” fig.request_resize(ui.size.width, ui.size.height);n”, ” },n”, ” stop: function(event, ui) {n”, ” pass_mouse_events = true;n”, ” fig.request_resize(ui.size.width, ui.size.height);n”, ” },n”, ” });n”, “n”, ” function mouse_event_fn(event) {n”, ” if (pass_mouse_events)n”, ” return fig.mouse_event(event, event[‘data’]);n”, ” }n”, “n”, ” rubberband.mousedown(‘button_press’, mouse_event_fn);n”, ” rubberband.mouseup(‘button_release’, mouse_event_fn);n”, ” // Throttle sequential mouse events to 1 every 20ms.n”, ” rubberband.mousemove(‘motion_notify’, mouse_event_fn);n”, “n”, ” rubberband.mouseenter(‘figure_enter’, mouse_event_fn);n”, ” rubberband.mouseleave(‘figure_leave’, mouse_event_fn);n”, “n”, ” canvas_div.on(“wheel”, function (event) {n”, ” event = event.originalEvent;n”, ” event[‘data’] = ‘scroll’n”, ” if (event.deltaY < 0) {n”, ” event.step = 1;n”, ” } else {n”, ” event.step = -1;n”, ” }n”, ” mouse_event_fn(event);n”, ” });n”, “n”, ” canvas_div.append(canvas);n”, ” canvas_div.append(rubberband);n”, “n”, ” this.rubberband = rubberband;n”, ” this.rubberband_canvas = rubberband[0];n”, ” this.rubberband_context = rubberband[0].getContext(“2d”);n”, ” this.rubberband_context.strokeStyle = “#000000”;n”, “n”, ” this._resize_canvas = function(width, height) {n”, ” // Keep the size of the canvas, canvas container, and rubber bandn”, ” // canvas in synch.n”, ” canvas_div.css(‘width’, width)n”, ” canvas_div.css(‘height’, height)n”, “n”, ” canvas.attr(‘width’, width * mpl.ratio);n”, ” canvas.attr(‘height’, height * mpl.ratio);n”, ” canvas.attr(‘style’, ‘width: ‘ + width + ‘px; height: ‘ + height + ‘px;’);n”, “n”, ” rubberband.attr(‘width’, width);n”, ” rubberband.attr(‘height’, height);n”, ” }n”, “n”, ” // Set the figure to an initial 600x600px, this will subsequently be updatedn”, ” // upon first draw.n”, ” this._resize_canvas(600, 600);n”, “n”, ” // Disable right mouse context menu.n”, ” $(this.rubberband_canvas).bind(“contextmenu”,function(e){n”, ” return false;n”, ” });n”, “n”, ” function set_focus () {n”, ” canvas.focus();n”, ” canvas_div.focus();n”, ” }n”, “n”, ” window.setTimeout(set_focus, 100);n”, “}n”, “n”, “mpl.figure.prototype._init_toolbar = function() {n”, ” var fig = this;n”, “n”, ” var nav_element = $(‘<div/>’);n”, ” nav_element.attr(‘style’, ‘width: 100%’);n”, ” this.root.append(nav_element);n”, “n”, ” // Define a callback function for later on.n”, ” function toolbar_event(event) {n”, ” return fig.toolbar_button_onclick(event[‘data’]);n”, ” }n”, ” function toolbar_mouse_event(event) {n”, ” return fig.toolbar_button_onmouseover(event[‘data’]);n”, ” }n”, “n”, ” for(var toolbar_ind in mpl.toolbar_items) {n”, ” var name = mpl.toolbar_items[toolbar_ind][0];n”, ” var tooltip = mpl.toolbar_items[toolbar_ind][1];n”, ” var image = mpl.toolbar_items[toolbar_ind][2];n”, ” var method_name = mpl.toolbar_items[toolbar_ind][3];n”, “n”, ” if (!name) {n”, ” // put a spacer in here.n”, ” continue;n”, ” }n”, ” var button = $(‘<button/>’);n”, ” button.addClass(‘ui-button ui-widget ui-state-default ui-corner-all ‘ +n”, ” ‘ui-button-icon-only’);n”, ” button.attr(‘role’, ‘button’);n”, ” button.attr(‘aria-disabled’, ‘false’);n”, ” button.click(method_name, toolbar_event);n”, ” button.mouseover(tooltip, toolbar_mouse_event);n”, “n”, ” var icon_img = $(‘<span/>’);n”, ” icon_img.addClass(‘ui-button-icon-primary ui-icon’);n”, ” icon_img.addClass(image);n”, ” icon_img.addClass(‘ui-corner-all’);n”, “n”, ” var tooltip_span = $(‘<span/>’);n”, ” tooltip_span.addClass(‘ui-button-text’);n”, ” tooltip_span.html(tooltip);n”, “n”, ” button.append(icon_img);n”, ” button.append(tooltip_span);n”, “n”, ” nav_element.append(button);n”, ” }n”, “n”, ” var fmt_picker_span = $(‘<span/>’);n”, “n”, ” var fmt_picker = $(‘<select/>’);n”, ” fmt_picker.addClass(‘mpl-toolbar-option ui-widget ui-widget-content’);n”, ” fmt_picker_span.append(fmt_picker);n”, ” nav_element.append(fmt_picker_span);n”, ” this.format_dropdown = fmt_picker[0];n”, “n”, ” for (var ind in mpl.extensions) {n”, ” var fmt = mpl.extensions[ind];n”, ” var option = $(n”, ” ‘<option/>’, {selected: fmt === mpl.default_extension}).html(fmt);n”, ” fmt_picker.append(option);n”, ” }n”, “n”, ” // Add hover states to the ui-buttonsn”, ” $( “.ui-button” ).hover(n”, ” function() { $(this).addClass(“ui-state-hover”);},n”, ” function() { $(this).removeClass(“ui-state-hover”);}n”, ” );n”, “n”, ” var status_bar = $(‘<span class=”mpl-message”/>’);n”, ” nav_element.append(status_bar);n”, ” this.message = status_bar[0];n”, “}n”, “n”, “mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {n”, ” // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,n”, ” // which will in turn request a refresh of the image.n”, ” this.send_message(‘resize’, {‘width’: x_pixels, ‘height’: y_pixels});n”, “}n”, “n”, “mpl.figure.prototype.send_message = function(type, properties) {n”, ” properties[‘type’] = type;n”, ” properties[‘figure_id’] = this.id;n”, ” this.ws.send(JSON.stringify(properties));n”, “}n”, “n”, “mpl.figure.prototype.send_draw_message = function() {n”, ” if (!this.waiting) {n”, ” this.waiting = true;n”, ” this.ws.send(JSON.stringify({type: “draw”, figure_id: this.id}));n”, ” }n”, “}n”, “n”, “n”, “mpl.figure.prototype.handle_save = function(fig, msg) {n”, ” var format_dropdown = fig.format_dropdown;n”, ” var format = format_dropdown.options[format_dropdown.selectedIndex].value;n”, ” fig.ondownload(fig, format);n”, “}n”, “n”, “n”, “mpl.figure.prototype.handle_resize = function(fig, msg) {n”, ” var size = msg[‘size’];n”, ” if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {n”, ” fig._resize_canvas(size[0], size[1]);n”, ” fig.send_message(“refresh”, {});n”, ” };n”, “}n”, “n”, “mpl.figure.prototype.handle_rubberband = function(fig, msg) {n”, ” var x0 = msg[‘x0’] / mpl.ratio;n”, ” var y0 = (fig.canvas.height - msg[‘y0’]) / mpl.ratio;n”, ” var x1 = msg[‘x1’] / mpl.ratio;n”, ” var y1 = (fig.canvas.height - msg[‘y1’]) / mpl.ratio;n”, ” x0 = Math.floor(x0) + 0.5;n”, ” y0 = Math.floor(y0) + 0.5;n”, ” x1 = Math.floor(x1) + 0.5;n”, ” y1 = Math.floor(y1) + 0.5;n”, ” var min_x = Math.min(x0, x1);n”, ” var min_y = Math.min(y0, y1);n”, ” var width = Math.abs(x1 - x0);n”, ” var height = Math.abs(y1 - y0);n”, “n”, ” fig.rubberband_context.clearRect(n”, ” 0, 0, fig.canvas.width / mpl.ratio, fig.canvas.height / mpl.ratio);n”, “n”, ” fig.rubberband_context.strokeRect(min_x, min_y, width, height);n”, “}n”, “n”, “mpl.figure.prototype.handle_figure_label = function(fig, msg) {n”, ” // Updates the figure title.n”, ” fig.header.textContent = msg[‘label’];n”, “}n”, “n”, “mpl.figure.prototype.handle_cursor = function(fig, msg) {n”, ” var cursor = msg[‘cursor’];n”, ” switch(cursor)n”, ” {n”, ” case 0:n”, ” cursor = ‘pointer’;n”, ” break;n”, ” case 1:n”, ” cursor = ‘default’;n”, ” break;n”, ” case 2:n”, ” cursor = ‘crosshair’;n”, ” break;n”, ” case 3:n”, ” cursor = ‘move’;n”, ” break;n”, ” }n”, ” fig.rubberband_canvas.style.cursor = cursor;n”, “}n”, “n”, “mpl.figure.prototype.handle_message = function(fig, msg) {n”, ” fig.message.textContent = msg[‘message’];n”, “}n”, “n”, “mpl.figure.prototype.handle_draw = function(fig, msg) {n”, ” // Request the server to send over a new figure.n”, ” fig.send_draw_message();n”, “}n”, “n”, “mpl.figure.prototype.handle_image_mode = function(fig, msg) {n”, ” fig.image_mode = msg[‘mode’];n”, “}n”, “n”, “mpl.figure.prototype.updated_canvas_event = function() {n”, ” // Called whenever the canvas gets updated.n”, ” this.send_message(“ack”, {});n”, “}n”, “n”, “// A function to construct a web socket function for onmessage handling.n”, “// Called in the figure constructor.n”, “mpl.figure.prototype._make_on_message_function = function(fig) {n”, ” return function socket_on_message(evt) {n”, ” if (evt.data instanceof Blob) {n”, ” / FIXME: We get “Resource interpreted as Image butn”, ” * transferred with MIME type text/plain:” errors onn”, ” * Chrome. But how to set the MIME type? It doesn’t seemn”, ” * to be part of the websocket stream /n”, ” evt.data.type = “image/png”;n”, “n”, ” / Free the memory for the previous frames /n”, ” if (fig.imageObj.src) {n”, ” (window.URL || window.webkitURL).revokeObjectURL(n”, ” fig.imageObj.src);n”, ” }n”, “n”, ” fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(n”, ” evt.data);n”, ” fig.updated_canvas_event();n”, ” fig.waiting = false;n”, ” return;n”, ” }n”, ” else if (typeof evt.data === ‘string’ && evt.data.slice(0, 21) == “data:image/png;base64”) {n”, ” fig.imageObj.src = evt.data;n”, ” fig.updated_canvas_event();n”, ” fig.waiting = false;n”, ” return;n”, ” }n”, “n”, ” var msg = JSON.parse(evt.data);n”, ” var msg_type = msg[‘type’];n”, “n”, ” // Call the “handle_{type}” callback, which takesn”, ” // the figure and JSON message as its only arguments.n”, ” try {n”, ” var callback = fig[“handle_” + msg_type];n”, ” } catch (e) {n”, ” console.log(“No handler for the ‘” + msg_type + “’ message type: “, msg);n”, ” return;n”, ” }n”, “n”, ” if (callback) {n”, ” try {n”, ” // console.log(“Handling ‘” + msg_type + “’ message: “, msg);n”, ” callback(fig, msg);n”, ” } catch (e) {n”, ” console.log(“Exception inside the ‘handler_” + msg_type + “’ callback:”, e, e.stack, msg);n”, ” }n”, ” }n”, ” };n”, “}n”, “n”, “// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvasn”, “mpl.findpos = function(e) {n”, ” //this section is from http://www.quirksmode.org/js/events_properties.htmln”, ” 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 bugn”, ” targ = targ.parentNode;n”, “n”, ” // jQuery normalizes the pageX and pageYn”, ” // pageX,Y are the mouse positions relative to the documentn”, ” // offset() returns the position of the element relative to the documentn”, ” 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 keysn”, ” * we need this to avoid circular referencesn”, ” * http://stackoverflow.com/a/24161582/3208463n”, ” /n”, “function simpleKeys (original) {n”, ” return Object.keys(original).reduce(function (obj, key) {n”, ” if (typeof original[key] !== ‘object’)n”, ” obj[key] = original[key]n”, ” return obj;n”, ” }, {});n”, “}n”, “n”, “mpl.figure.prototype.mouse_event = function(event, name) {n”, ” var canvas_pos = mpl.findpos(event)n”, “n”, ” if (name === ‘button_press’)n”, ” {n”, ” this.canvas.focus();n”, ” this.canvas_div.focus();n”, ” }n”, “n”, ” var x = canvas_pos.x * mpl.ratio;n”, ” var y = canvas_pos.y * mpl.ratio;n”, “n”, ” this.send_message(name, {x: x, y: y, button: event.button,n”, ” step: event.step,n”, ” guiEvent: simpleKeys(event)});n”, “n”, ” / This prevents the web browser from automatically changing ton”, ” * the text insertion cursor when the button is pressed. We wantn”, ” * to control all of the cursor setting manually through then”, ” * ‘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 eventn”, “}n”, “n”, “mpl.figure.prototype.key_event = function(event, name) {n”, “n”, ” // Prevent repeat eventsn”, ” if (name == ‘key_press’)n”, ” {n”, ” if (event.which === this._key)n”, ” return;n”, ” elsen”, ” 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 commn”, ” // object with the appropriate methods. Currently this is a non binaryn”, ” // 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 overridden (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 processn”, ” // 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 Commn”, ” // 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 realn”, ” // 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.ration”, ” 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.ration”, ” var dataURL = this.canvas.toDataURL();n”, ” this.cell_info[1][‘text/html’] = ‘<img src=”’ + dataURL + ‘” width=”’ + width + ‘”>’;n”, “}n”, “n”, “mpl.figure.prototype.updated_canvas_event = function() {n”, ” // Tell IPython that the notebook contents must change.n”, ” IPython.notebook.set_dirty(true);n”, ” this.send_message(“ack”, {});n”, ” var fig = this;n”, ” // Wait a second, then push the new image to the DOM son”, ” // 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 = thisn”, ” 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 ‘focusablen”, ” el.attr(‘tabindex’, 0)n”, ” // reach out to IPython and tell the keyboard manager to turn it’s selfn”, ” // off when our div gets focusn”, “n”, ” // location in version 3n”, ” if (IPython.notebook.keyboard_manager) {n”, ” IPython.notebook.keyboard_manager.register_events(el);n”, ” }n”, ” else {n”, ” // location in version 2n”, ” 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+entern”, ” if (event.shiftKey && event.which == 13) {n”, ” this.canvas_div.blur();n”, ” event.shiftKey = false;n”, ” // Send a “J” for go to next celln”, ” 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 forn”, ” // 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 outputn”, ” data = data.data;n”, ” }n”, ” if (data[‘text/html’] == html_output) {n”, ” return [cell, data, j];n”, ” }n”, ” }n”, ” }n”, ” }n”, “}n”, “n”, “// Register the function which deals with the matplotlib target/channel.n”, “// The kernel may be null if the page has been refreshed.n”, “if (IPython.notebook.kernel != null) {n”, ” IPython.notebook.kernel.comm_manager.register_target(‘matplotlib’, mpl.mpl_figure_comm);n”, “}n”

], “text/plain”: [

“<IPython.core.display.Javascript object>”

]

}, “metadata”: {}, “output_type”: “display_data”

}, {

“data”: {
“text/html”: [
“<img src=”data:image/png;base64,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” width=”720”>”

], “text/plain”: [

“<IPython.core.display.HTML object>”

]

}, “metadata”: {}, “output_type”: “display_data”

}

], “source”: [

“ids_with_spikes, spike_counts = np.unique(processed.Spike_Explorer.SpikeData[‘SensorID’], return_counts=True)n”, “sensor_counts = np.zeros((65, 65))n”, “for i in range(len(ids_with_spikes)):n”, ” sensor = ids_with_spikes[i]n”, ” count = spike_counts[i]n”, ” row,col = (sensor-1) % 65, (sensor-1) // 65n”, ” sensor_counts[row,col] = countn”, “n”, “plt.figure(figsize=(10,10))n”, “_ = plt.imshow(sensor_counts)n”, “plt.set_cmap(“gray”)n”, “plt.title(‘Spike Counts’)n”, “plt.show()”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“#### Spike Cutoutsn”, “n”, “Finally, we can also check out an overlay of the spike cutouts of a sensor:”

]

}, {

“cell_type”: “code”, “execution_count”: 28, “metadata”: {}, “outputs”: [

{
“data”: {
“application/javascript”: [
“/* Put everything inside the global mpl namespace /n”, “window.mpl = {};n”, “n”, “n”, “mpl.get_websocket_type = function() {n”, ” if (typeof(WebSocket) !== ‘undefined’) {n”, ” return WebSocket;n”, ” } else if (typeof(MozWebSocket) !== ‘undefined’) {n”, ” return MozWebSocket;n”, ” } else {n”, ” alert(‘Your browser does not have WebSocket support. ‘ +n”, ” ‘Please try Chrome, Safari or Firefox ≥ 6. ‘ +n”, ” ‘Firefox 4 and 5 are also supported but you ‘ +n”, ” ‘have to enable WebSockets in about:config.’);n”, ” };n”, “}n”, “n”, “mpl.figure = function(figure_id, websocket, ondownload, parent_element) {n”, ” this.id = figure_id;n”, “n”, ” this.ws = websocket;n”, “n”, ” this.supports_binary = (this.ws.binaryType != undefined);n”, “n”, ” if (!this.supports_binary) {n”, ” var warnings = document.getElementById(“mpl-warnings”);n”, ” if (warnings) {n”, ” warnings.style.display = ‘block’;n”, ” warnings.textContent = (n”, ” “This browser does not support binary websocket messages. ” +n”, ” “Performance may be slow.”);n”, ” }n”, ” }n”, “n”, ” this.imageObj = new Image();n”, “n”, ” this.context = undefined;n”, ” this.message = undefined;n”, ” this.canvas = undefined;n”, ” this.rubberband_canvas = undefined;n”, ” this.rubberband_context = undefined;n”, ” this.format_dropdown = undefined;n”, “n”, ” this.image_mode = ‘full’;n”, “n”, ” this.root = $(‘<div/>’);n”, ” this._root_extra_style(this.root)n”, ” this.root.attr(‘style’, ‘display: inline-block’);n”, “n”, ” $(parent_element).append(this.root);n”, “n”, ” this._init_header(this);n”, ” this._init_canvas(this);n”, ” this._init_toolbar(this);n”, “n”, ” var fig = this;n”, “n”, ” this.waiting = false;n”, “n”, ” this.ws.onopen = function () {n”, ” fig.send_message(“supports_binary”, {value: fig.supports_binary});n”, ” fig.send_message(“send_image_mode”, {});n”, ” if (mpl.ratio != 1) {n”, ” fig.send_message(“set_dpi_ratio”, {‘dpi_ratio’: mpl.ratio});n”, ” }n”, ” fig.send_message(“refresh”, {});n”, ” }n”, “n”, ” this.imageObj.onload = function() {n”, ” if (fig.image_mode == ‘full’) {n”, ” // Full images could contain transparency (where diff imagesn”, ” // almost always do), so we need to clear the canvas so thatn”, ” // there is no ghosting.n”, ” fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);n”, ” }n”, ” fig.context.drawImage(fig.imageObj, 0, 0);n”, ” };n”, “n”, ” this.imageObj.onunload = function() {n”, ” fig.ws.close();n”, ” }n”, “n”, ” this.ws.onmessage = this._make_on_message_function(this);n”, “n”, ” this.ondownload = ondownload;n”, “}n”, “n”, “mpl.figure.prototype._init_header = function() {n”, ” var titlebar = $(n”, ” ‘<div class=”ui-dialog-titlebar ui-widget-header ui-corner-all ‘ +n”, ” ‘ui-helper-clearfix”/>’);n”, ” var titletext = $(n”, ” ‘<div class=”ui-dialog-title” style=”width: 100%; ‘ +n”, ” ‘text-align: center; padding: 3px;”/>’);n”, ” titlebar.append(titletext)n”, ” this.root.append(titlebar);n”, ” this.header = titletext[0];n”, “}n”, “n”, “n”, “n”, “mpl.figure.prototype._canvas_extra_style = function(canvas_div) {n”, “n”, “}n”, “n”, “n”, “mpl.figure.prototype._root_extra_style = function(canvas_div) {n”, “n”, “}n”, “n”, “mpl.figure.prototype._init_canvas = function() {n”, ” var fig = this;n”, “n”, ” var canvas_div = $(‘<div/>’);n”, “n”, ” canvas_div.attr(‘style’, ‘position: relative; clear: both; outline: 0’);n”, “n”, ” function canvas_keyboard_event(event) {n”, ” return fig.key_event(event, event[‘data’]);n”, ” }n”, “n”, ” canvas_div.keydown(‘key_press’, canvas_keyboard_event);n”, ” canvas_div.keyup(‘key_release’, canvas_keyboard_event);n”, ” this.canvas_div = canvas_divn”, ” this._canvas_extra_style(canvas_div)n”, ” this.root.append(canvas_div);n”, “n”, ” var canvas = $(‘<canvas/>’);n”, ” canvas.addClass(‘mpl-canvas’);n”, ” canvas.attr(‘style’, “left: 0; top: 0; z-index: 0; outline: 0”)n”, “n”, ” this.canvas = canvas[0];n”, ” this.context = canvas[0].getContext(“2d”);n”, “n”, ” var backingStore = this.context.backingStorePixelRatio ||n”, “tthis.context.webkitBackingStorePixelRatio ||n”, “tthis.context.mozBackingStorePixelRatio ||n”, “tthis.context.msBackingStorePixelRatio ||n”, “tthis.context.oBackingStorePixelRatio ||n”, “tthis.context.backingStorePixelRatio || 1;n”, “n”, ” mpl.ratio = (window.devicePixelRatio || 1) / backingStore;n”, “n”, ” var rubberband = $(‘<canvas/>’);n”, ” rubberband.attr(‘style’, “position: absolute; left: 0; top: 0; z-index: 1;”)n”, “n”, ” var pass_mouse_events = true;n”, “n”, ” canvas_div.resizable({n”, ” start: function(event, ui) {n”, ” pass_mouse_events = false;n”, ” },n”, ” resize: function(event, ui) {n”, ” fig.request_resize(ui.size.width, ui.size.height);n”, ” },n”, ” stop: function(event, ui) {n”, ” pass_mouse_events = true;n”, ” fig.request_resize(ui.size.width, ui.size.height);n”, ” },n”, ” });n”, “n”, ” function mouse_event_fn(event) {n”, ” if (pass_mouse_events)n”, ” return fig.mouse_event(event, event[‘data’]);n”, ” }n”, “n”, ” rubberband.mousedown(‘button_press’, mouse_event_fn);n”, ” rubberband.mouseup(‘button_release’, mouse_event_fn);n”, ” // Throttle sequential mouse events to 1 every 20ms.n”, ” rubberband.mousemove(‘motion_notify’, mouse_event_fn);n”, “n”, ” rubberband.mouseenter(‘figure_enter’, mouse_event_fn);n”, ” rubberband.mouseleave(‘figure_leave’, mouse_event_fn);n”, “n”, ” canvas_div.on(“wheel”, function (event) {n”, ” event = event.originalEvent;n”, ” event[‘data’] = ‘scroll’n”, ” if (event.deltaY < 0) {n”, ” event.step = 1;n”, ” } else {n”, ” event.step = -1;n”, ” }n”, ” mouse_event_fn(event);n”, ” });n”, “n”, ” canvas_div.append(canvas);n”, ” canvas_div.append(rubberband);n”, “n”, ” this.rubberband = rubberband;n”, ” this.rubberband_canvas = rubberband[0];n”, ” this.rubberband_context = rubberband[0].getContext(“2d”);n”, ” this.rubberband_context.strokeStyle = “#000000”;n”, “n”, ” this._resize_canvas = function(width, height) {n”, ” // Keep the size of the canvas, canvas container, and rubber bandn”, ” // canvas in synch.n”, ” canvas_div.css(‘width’, width)n”, ” canvas_div.css(‘height’, height)n”, “n”, ” canvas.attr(‘width’, width * mpl.ratio);n”, ” canvas.attr(‘height’, height * mpl.ratio);n”, ” canvas.attr(‘style’, ‘width: ‘ + width + ‘px; height: ‘ + height + ‘px;’);n”, “n”, ” rubberband.attr(‘width’, width);n”, ” rubberband.attr(‘height’, height);n”, ” }n”, “n”, ” // Set the figure to an initial 600x600px, this will subsequently be updatedn”, ” // upon first draw.n”, ” this._resize_canvas(600, 600);n”, “n”, ” // Disable right mouse context menu.n”, ” $(this.rubberband_canvas).bind(“contextmenu”,function(e){n”, ” return false;n”, ” });n”, “n”, ” function set_focus () {n”, ” canvas.focus();n”, ” canvas_div.focus();n”, ” }n”, “n”, ” window.setTimeout(set_focus, 100);n”, “}n”, “n”, “mpl.figure.prototype._init_toolbar = function() {n”, ” var fig = this;n”, “n”, ” var nav_element = $(‘<div/>’);n”, ” nav_element.attr(‘style’, ‘width: 100%’);n”, ” this.root.append(nav_element);n”, “n”, ” // Define a callback function for later on.n”, ” function toolbar_event(event) {n”, ” return fig.toolbar_button_onclick(event[‘data’]);n”, ” }n”, ” function toolbar_mouse_event(event) {n”, ” return fig.toolbar_button_onmouseover(event[‘data’]);n”, ” }n”, “n”, ” for(var toolbar_ind in mpl.toolbar_items) {n”, ” var name = mpl.toolbar_items[toolbar_ind][0];n”, ” var tooltip = mpl.toolbar_items[toolbar_ind][1];n”, ” var image = mpl.toolbar_items[toolbar_ind][2];n”, ” var method_name = mpl.toolbar_items[toolbar_ind][3];n”, “n”, ” if (!name) {n”, ” // put a spacer in here.n”, ” continue;n”, ” }n”, ” var button = $(‘<button/>’);n”, ” button.addClass(‘ui-button ui-widget ui-state-default ui-corner-all ‘ +n”, ” ‘ui-button-icon-only’);n”, ” button.attr(‘role’, ‘button’);n”, ” button.attr(‘aria-disabled’, ‘false’);n”, ” button.click(method_name, toolbar_event);n”, ” button.mouseover(tooltip, toolbar_mouse_event);n”, “n”, ” var icon_img = $(‘<span/>’);n”, ” icon_img.addClass(‘ui-button-icon-primary ui-icon’);n”, ” icon_img.addClass(image);n”, ” icon_img.addClass(‘ui-corner-all’);n”, “n”, ” var tooltip_span = $(‘<span/>’);n”, ” tooltip_span.addClass(‘ui-button-text’);n”, ” tooltip_span.html(tooltip);n”, “n”, ” button.append(icon_img);n”, ” button.append(tooltip_span);n”, “n”, ” nav_element.append(button);n”, ” }n”, “n”, ” var fmt_picker_span = $(‘<span/>’);n”, “n”, ” var fmt_picker = $(‘<select/>’);n”, ” fmt_picker.addClass(‘mpl-toolbar-option ui-widget ui-widget-content’);n”, ” fmt_picker_span.append(fmt_picker);n”, ” nav_element.append(fmt_picker_span);n”, ” this.format_dropdown = fmt_picker[0];n”, “n”, ” for (var ind in mpl.extensions) {n”, ” var fmt = mpl.extensions[ind];n”, ” var option = $(n”, ” ‘<option/>’, {selected: fmt === mpl.default_extension}).html(fmt);n”, ” fmt_picker.append(option);n”, ” }n”, “n”, ” // Add hover states to the ui-buttonsn”, ” $( “.ui-button” ).hover(n”, ” function() { $(this).addClass(“ui-state-hover”);},n”, ” function() { $(this).removeClass(“ui-state-hover”);}n”, ” );n”, “n”, ” var status_bar = $(‘<span class=”mpl-message”/>’);n”, ” nav_element.append(status_bar);n”, ” this.message = status_bar[0];n”, “}n”, “n”, “mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {n”, ” // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,n”, ” // which will in turn request a refresh of the image.n”, ” this.send_message(‘resize’, {‘width’: x_pixels, ‘height’: y_pixels});n”, “}n”, “n”, “mpl.figure.prototype.send_message = function(type, properties) {n”, ” properties[‘type’] = type;n”, ” properties[‘figure_id’] = this.id;n”, ” this.ws.send(JSON.stringify(properties));n”, “}n”, “n”, “mpl.figure.prototype.send_draw_message = function() {n”, ” if (!this.waiting) {n”, ” this.waiting = true;n”, ” this.ws.send(JSON.stringify({type: “draw”, figure_id: this.id}));n”, ” }n”, “}n”, “n”, “n”, “mpl.figure.prototype.handle_save = function(fig, msg) {n”, ” var format_dropdown = fig.format_dropdown;n”, ” var format = format_dropdown.options[format_dropdown.selectedIndex].value;n”, ” fig.ondownload(fig, format);n”, “}n”, “n”, “n”, “mpl.figure.prototype.handle_resize = function(fig, msg) {n”, ” var size = msg[‘size’];n”, ” if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {n”, ” fig._resize_canvas(size[0], size[1]);n”, ” fig.send_message(“refresh”, {});n”, ” };n”, “}n”, “n”, “mpl.figure.prototype.handle_rubberband = function(fig, msg) {n”, ” var x0 = msg[‘x0’] / mpl.ratio;n”, ” var y0 = (fig.canvas.height - msg[‘y0’]) / mpl.ratio;n”, ” var x1 = msg[‘x1’] / mpl.ratio;n”, ” var y1 = (fig.canvas.height - msg[‘y1’]) / mpl.ratio;n”, ” x0 = Math.floor(x0) + 0.5;n”, ” y0 = Math.floor(y0) + 0.5;n”, ” x1 = Math.floor(x1) + 0.5;n”, ” y1 = Math.floor(y1) + 0.5;n”, ” var min_x = Math.min(x0, x1);n”, ” var min_y = Math.min(y0, y1);n”, ” var width = Math.abs(x1 - x0);n”, ” var height = Math.abs(y1 - y0);n”, “n”, ” fig.rubberband_context.clearRect(n”, ” 0, 0, fig.canvas.width / mpl.ratio, fig.canvas.height / mpl.ratio);n”, “n”, ” fig.rubberband_context.strokeRect(min_x, min_y, width, height);n”, “}n”, “n”, “mpl.figure.prototype.handle_figure_label = function(fig, msg) {n”, ” // Updates the figure title.n”, ” fig.header.textContent = msg[‘label’];n”, “}n”, “n”, “mpl.figure.prototype.handle_cursor = function(fig, msg) {n”, ” var cursor = msg[‘cursor’];n”, ” switch(cursor)n”, ” {n”, ” case 0:n”, ” cursor = ‘pointer’;n”, ” break;n”, ” case 1:n”, ” cursor = ‘default’;n”, ” break;n”, ” case 2:n”, ” cursor = ‘crosshair’;n”, ” break;n”, ” case 3:n”, ” cursor = ‘move’;n”, ” break;n”, ” }n”, ” fig.rubberband_canvas.style.cursor = cursor;n”, “}n”, “n”, “mpl.figure.prototype.handle_message = function(fig, msg) {n”, ” fig.message.textContent = msg[‘message’];n”, “}n”, “n”, “mpl.figure.prototype.handle_draw = function(fig, msg) {n”, ” // Request the server to send over a new figure.n”, ” fig.send_draw_message();n”, “}n”, “n”, “mpl.figure.prototype.handle_image_mode = function(fig, msg) {n”, ” fig.image_mode = msg[‘mode’];n”, “}n”, “n”, “mpl.figure.prototype.updated_canvas_event = function() {n”, ” // Called whenever the canvas gets updated.n”, ” this.send_message(“ack”, {});n”, “}n”, “n”, “// A function to construct a web socket function for onmessage handling.n”, “// Called in the figure constructor.n”, “mpl.figure.prototype._make_on_message_function = function(fig) {n”, ” return function socket_on_message(evt) {n”, ” if (evt.data instanceof Blob) {n”, ” / FIXME: We get “Resource interpreted as Image butn”, ” * transferred with MIME type text/plain:” errors onn”, ” * Chrome. But how to set the MIME type? It doesn’t seemn”, ” * to be part of the websocket stream /n”, ” evt.data.type = “image/png”;n”, “n”, ” / Free the memory for the previous frames /n”, ” if (fig.imageObj.src) {n”, ” (window.URL || window.webkitURL).revokeObjectURL(n”, ” fig.imageObj.src);n”, ” }n”, “n”, ” fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(n”, ” evt.data);n”, ” fig.updated_canvas_event();n”, ” fig.waiting = false;n”, ” return;n”, ” }n”, ” else if (typeof evt.data === ‘string’ && evt.data.slice(0, 21) == “data:image/png;base64”) {n”, ” fig.imageObj.src = evt.data;n”, ” fig.updated_canvas_event();n”, ” fig.waiting = false;n”, ” return;n”, ” }n”, “n”, ” var msg = JSON.parse(evt.data);n”, ” var msg_type = msg[‘type’];n”, “n”, ” // Call the “handle_{type}” callback, which takesn”, ” // the figure and JSON message as its only arguments.n”, ” try {n”, ” var callback = fig[“handle_” + msg_type];n”, ” } catch (e) {n”, ” console.log(“No handler for the ‘” + msg_type + “’ message type: “, msg);n”, ” return;n”, ” }n”, “n”, ” if (callback) {n”, ” try {n”, ” // console.log(“Handling ‘” + msg_type + “’ message: “, msg);n”, ” callback(fig, msg);n”, ” } catch (e) {n”, ” console.log(“Exception inside the ‘handler_” + msg_type + “’ callback:”, e, e.stack, msg);n”, ” }n”, ” }n”, ” };n”, “}n”, “n”, “// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvasn”, “mpl.findpos = function(e) {n”, ” //this section is from http://www.quirksmode.org/js/events_properties.htmln”, ” 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 bugn”, ” targ = targ.parentNode;n”, “n”, ” // jQuery normalizes the pageX and pageYn”, ” // pageX,Y are the mouse positions relative to the documentn”, ” // offset() returns the position of the element relative to the documentn”, ” 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 keysn”, ” * we need this to avoid circular referencesn”, ” * http://stackoverflow.com/a/24161582/3208463n”, ” /n”, “function simpleKeys (original) {n”, ” return Object.keys(original).reduce(function (obj, key) {n”, ” if (typeof original[key] !== ‘object’)n”, ” obj[key] = original[key]n”, ” return obj;n”, ” }, {});n”, “}n”, “n”, “mpl.figure.prototype.mouse_event = function(event, name) {n”, ” var canvas_pos = mpl.findpos(event)n”, “n”, ” if (name === ‘button_press’)n”, ” {n”, ” this.canvas.focus();n”, ” this.canvas_div.focus();n”, ” }n”, “n”, ” var x = canvas_pos.x * mpl.ratio;n”, ” var y = canvas_pos.y * mpl.ratio;n”, “n”, ” this.send_message(name, {x: x, y: y, button: event.button,n”, ” step: event.step,n”, ” guiEvent: simpleKeys(event)});n”, “n”, ” / This prevents the web browser from automatically changing ton”, ” * the text insertion cursor when the button is pressed. We wantn”, ” * to control all of the cursor setting manually through then”, ” * ‘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 eventn”, “}n”, “n”, “mpl.figure.prototype.key_event = function(event, name) {n”, “n”, ” // Prevent repeat eventsn”, ” if (name == ‘key_press’)n”, ” {n”, ” if (event.which === this._key)n”, ” return;n”, ” elsen”, ” 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 commn”, ” // object with the appropriate methods. Currently this is a non binaryn”, ” // 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 overridden (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 processn”, ” // 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 Commn”, ” // 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 realn”, ” // 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.ration”, ” 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.ration”, ” var dataURL = this.canvas.toDataURL();n”, ” this.cell_info[1][‘text/html’] = ‘<img src=”’ + dataURL + ‘” width=”’ + width + ‘”>’;n”, “}n”, “n”, “mpl.figure.prototype.updated_canvas_event = function() {n”, ” // Tell IPython that the notebook contents must change.n”, ” IPython.notebook.set_dirty(true);n”, ” this.send_message(“ack”, {});n”, ” var fig = this;n”, ” // Wait a second, then push the new image to the DOM son”, ” // 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 = thisn”, ” 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 ‘focusablen”, ” el.attr(‘tabindex’, 0)n”, ” // reach out to IPython and tell the keyboard manager to turn it’s selfn”, ” // off when our div gets focusn”, “n”, ” // location in version 3n”, ” if (IPython.notebook.keyboard_manager) {n”, ” IPython.notebook.keyboard_manager.register_events(el);n”, ” }n”, ” else {n”, ” // location in version 2n”, ” 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+entern”, ” if (event.shiftKey && event.which == 13) {n”, ” this.canvas_div.blur();n”, ” event.shiftKey = false;n”, ” // Send a “J” for go to next celln”, ” 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 forn”, ” // 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 outputn”, ” data = data.data;n”, ” }n”, ” if (data[‘text/html’] == html_output) {n”, ” return [cell, data, j];n”, ” }n”, ” }n”, ” }n”, ” }n”, “}n”, “n”, “// Register the function which deals with the matplotlib target/channel.n”, “// The kernel may be null if the page has been refreshed.n”, “if (IPython.notebook.kernel != null) {n”, ” IPython.notebook.kernel.comm_manager.register_target(‘matplotlib’, mpl.mpl_figure_comm);n”, “}n”

], “text/plain”: [

“<IPython.core.display.Javascript object>”

]

}, “metadata”: {}, “output_type”: “display_data”

}, {

“data”: {
“text/html”: [
“<img src=”data:image/png;base64,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gRAYTiACbAziCLAxXIeVGgE2DG0KDoGlJ2ANr/Od73yT10sY4Uc+8pG60IUuNC263NsnP/nJ+tWvfjWlql9v++UvfzmtCaa8tTIqLj2QVDAEQiAEQmAogQiwMXgjwMZwHVZqBNgwtCk4BJaewGmnnVYXuchF6hKXuMRUV+GG3/rWt6YwwrOe9azTZ7xk5oUJU9xok9RDanvhir/5m7+50e75PgRCIARCYD8jEAE25oZHgI3hOqzUCLBhaFNwCCw1AXO/Tj/99LrkJS85iTDbT37ykzrjjDPqv/23/zZ9bpv1km10QT/60Y/qYx/7WB144IFTGdlCIARCIARCYJZABNiY9hABNobrsFIjwIahTcEhsNQEiC0hh1LPS77R2+c///n6z//8z8kLxovFSzYryDa6qA9+8INTyKK09dlCIARCIARCIAJsfBuIABvPeFvPEAG2rThTWAjsNQSkn//4xz8+JeAwb6s3CTd4wS560YvWxS52sfq3f/u3KUTR/5vZjj/++BKK+KAHPWjNdcM2U072CYEQCIEQ2PcIxAM25p5GgI3hOqzUCLBhaFNwCCw1ge985zslw+FVrnKVOuc5z3mmuspm6HuJN4QUStIhOcdGm0QcL3zhC4sX7S53uUtd8YpX3OiQfB8CIRACIbAfEYgAG3OzI8DGcB1WagTYMLQpOASWmoCU85JuCDWUin52+/GPfzwl37BAMyEmAYe/N9rsywNGwElnf6c73WnNQ372s59NCTt42Q44IK+Ojdjm+xAIgRDYFwhEgI25i3mLjuE6rNQIsGFoU3AILDWBf//3f6+vfOUrdc1rXrN+4zd+49fqyjv2ta99bRJnV73qVevc5z73htfjmNe+9rXTws32v//971/nPe955x7X51f2Oc5xjg3Lzg4hEAIhEAJ7P4EIsDH3MAJsDNdhpUaADUObgkNgqQl8+ctfnjxQBNi8TUbD973vfdP6YDe5yU02FEmyKp566ql1yimnTPsSbze/+c3rete73tzyecks3pyFm5e6maRyIRACIbCtBCLAthXnrsIiwMZwHVZqBNgwtCk4BJaagHla3//+96cQxLU2Auyzn/1s3eEOd5jWAltvI6aELX7iE5+oC1/4wlMiDmGLRx999K41xWaPN7eMyFudhXGpoaVyIRACIRACe0QgAmyP8K15cATYGK5nqapTquorVXXb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71xdHaWnlyExWyKQCCQCiUAisFoIJAFrg3wSsDa4Nus1CVgzaLPjRGAiApJk/OQnPylbbLHFeteKD5N+XgzYySefXAmU2LBuYzF7/vOfX+PAxHjtueee6xJs6JMFTMZDxIyro+tZybIlAolAIpAIJAKrhUASsDbIJwFrg2uzXpOANYM2O04EJiKgWDJL15ZbbrlebBa3RKRJLNixxx5bk3BITd9tUs+L/0KybnOb25Q99tijWrk013JdlNiD2yFXRwU/fSdbIpAIJAKJQCKwWggkAWuDfBKwNrg26zUJWDNos+NEYCICXA25F7KASRXfbZJwXH755eXEE0+siTjU9Oq2u93tbuXQQw+t5IsV7IEPfOC6j/X76U9/utz//vevtb+4OiJj6oNlSwQSgUQgEUgEVguBJGBtkE8C1gbXZr0mAWsGbXacCExE4IYbbqg1vu5xj3uUW97ylutd/53vfKdccMEF5fTTT6+uiNdff/16n7NsHXTQQbVgs2yIkX7eRTIe+u4OO+xQizNzdbz3ve9dbn7zm08cU16QCCQCiUAikAi0QiAJWBtkk4C1wbVZr0nAmkGbHScCExFQA4ybodgstcC6TdbC8847rxKwCy+8sHz3u99d97FU8ttuu23Zf//9a2KNrbbaqtzudrdb9znCxXomAYfEHlwduTmGi+LEgeUFiUAikAgkAolAAwSSgDUAtZSSBKwNrs16TQLWDNrsOBGYCoEvfvGLlXyJ0eo2xElB5ve///3loosuKt/61rfWI2CsW/vss08lVve73/3Ws26JH/vqV79adtppp/LDH/6wxoR164xNNbC8KBFIBBKBRCARmDECScBmDOhCd0nA2uDarNckYM2gzY4TgakQ+PKXv1zjv8Ro9RvXw3e84x3VBVEx5miKMKvvxQIm/kusVxRYlsDjc5/7XK37haRJUe9vm2+++VTjyYsSgUQgEUgEEoFWCCQBa4NsErA2uDbrNQlYM2iz40RgKgSuueaa8vOf/7zGaPXbl770pXLMMceUyy67rKai7xIwRZif/OQnl7vf/e7r1fdCvLgfqi32kIc8pGZQVDPsf//v/z3VePKiRCARSAQSgUSgFQJJwNogmwSsDa7Nek0C1gza7DgRmAoBroXf+973qithv33zm98sr371q8ull15akDFWLtYsFjNFmB/72MeWe93rXuWOd7zj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tHYIECBA4JwCApgBQoAAAQIECBAgQIAAgY0EBLCNoDVDgAABAgQIECBAgAABAcwYIECAAAECBAgQIECAwEYCAthG0JohQIAAAQIECBAgQICAAGYMECBAgAABAgQIECBAYCMBAWwjaM0QIECAAAECBAgQIEBAADMGCBAgQIAAAQIECBAgsJGAALYRtGYIECBAgAABAgQIECAggBkDBAgQIECAAAECBAgQ2EhAANsIWjMECBAgQIAAAQIECBAQwIwBAgQIECBAgAABAgQIbCQggG0ErRkCBAgQIECAAAECBAgIYMYAAQIECBAgQIAAAQIENhIQwDaC1gwBAgQIECBAgAABAgQEMGOAAAECBAgQIECAAAECGwkIYBtBa4YAAQIECBAgQIAAAQICmDFAgAABAgQIECBAgACBjQQEsI2gNUOAAAECBAgQIECAAAEBzBggQIAAAQIECBAgQIDARgIC2EbQmiFAgAABAgQIECBAgIAAZgwQIECAAAECBAgQIEBgIwEBbCNozRAgQIAAAQIECBAgQEAAMwYIECBAgAABAgQIECCwkYAAthG0ZggQIECAAAECBAgQICCAGQMECBAgQIAAAQIECBDYSEAA2whaMwQIECBAgAABAgQIEBDAjAECBAgQIECAAAECBAhsJCCAbQStGQIECBAgQIAAAQIECAhgxgABAgQIECBAgAABAgQ2EhDANoLWDAECBAgQIECAAAECBAQwY4AAAQIECBAgQIAAAQIbCQhgG0FrhgABAgQIECBAgAABAgKYMUCAAAECBAgQIECAAIGNBASwjaA1Q4AAAQIECBAgQIAAAQHMGCBAgAABAgQIECBAgMBGAgLYRtCaIUCAAAECBAgQIECAgABmDBAgQIAAAQIECBAgQGAjAQFsI2jNECBAgAABAgQIECBAQAAzBggQIECAAAECBAgQILCRgAC2EbRmCBAgQIAAAQIECBAgIIAZAwQIECBAgAABAgQIENhI4H8BQIbTvMY8LNcAAAAASUVORK5CYII=” width=”864”>”

], “text/plain”: [

“<IPython.core.display.HTML object>”

]

}, “metadata”: {}, “output_type”: “display_data”

}

], “source”: [

“cutouts = processed.Spike_Explorer.get_spike_cutouts_at_sensor(611)n”, “plt.figure(figsize=(12,8))n”, “_ = plt.plot(np.transpose(cutouts*1e-3), color=’k’, alpha=0.2)n”, “plt.xlabel(‘Samples’)n”, “plt.ylabel(‘Voltage (µV)’)n”, “plt.title(‘Spike Cutout Overlay’)n”, “plt.show()”

]

}, {

“cell_type”: “markdown”, “metadata”: {

“pycharm”: {}

}, “source”: [

“<a href=’#Top’>Back to index</a>”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

“### Network Explorer / STA Explorer<a id=’networkExplorer’></a>n”, “n”, “The Network_Explorer (this tool was called the STA_Explorer in earlier versions) contains datasets with spike-triggered averages. They represent the averaged activation on all sensors on the chip relative to the spiking activity of a single sensor/neuron and can be very useful to detect axonal propagation of spiking activity across the chip. n”, “n”, “The results of either the Spike_Explorer or the Spike_Sorter can serve as input to the Network_Explorer.n”, “n”, “The STA data is a block of data with dimensions samples x sensors_Y x sensors_X and can be visualized as a stack of 2-dimensional frames of a movie. “

]

}, {

“cell_type”: “code”, “execution_count”: 29, “metadata”: {}, “outputs”: [

{
“data”: {
“application/javascript”: [
“/* Put everything inside the global mpl namespace /n”, “window.mpl = {};n”, “n”, “n”, “mpl.get_websocket_type = function() {n”, ” if (typeof(WebSocket) !== ‘undefined’) {n”, ” return WebSocket;n”, ” } else if (typeof(MozWebSocket) !== ‘undefined’) {n”, ” return MozWebSocket;n”, ” } else {n”, ” alert(‘Your browser does not have WebSocket support. ‘ +n”, ” ‘Please try Chrome, Safari or Firefox ≥ 6. ‘ +n”, ” ‘Firefox 4 and 5 are also supported but you ‘ +n”, ” ‘have to enable WebSockets in about:config.’);n”, ” };n”, “}n”, “n”, “mpl.figure = function(figure_id, websocket, ondownload, parent_element) {n”, ” this.id = figure_id;n”, “n”, ” this.ws = websocket;n”, “n”, ” this.supports_binary = (this.ws.binaryType != undefined);n”, “n”, ” if (!this.supports_binary) {n”, ” var warnings = document.getElementById(“mpl-warnings”);n”, ” if (warnings) {n”, ” warnings.style.display = ‘block’;n”, ” warnings.textContent = (n”, ” “This browser does not support binary websocket messages. ” +n”, ” “Performance may be slow.”);n”, ” }n”, ” }n”, “n”, ” this.imageObj = new Image();n”, “n”, ” this.context = undefined;n”, ” this.message = undefined;n”, ” this.canvas = undefined;n”, ” this.rubberband_canvas = undefined;n”, ” this.rubberband_context = undefined;n”, ” this.format_dropdown = undefined;n”, “n”, ” this.image_mode = ‘full’;n”, “n”, ” this.root = $(‘<div/>’);n”, ” this._root_extra_style(this.root)n”, ” this.root.attr(‘style’, ‘display: inline-block’);n”, “n”, ” $(parent_element).append(this.root);n”, “n”, ” this._init_header(this);n”, ” this._init_canvas(this);n”, ” this._init_toolbar(this);n”, “n”, ” var fig = this;n”, “n”, ” this.waiting = false;n”, “n”, ” this.ws.onopen = function () {n”, ” fig.send_message(“supports_binary”, {value: fig.supports_binary});n”, ” fig.send_message(“send_image_mode”, {});n”, ” if (mpl.ratio != 1) {n”, ” fig.send_message(“set_dpi_ratio”, {‘dpi_ratio’: mpl.ratio});n”, ” }n”, ” fig.send_message(“refresh”, {});n”, ” }n”, “n”, ” this.imageObj.onload = function() {n”, ” if (fig.image_mode == ‘full’) {n”, ” // Full images could contain transparency (where diff imagesn”, ” // almost always do), so we need to clear the canvas so thatn”, ” // there is no ghosting.n”, ” fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);n”, ” }n”, ” fig.context.drawImage(fig.imageObj, 0, 0);n”, ” };n”, “n”, ” this.imageObj.onunload = function() {n”, ” fig.ws.close();n”, ” }n”, “n”, ” this.ws.onmessage = this._make_on_message_function(this);n”, “n”, ” this.ondownload = ondownload;n”, “}n”, “n”, “mpl.figure.prototype._init_header = function() {n”, ” var titlebar = $(n”, ” ‘<div class=”ui-dialog-titlebar ui-widget-header ui-corner-all ‘ +n”, ” ‘ui-helper-clearfix”/>’);n”, ” var titletext = $(n”, ” ‘<div class=”ui-dialog-title” style=”width: 100%; ‘ +n”, ” ‘text-align: center; padding: 3px;”/>’);n”, ” titlebar.append(titletext)n”, ” this.root.append(titlebar);n”, ” this.header = titletext[0];n”, “}n”, “n”, “n”, “n”, “mpl.figure.prototype._canvas_extra_style = function(canvas_div) {n”, “n”, “}n”, “n”, “n”, “mpl.figure.prototype._root_extra_style = function(canvas_div) {n”, “n”, “}n”, “n”, “mpl.figure.prototype._init_canvas = function() {n”, ” var fig = this;n”, “n”, ” var canvas_div = $(‘<div/>’);n”, “n”, ” canvas_div.attr(‘style’, ‘position: relative; clear: both; outline: 0’);n”, “n”, ” function canvas_keyboard_event(event) {n”, ” return fig.key_event(event, event[‘data’]);n”, ” }n”, “n”, ” canvas_div.keydown(‘key_press’, canvas_keyboard_event);n”, ” canvas_div.keyup(‘key_release’, canvas_keyboard_event);n”, ” this.canvas_div = canvas_divn”, ” this._canvas_extra_style(canvas_div)n”, ” this.root.append(canvas_div);n”, “n”, ” var canvas = $(‘<canvas/>’);n”, ” canvas.addClass(‘mpl-canvas’);n”, ” canvas.attr(‘style’, “left: 0; top: 0; z-index: 0; outline: 0”)n”, “n”, ” this.canvas = canvas[0];n”, ” this.context = canvas[0].getContext(“2d”);n”, “n”, ” var backingStore = this.context.backingStorePixelRatio ||n”, “tthis.context.webkitBackingStorePixelRatio ||n”, “tthis.context.mozBackingStorePixelRatio ||n”, “tthis.context.msBackingStorePixelRatio ||n”, “tthis.context.oBackingStorePixelRatio ||n”, “tthis.context.backingStorePixelRatio || 1;n”, “n”, ” mpl.ratio = (window.devicePixelRatio || 1) / backingStore;n”, “n”, ” var rubberband = $(‘<canvas/>’);n”, ” rubberband.attr(‘style’, “position: absolute; left: 0; top: 0; z-index: 1;”)n”, “n”, ” var pass_mouse_events = true;n”, “n”, ” canvas_div.resizable({n”, ” start: function(event, ui) {n”, ” pass_mouse_events = false;n”, ” },n”, ” resize: function(event, ui) {n”, ” fig.request_resize(ui.size.width, ui.size.height);n”, ” },n”, ” stop: function(event, ui) {n”, ” pass_mouse_events = true;n”, ” fig.request_resize(ui.size.width, ui.size.height);n”, ” },n”, ” });n”, “n”, ” function mouse_event_fn(event) {n”, ” if (pass_mouse_events)n”, ” return fig.mouse_event(event, event[‘data’]);n”, ” }n”, “n”, ” rubberband.mousedown(‘button_press’, mouse_event_fn);n”, ” rubberband.mouseup(‘button_release’, mouse_event_fn);n”, ” // Throttle sequential mouse events to 1 every 20ms.n”, ” rubberband.mousemove(‘motion_notify’, mouse_event_fn);n”, “n”, ” rubberband.mouseenter(‘figure_enter’, mouse_event_fn);n”, ” rubberband.mouseleave(‘figure_leave’, mouse_event_fn);n”, “n”, ” canvas_div.on(“wheel”, function (event) {n”, ” event = event.originalEvent;n”, ” event[‘data’] = ‘scroll’n”, ” if (event.deltaY < 0) {n”, ” event.step = 1;n”, ” } else {n”, ” event.step = -1;n”, ” }n”, ” mouse_event_fn(event);n”, ” });n”, “n”, ” canvas_div.append(canvas);n”, ” canvas_div.append(rubberband);n”, “n”, ” this.rubberband = rubberband;n”, ” this.rubberband_canvas = rubberband[0];n”, ” this.rubberband_context = rubberband[0].getContext(“2d”);n”, ” this.rubberband_context.strokeStyle = “#000000”;n”, “n”, ” this._resize_canvas = function(width, height) {n”, ” // Keep the size of the canvas, canvas container, and rubber bandn”, ” // canvas in synch.n”, ” canvas_div.css(‘width’, width)n”, ” canvas_div.css(‘height’, height)n”, “n”, ” canvas.attr(‘width’, width * mpl.ratio);n”, ” canvas.attr(‘height’, height * mpl.ratio);n”, ” canvas.attr(‘style’, ‘width: ‘ + width + ‘px; height: ‘ + height + ‘px;’);n”, “n”, ” rubberband.attr(‘width’, width);n”, ” rubberband.attr(‘height’, height);n”, ” }n”, “n”, ” // Set the figure to an initial 600x600px, this will subsequently be updatedn”, ” // upon first draw.n”, ” this._resize_canvas(600, 600);n”, “n”, ” // Disable right mouse context menu.n”, ” $(this.rubberband_canvas).bind(“contextmenu”,function(e){n”, ” return false;n”, ” });n”, “n”, ” function set_focus () {n”, ” canvas.focus();n”, ” canvas_div.focus();n”, ” }n”, “n”, ” window.setTimeout(set_focus, 100);n”, “}n”, “n”, “mpl.figure.prototype._init_toolbar = function() {n”, ” var fig = this;n”, “n”, ” var nav_element = $(‘<div/>’);n”, ” nav_element.attr(‘style’, ‘width: 100%’);n”, ” this.root.append(nav_element);n”, “n”, ” // Define a callback function for later on.n”, ” function toolbar_event(event) {n”, ” return fig.toolbar_button_onclick(event[‘data’]);n”, ” }n”, ” function toolbar_mouse_event(event) {n”, ” return fig.toolbar_button_onmouseover(event[‘data’]);n”, ” }n”, “n”, ” for(var toolbar_ind in mpl.toolbar_items) {n”, ” var name = mpl.toolbar_items[toolbar_ind][0];n”, ” var tooltip = mpl.toolbar_items[toolbar_ind][1];n”, ” var image = mpl.toolbar_items[toolbar_ind][2];n”, ” var method_name = mpl.toolbar_items[toolbar_ind][3];n”, “n”, ” if (!name) {n”, ” // put a spacer in here.n”, ” continue;n”, ” }n”, ” var button = $(‘<button/>’);n”, ” button.addClass(‘ui-button ui-widget ui-state-default ui-corner-all ‘ +n”, ” ‘ui-button-icon-only’);n”, ” button.attr(‘role’, ‘button’);n”, ” button.attr(‘aria-disabled’, ‘false’);n”, ” button.click(method_name, toolbar_event);n”, ” button.mouseover(tooltip, toolbar_mouse_event);n”, “n”, ” var icon_img = $(‘<span/>’);n”, ” icon_img.addClass(‘ui-button-icon-primary ui-icon’);n”, ” icon_img.addClass(image);n”, ” icon_img.addClass(‘ui-corner-all’);n”, “n”, ” var tooltip_span = $(‘<span/>’);n”, ” tooltip_span.addClass(‘ui-button-text’);n”, ” tooltip_span.html(tooltip);n”, “n”, ” button.append(icon_img);n”, ” button.append(tooltip_span);n”, “n”, ” nav_element.append(button);n”, ” }n”, “n”, ” var fmt_picker_span = $(‘<span/>’);n”, “n”, ” var fmt_picker = $(‘<select/>’);n”, ” fmt_picker.addClass(‘mpl-toolbar-option ui-widget ui-widget-content’);n”, ” fmt_picker_span.append(fmt_picker);n”, ” nav_element.append(fmt_picker_span);n”, ” this.format_dropdown = fmt_picker[0];n”, “n”, ” for (var ind in mpl.extensions) {n”, ” var fmt = mpl.extensions[ind];n”, ” var option = $(n”, ” ‘<option/>’, {selected: fmt === mpl.default_extension}).html(fmt);n”, ” fmt_picker.append(option);n”, ” }n”, “n”, ” // Add hover states to the ui-buttonsn”, ” $( “.ui-button” ).hover(n”, ” function() { $(this).addClass(“ui-state-hover”);},n”, ” function() { $(this).removeClass(“ui-state-hover”);}n”, ” );n”, “n”, ” var status_bar = $(‘<span class=”mpl-message”/>’);n”, ” nav_element.append(status_bar);n”, ” this.message = status_bar[0];n”, “}n”, “n”, “mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {n”, ” // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,n”, ” // which will in turn request a refresh of the image.n”, ” this.send_message(‘resize’, {‘width’: x_pixels, ‘height’: y_pixels});n”, “}n”, “n”, “mpl.figure.prototype.send_message = function(type, properties) {n”, ” properties[‘type’] = type;n”, ” properties[‘figure_id’] = this.id;n”, ” this.ws.send(JSON.stringify(properties));n”, “}n”, “n”, “mpl.figure.prototype.send_draw_message = function() {n”, ” if (!this.waiting) {n”, ” this.waiting = true;n”, ” this.ws.send(JSON.stringify({type: “draw”, figure_id: this.id}));n”, ” }n”, “}n”, “n”, “n”, “mpl.figure.prototype.handle_save = function(fig, msg) {n”, ” var format_dropdown = fig.format_dropdown;n”, ” var format = format_dropdown.options[format_dropdown.selectedIndex].value;n”, ” fig.ondownload(fig, format);n”, “}n”, “n”, “n”, “mpl.figure.prototype.handle_resize = function(fig, msg) {n”, ” var size = msg[‘size’];n”, ” if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {n”, ” fig._resize_canvas(size[0], size[1]);n”, ” fig.send_message(“refresh”, {});n”, ” };n”, “}n”, “n”, “mpl.figure.prototype.handle_rubberband = function(fig, msg) {n”, ” var x0 = msg[‘x0’] / mpl.ratio;n”, ” var y0 = (fig.canvas.height - msg[‘y0’]) / mpl.ratio;n”, ” var x1 = msg[‘x1’] / mpl.ratio;n”, ” var y1 = (fig.canvas.height - msg[‘y1’]) / mpl.ratio;n”, ” x0 = Math.floor(x0) + 0.5;n”, ” y0 = Math.floor(y0) + 0.5;n”, ” x1 = Math.floor(x1) + 0.5;n”, ” y1 = Math.floor(y1) + 0.5;n”, ” var min_x = Math.min(x0, x1);n”, ” var min_y = Math.min(y0, y1);n”, ” var width = Math.abs(x1 - x0);n”, ” var height = Math.abs(y1 - y0);n”, “n”, ” fig.rubberband_context.clearRect(n”, ” 0, 0, fig.canvas.width / mpl.ratio, fig.canvas.height / mpl.ratio);n”, “n”, ” fig.rubberband_context.strokeRect(min_x, min_y, width, height);n”, “}n”, “n”, “mpl.figure.prototype.handle_figure_label = function(fig, msg) {n”, ” // Updates the figure title.n”, ” fig.header.textContent = msg[‘label’];n”, “}n”, “n”, “mpl.figure.prototype.handle_cursor = function(fig, msg) {n”, ” var cursor = msg[‘cursor’];n”, ” switch(cursor)n”, ” {n”, ” case 0:n”, ” cursor = ‘pointer’;n”, ” break;n”, ” case 1:n”, ” cursor = ‘default’;n”, ” break;n”, ” case 2:n”, ” cursor = ‘crosshair’;n”, ” break;n”, ” case 3:n”, ” cursor = ‘move’;n”, ” break;n”, ” }n”, ” fig.rubberband_canvas.style.cursor = cursor;n”, “}n”, “n”, “mpl.figure.prototype.handle_message = function(fig, msg) {n”, ” fig.message.textContent = msg[‘message’];n”, “}n”, “n”, “mpl.figure.prototype.handle_draw = function(fig, msg) {n”, ” // Request the server to send over a new figure.n”, ” fig.send_draw_message();n”, “}n”, “n”, “mpl.figure.prototype.handle_image_mode = function(fig, msg) {n”, ” fig.image_mode = msg[‘mode’];n”, “}n”, “n”, “mpl.figure.prototype.updated_canvas_event = function() {n”, ” // Called whenever the canvas gets updated.n”, ” this.send_message(“ack”, {});n”, “}n”, “n”, “// A function to construct a web socket function for onmessage handling.n”, “// Called in the figure constructor.n”, “mpl.figure.prototype._make_on_message_function = function(fig) {n”, ” return function socket_on_message(evt) {n”, ” if (evt.data instanceof Blob) {n”, ” / FIXME: We get “Resource interpreted as Image butn”, ” * transferred with MIME type text/plain:” errors onn”, ” * Chrome. But how to set the MIME type? It doesn’t seemn”, ” * to be part of the websocket stream /n”, ” evt.data.type = “image/png”;n”, “n”, ” / Free the memory for the previous frames /n”, ” if (fig.imageObj.src) {n”, ” (window.URL || window.webkitURL).revokeObjectURL(n”, ” fig.imageObj.src);n”, ” }n”, “n”, ” fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(n”, ” evt.data);n”, ” fig.updated_canvas_event();n”, ” fig.waiting = false;n”, ” return;n”, ” }n”, ” else if (typeof evt.data === ‘string’ && evt.data.slice(0, 21) == “data:image/png;base64”) {n”, ” fig.imageObj.src = evt.data;n”, ” fig.updated_canvas_event();n”, ” fig.waiting = false;n”, ” return;n”, ” }n”, “n”, ” var msg = JSON.parse(evt.data);n”, ” var msg_type = msg[‘type’];n”, “n”, ” // Call the “handle_{type}” callback, which takesn”, ” // the figure and JSON message as its only arguments.n”, ” try {n”, ” var callback = fig[“handle_” + msg_type];n”, ” } catch (e) {n”, ” console.log(“No handler for the ‘” + msg_type + “’ message type: “, msg);n”, ” return;n”, ” }n”, “n”, ” if (callback) {n”, ” try {n”, ” // console.log(“Handling ‘” + msg_type + “’ message: “, msg);n”, ” callback(fig, msg);n”, ” } catch (e) {n”, ” console.log(“Exception inside the ‘handler_” + msg_type + “’ callback:”, e, e.stack, msg);n”, ” }n”, ” }n”, ” };n”, “}n”, “n”, “// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvasn”, “mpl.findpos = function(e) {n”, ” //this section is from http://www.quirksmode.org/js/events_properties.htmln”, ” 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 bugn”, ” targ = targ.parentNode;n”, “n”, ” // jQuery normalizes the pageX and pageYn”, ” // pageX,Y are the mouse positions relative to the documentn”, ” // offset() returns the position of the element relative to the documentn”, ” 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 keysn”, ” * we need this to avoid circular referencesn”, ” * http://stackoverflow.com/a/24161582/3208463n”, ” /n”, “function simpleKeys (original) {n”, ” return Object.keys(original).reduce(function (obj, key) {n”, ” if (typeof original[key] !== ‘object’)n”, ” obj[key] = original[key]n”, ” return obj;n”, ” }, {});n”, “}n”, “n”, “mpl.figure.prototype.mouse_event = function(event, name) {n”, ” var canvas_pos = mpl.findpos(event)n”, “n”, ” if (name === ‘button_press’)n”, ” {n”, ” this.canvas.focus();n”, ” this.canvas_div.focus();n”, ” }n”, “n”, ” var x = canvas_pos.x * mpl.ratio;n”, ” var y = canvas_pos.y * mpl.ratio;n”, “n”, ” this.send_message(name, {x: x, y: y, button: event.button,n”, ” step: event.step,n”, ” guiEvent: simpleKeys(event)});n”, “n”, ” / This prevents the web browser from automatically changing ton”, ” * the text insertion cursor when the button is pressed. We wantn”, ” * to control all of the cursor setting manually through then”, ” * ‘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 eventn”, “}n”, “n”, “mpl.figure.prototype.key_event = function(event, name) {n”, “n”, ” // Prevent repeat eventsn”, ” if (name == ‘key_press’)n”, ” {n”, ” if (event.which === this._key)n”, ” return;n”, ” elsen”, ” 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 commn”, ” // object with the appropriate methods. Currently this is a non binaryn”, ” // 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 overridden (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 processn”, ” // 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 Commn”, ” // 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 realn”, ” // 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.ration”, ” 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.ration”, ” var dataURL = this.canvas.toDataURL();n”, ” this.cell_info[1][‘text/html’] = ‘<img src=”’ + dataURL + ‘” width=”’ + width + ‘”>’;n”, “}n”, “n”, “mpl.figure.prototype.updated_canvas_event = function() {n”, ” // Tell IPython that the notebook contents must change.n”, ” IPython.notebook.set_dirty(true);n”, ” this.send_message(“ack”, {});n”, ” var fig = this;n”, ” // Wait a second, then push the new image to the DOM son”, ” // 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 = thisn”, ” 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 ‘focusablen”, ” el.attr(‘tabindex’, 0)n”, ” // reach out to IPython and tell the keyboard manager to turn it’s selfn”, ” // off when our div gets focusn”, “n”, ” // location in version 3n”, ” if (IPython.notebook.keyboard_manager) {n”, ” IPython.notebook.keyboard_manager.register_events(el);n”, ” }n”, ” else {n”, ” // location in version 2n”, ” 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+entern”, ” if (event.shiftKey && event.which == 13) {n”, ” this.canvas_div.blur();n”, ” event.shiftKey = false;n”, ” // Send a “J” for go to next celln”, ” 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 forn”, ” // 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 outputn”, ” data = data.data;n”, ” }n”, ” if (data[‘text/html’] == html_output) {n”, ” return [cell, data, j];n”, ” }n”, ” }n”, ” }n”, ” }n”, “}n”, “n”, “// Register the function which deals with the matplotlib target/channel.n”, “// The kernel may be null if the page has been refreshed.n”, “if (IPython.notebook.kernel != null) {n”, ” IPython.notebook.kernel.comm_manager.register_target(‘matplotlib’, mpl.mpl_figure_comm);n”, “}n”

], “text/plain”: [

“<IPython.core.display.Javascript object>”

]

}, “metadata”: {}, “output_type”: “display_data”

}, {

“data”: {
“text/html”: [
“<img src=”data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAbAAAAGwCAYAAADITjAqAAAgAElEQVR4Xu2de6yv2VnXv6U95wwUsK1IWqS1NNV6KUJsoyHATBVJDYLyB61COsPMmTmHohCQaFuIgQZTKZCoRK4z58xYokjLpUC4BNFYLpESBQIIWi9QG0oF6UVokJkpjFl9f7/sPb/9rH0+717v/u39zv78kpN2zlnvu9b6rmc93/Vc1vM+Kf5EQAREQAREYIUIPGmFY3bIIiACIiACIhAJTCEQAREQARFYJQIS2CqXzUGLgAiIgAhIYMqACIiACIjAKhGQwFa5bA5aBERABERAAlMGREAEREAEVomABLbKZXPQIiACIiACEpgyIAIiIAIisEoEJLBVLpuDFgEREAERkMCUAREQAREQgVUiIIGtctkctAiIgAiIgASmDIiACIiACKwSAQlslcvmoEVABERABCQwZUAEREAERGCVCEhgq1w2By0CIiACIiCBKQMiIAIiIAKrREACW+WyOWgREAEREAEJTBkQAREQARFYJQIS2CqXzUGLgAiIgAhIYMqACIiACIjAKhGQwFa5bA5aBERABERAAlMGREAEREAEVomABLbKZXPQIiACIiACEpgyIAIiIAIisEoEJLBVLpuDFgEREAERkMCUAREQAREQgVUiIIGtctkctAiIgAiIgASmDIiACIiACKwSAQlslcvmoEVABERABCQwZUAEREAERGCVCEhgq1w2By0CIiACIiCBKQMiIAIiIAKrREACW+WyOWgREAEREAEJTBkQAREQARFYJQIS2CqXzUGLgAiIgAhIYMqACJxPBL41yTuT/KPzOTxHJQJnj4AEdvZr4Aj2h8CnJPm6JH8uyR8k+S9JvjTJpyf5is0wnpLkUpL/t/nv/7Vp3/6z7Zf/meT3k/zZWwz7sSR/Msn/ONTutUmen+QVM6f8kiT/MsnHHvPcX07ylUn+QpL3Jnlup+0dSd6S5HVJ/uHMcdhcBM4VAhLYuVoOB3OKCHxkknck+cIkb0pyOcmnJvnfSX7xUL93J7kvSSO73V9T/j+UpJFce/Y/HjPefRPYX0zygiQfuiHjisAaMbcxNwL+txLYKUqbr94LAhLYXmC2k3OAwIs3SvtptxjLcQT2YJIrG5L4jSRfNEBgW6vqnyZ59cYibFbgQ5t3/oskv57ka5L89qbf39v8259K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” width=”432”>”

], “text/plain”: [

“<IPython.core.display.HTML object>”

]

}, “metadata”: {}, “output_type”: “display_data”

}, {

“data”: {
“application/vnd.jupyter.widget-view+json”: {
“model_id”: “38439d1047814efab300a1a31c8ec201”, “version_major”: 2, “version_minor”: 0

}, “text/plain”: [

“interactive(children=(IntSlider(value=0, description=’Frame’, max=79), Output()), _dom_classes=(‘widget-intera…”

]

}, “metadata”: {}, “output_type”: “display_data”

}

], “source”: [

“%matplotlib notebookn”, “n”, “sta = processed.Network_Explorer.get_sta_entity_by_sourceID(14)n”, “n”, “images = sta.datan”, “num_of_images = images.shape[0]-1n”, “n”, “fig = plt.figure(figsize=(6,6))n”, “ax = fig.add_subplot(1,1,1)n”, “plt.title(‘STA Unit 14’)n”, “plt.box(False)n”, “fig.show()n”, “n”, “def updateFrame(Frame):n”, ” ax.imshow(np.transpose(images[Frame,::]), cmap=”gray”, vmin=np.amin(images), vmax=np.amax(images))n”, ” n”, “_ = interact(updateFrame, Frame=widgets.IntSlider(min=0,max=num_of_images,step=1,value=0))”

]

}, {

“cell_type”: “markdown”, “metadata”: {}, “source”: [

Network_Explorer data sources in files created by CMOS-MEA-Tools Version 2.4 and newer may contain axon tracking results in the processed.Network_Explorer.NeuralNetwork property. The extracted axon paths for individual units can be visualized like this:”

]

}, {

“cell_type”: “code”, “execution_count”: 30, “metadata”: {}, “outputs”: [

{
“data”: {
“application/javascript”: [
“/* Put everything inside the global mpl namespace /n”, “window.mpl = {};n”, “n”, “n”, “mpl.get_websocket_type = function() {n”, ” if (typeof(WebSocket) !== ‘undefined’) {n”, ” return WebSocket;n”, ” } else if (typeof(MozWebSocket) !== ‘undefined’) {n”, ” return MozWebSocket;n”, ” } else {n”, ” alert(‘Your browser does not have WebSocket support. ‘ +n”, ” ‘Please try Chrome, Safari or Firefox ≥ 6. ‘ +n”, ” ‘Firefox 4 and 5 are also supported but you ‘ +n”, ” ‘have to enable WebSockets in about:config.’);n”, ” };n”, “}n”, “n”, “mpl.figure = function(figure_id, websocket, ondownload, parent_element) {n”, ” this.id = figure_id;n”, “n”, ” this.ws = websocket;n”, “n”, ” this.supports_binary = (this.ws.binaryType != undefined);n”, “n”, ” if (!this.supports_binary) {n”, ” var warnings = document.getElementById(“mpl-warnings”);n”, ” if (warnings) {n”, ” warnings.style.display = ‘block’;n”, ” warnings.textContent = (n”, ” “This browser does not support binary websocket messages. ” +n”, ” “Performance may be slow.”);n”, ” }n”, ” }n”, “n”, ” this.imageObj = new Image();n”, “n”, ” this.context = undefined;n”, ” this.message = undefined;n”, ” this.canvas = undefined;n”, ” this.rubberband_canvas = undefined;n”, ” this.rubberband_context = undefined;n”, ” this.format_dropdown = undefined;n”, “n”, ” this.image_mode = ‘full’;n”, “n”, ” this.root = $(‘<div/>’);n”, ” this._root_extra_style(this.root)n”, ” this.root.attr(‘style’, ‘display: inline-block’);n”, “n”, ” $(parent_element).append(this.root);n”, “n”, ” this._init_header(this);n”, ” this._init_canvas(this);n”, ” this._init_toolbar(this);n”, “n”, ” var fig = this;n”, “n”, ” this.waiting = false;n”, “n”, ” this.ws.onopen = function () {n”, ” fig.send_message(“supports_binary”, {value: fig.supports_binary});n”, ” fig.send_message(“send_image_mode”, {});n”, ” if (mpl.ratio != 1) {n”, ” fig.send_message(“set_dpi_ratio”, {‘dpi_ratio’: mpl.ratio});n”, ” }n”, ” fig.send_message(“refresh”, {});n”, ” }n”, “n”, ” this.imageObj.onload = function() {n”, ” if (fig.image_mode == ‘full’) {n”, ” // Full images could contain transparency (where diff imagesn”, ” // almost always do), so we need to clear the canvas so thatn”, ” // there is no ghosting.n”, ” fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);n”, ” }n”, ” fig.context.drawImage(fig.imageObj, 0, 0);n”, ” };n”, “n”, ” this.imageObj.onunload = function() {n”, ” fig.ws.close();n”, ” }n”, “n”, ” this.ws.onmessage = this._make_on_message_function(this);n”, “n”, ” this.ondownload = ondownload;n”, “}n”, “n”, “mpl.figure.prototype._init_header = function() {n”, ” var titlebar = $(n”, ” ‘<div class=”ui-dialog-titlebar ui-widget-header ui-corner-all ‘ +n”, ” ‘ui-helper-clearfix”/>’);n”, ” var titletext = $(n”, ” ‘<div class=”ui-dialog-title” style=”width: 100%; ‘ +n”, ” ‘text-align: center; padding: 3px;”/>’);n”, ” titlebar.append(titletext)n”, ” this.root.append(titlebar);n”, ” this.header = titletext[0];n”, “}n”, “n”, “n”, “n”, “mpl.figure.prototype._canvas_extra_style = function(canvas_div) {n”, “n”, “}n”, “n”, “n”, “mpl.figure.prototype._root_extra_style = function(canvas_div) {n”, “n”, “}n”, “n”, “mpl.figure.prototype._init_canvas = function() {n”, ” var fig = this;n”, “n”, ” var canvas_div = $(‘<div/>’);n”, “n”, ” canvas_div.attr(‘style’, ‘position: relative; clear: both; outline: 0’);n”, “n”, ” function canvas_keyboard_event(event) {n”, ” return fig.key_event(event, event[‘data’]);n”, ” }n”, “n”, ” canvas_div.keydown(‘key_press’, canvas_keyboard_event);n”, ” canvas_div.keyup(‘key_release’, canvas_keyboard_event);n”, ” this.canvas_div = canvas_divn”, ” this._canvas_extra_style(canvas_div)n”, ” this.root.append(canvas_div);n”, “n”, ” var canvas = $(‘<canvas/>’);n”, ” canvas.addClass(‘mpl-canvas’);n”, ” canvas.attr(‘style’, “left: 0; top: 0; z-index: 0; outline: 0”)n”, “n”, ” this.canvas = canvas[0];n”, ” this.context = canvas[0].getContext(“2d”);n”, “n”, ” var backingStore = this.context.backingStorePixelRatio ||n”, “tthis.context.webkitBackingStorePixelRatio ||n”, “tthis.context.mozBackingStorePixelRatio ||n”, “tthis.context.msBackingStorePixelRatio ||n”, “tthis.context.oBackingStorePixelRatio ||n”, “tthis.context.backingStorePixelRatio || 1;n”, “n”, ” mpl.ratio = (window.devicePixelRatio || 1) / backingStore;n”, “n”, ” var rubberband = $(‘<canvas/>’);n”, ” rubberband.attr(‘style’, “position: absolute; left: 0; top: 0; z-index: 1;”)n”, “n”, ” var pass_mouse_events = true;n”, “n”, ” canvas_div.resizable({n”, ” start: function(event, ui) {n”, ” pass_mouse_events = false;n”, ” },n”, ” resize: function(event, ui) {n”, ” fig.request_resize(ui.size.width, ui.size.height);n”, ” },n”, ” stop: function(event, ui) {n”, ” pass_mouse_events = true;n”, ” fig.request_resize(ui.size.width, ui.size.height);n”, ” },n”, ” });n”, “n”, ” function mouse_event_fn(event) {n”, ” if (pass_mouse_events)n”, ” return fig.mouse_event(event, event[‘data’]);n”, ” }n”, “n”, ” rubberband.mousedown(‘button_press’, mouse_event_fn);n”, ” rubberband.mouseup(‘button_release’, mouse_event_fn);n”, ” // Throttle sequential mouse events to 1 every 20ms.n”, ” rubberband.mousemove(‘motion_notify’, mouse_event_fn);n”, “n”, ” rubberband.mouseenter(‘figure_enter’, mouse_event_fn);n”, ” rubberband.mouseleave(‘figure_leave’, mouse_event_fn);n”, “n”, ” canvas_div.on(“wheel”, function (event) {n”, ” event = event.originalEvent;n”, ” event[‘data’] = ‘scroll’n”, ” if (event.deltaY < 0) {n”, ” event.step = 1;n”, ” } else {n”, ” event.step = -1;n”, ” }n”, ” mouse_event_fn(event);n”, ” });n”, “n”, ” canvas_div.append(canvas);n”, ” canvas_div.append(rubberband);n”, “n”, ” this.rubberband = rubberband;n”, ” this.rubberband_canvas = rubberband[0];n”, ” this.rubberband_context = rubberband[0].getContext(“2d”);n”, ” this.rubberband_context.strokeStyle = “#000000”;n”, “n”, ” this._resize_canvas = function(width, height) {n”, ” // Keep the size of the canvas, canvas container, and rubber bandn”, ” // canvas in synch.n”, ” canvas_div.css(‘width’, width)n”, ” canvas_div.css(‘height’, height)n”, “n”, ” canvas.attr(‘width’, width * mpl.ratio);n”, ” canvas.attr(‘height’, height * mpl.ratio);n”, ” canvas.attr(‘style’, ‘width: ‘ + width + ‘px; height: ‘ + height + ‘px;’);n”, “n”, ” rubberband.attr(‘width’, width);n”, ” rubberband.attr(‘height’, height);n”, ” }n”, “n”, ” // Set the figure to an initial 600x600px, this will subsequently be updatedn”, ” // upon first draw.n”, ” this._resize_canvas(600, 600);n”, “n”, ” // Disable right mouse context menu.n”, ” $(this.rubberband_canvas).bind(“contextmenu”,function(e){n”, ” return false;n”, ” });n”, “n”, ” function set_focus () {n”, ” canvas.focus();n”, ” canvas_div.focus();n”, ” }n”, “n”, ” window.setTimeout(set_focus, 100);n”, “}n”, “n”, “mpl.figure.prototype._init_toolbar = function() {n”, ” var fig = this;n”, “n”, ” var nav_element = $(‘<div/>’);n”, ” nav_element.attr(‘style’, ‘width: 100%’);n”, ” this.root.append(nav_element);n”, “n”, ” // Define a callback function for later on.n”, ” function toolbar_event(event) {n”, ” return fig.toolbar_button_onclick(event[‘data’]);n”, ” }n”, ” function toolbar_mouse_event(event) {n”, ” return fig.toolbar_button_onmouseover(event[‘data’]);n”, ” }n”, “n”, ” for(var toolbar_ind in mpl.toolbar_items) {n”, ” var name = mpl.toolbar_items[toolbar_ind][0];n”, ” var tooltip = mpl.toolbar_items[toolbar_ind][1];n”, ” var image = mpl.toolbar_items[toolbar_ind][2];n”, ” var method_name = mpl.toolbar_items[toolbar_ind][3];n”, “n”, ” if (!name) {n”, ” // put a spacer in here.n”, ” continue;n”, ” }n”, ” var button = $(‘<button/>’);n”, ” button.addClass(‘ui-button ui-widget ui-state-default ui-corner-all ‘ +n”, ” ‘ui-button-icon-only’);n”, ” button.attr(‘role’, ‘button’);n”, ” button.attr(‘aria-disabled’, ‘false’);n”, ” button.click(method_name, toolbar_event);n”, ” button.mouseover(tooltip, toolbar_mouse_event);n”, “n”, ” var icon_img = $(‘<span/>’);n”, ” icon_img.addClass(‘ui-button-icon-primary ui-icon’);n”, ” icon_img.addClass(image);n”, ” icon_img.addClass(‘ui-corner-all’);n”, “n”, ” var tooltip_span = $(‘<span/>’);n”, ” tooltip_span.addClass(‘ui-button-text’);n”, ” tooltip_span.html(tooltip);n”, “n”, ” button.append(icon_img);n”, ” button.append(tooltip_span);n”, “n”, ” nav_element.append(button);n”, ” }n”, “n”, ” var fmt_picker_span = $(‘<span/>’);n”, “n”, ” var fmt_picker = $(‘<select/>’);n”, ” fmt_picker.addClass(‘mpl-toolbar-option ui-widget ui-widget-content’);n”, ” fmt_picker_span.append(fmt_picker);n”, ” nav_element.append(fmt_picker_span);n”, ” this.format_dropdown = fmt_picker[0];n”, “n”, ” for (var ind in mpl.extensions) {n”, ” var fmt = mpl.extensions[ind];n”, ” var option = $(n”, ” ‘<option/>’, {selected: fmt === mpl.default_extension}).html(fmt);n”, ” fmt_picker.append(option);n”, ” }n”, “n”, ” // Add hover states to the ui-buttonsn”, ” $( “.ui-button” ).hover(n”, ” function() { $(this).addClass(“ui-state-hover”);},n”, ” function() { $(this).removeClass(“ui-state-hover”);}n”, ” );n”, “n”, ” var status_bar = $(‘<span class=”mpl-message”/>’);n”, ” nav_element.append(status_bar);n”, ” this.message = status_bar[0];n”, “}n”, “n”, “mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {n”, ” // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,n”, ” // which will in turn request a refresh of the image.n”, ” this.send_message(‘resize’, {‘width’: x_pixels, ‘height’: y_pixels});n”, “}n”, “n”, “mpl.figure.prototype.send_message = function(type, properties) {n”, ” properties[‘type’] = type;n”, ” properties[‘figure_id’] = this.id;n”, ” this.ws.send(JSON.stringify(properties));n”, “}n”, “n”, “mpl.figure.prototype.send_draw_message = function() {n”, ” if (!this.waiting) {n”, ” this.waiting = true;n”, ” this.ws.send(JSON.stringify({type: “draw”, figure_id: this.id}));n”, ” }n”, “}n”, “n”, “n”, “mpl.figure.prototype.handle_save = function(fig, msg) {n”, ” var format_dropdown = fig.format_dropdown;n”, ” var format = format_dropdown.options[format_dropdown.selectedIndex].value;n”, ” fig.ondownload(fig, format);n”, “}n”, “n”, “n”, “mpl.figure.prototype.handle_resize = function(fig, msg) {n”, ” var size = msg[‘size’];n”, ” if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {n”, ” fig._resize_canvas(size[0], size[1]);n”, ” fig.send_message(“refresh”, {});n”, ” };n”, “}n”, “n”, “mpl.figure.prototype.handle_rubberband = function(fig, msg) {n”, ” var x0 = msg[‘x0’] / mpl.ratio;n”, ” var y0 = (fig.canvas.height - msg[‘y0’]) / mpl.ratio;n”, ” var x1 = msg[‘x1’] / mpl.ratio;n”, ” var y1 = (fig.canvas.height - msg[‘y1’]) / mpl.ratio;n”, ” x0 = Math.floor(x0) + 0.5;n”, ” y0 = Math.floor(y0) + 0.5;n”, ” x1 = Math.floor(x1) + 0.5;n”, ” y1 = Math.floor(y1) + 0.5;n”, ” var min_x = Math.min(x0, x1);n”, ” var min_y = Math.min(y0, y1);n”, ” var width = Math.abs(x1 - x0);n”, ” var height = Math.abs(y1 - y0);n”, “n”, ” fig.rubberband_context.clearRect(n”, ” 0, 0, fig.canvas.width / mpl.ratio, fig.canvas.height / mpl.ratio);n”, “n”, ” fig.rubberband_context.strokeRect(min_x, min_y, width, height);n”, “}n”, “n”, “mpl.figure.prototype.handle_figure_label = function(fig, msg) {n”, ” // Updates the figure title.n”, ” fig.header.textContent = msg[‘label’];n”, “}n”, “n”, “mpl.figure.prototype.handle_cursor = function(fig, msg) {n”, ” var cursor = msg[‘cursor’];n”, ” switch(cursor)n”, ” {n”, ” case 0:n”, ” cursor = ‘pointer’;n”, ” break;n”, ” case 1:n”, ” cursor = ‘default’;n”, ” break;n”, ” case 2:n”, ” cursor = ‘crosshair’;n”, ” break;n”, ” case 3:n”, ” cursor = ‘move’;n”, ” break;n”, ” }n”, ” fig.rubberband_canvas.style.cursor = cursor;n”, “}n”, “n”, “mpl.figure.prototype.handle_message = function(fig, msg) {n”, ” fig.message.textContent = msg[‘message’];n”, “}n”, “n”, “mpl.figure.prototype.handle_draw = function(fig, msg) {n”, ” // Request the server to send over a new figure.n”, ” fig.send_draw_message();n”, “}n”, “n”, “mpl.figure.prototype.handle_image_mode = function(fig, msg) {n”, ” fig.image_mode = msg[‘mode’];n”, “}n”, “n”, “mpl.figure.prototype.updated_canvas_event = function() {n”, ” // Called whenever the canvas gets updated.n”, ” this.send_message(“ack”, {});n”, “}n”, “n”, “// A function to construct a web socket function for onmessage handling.n”, “// Called in the figure constructor.n”, “mpl.figure.prototype._make_on_message_function = function(fig) {n”, ” return function socket_on_message(evt) {n”, ” if (evt.data instanceof Blob) {n”, ” / FIXME: We get “Resource interpreted as Image butn”, ” * transferred with MIME type text/plain:” errors onn”, ” * Chrome. But how to set the MIME type? It doesn’t seemn”, ” * to be part of the websocket stream /n”, ” evt.data.type = “image/png”;n”, “n”, ” / Free the memory for the previous frames /n”, ” if (fig.imageObj.src) {n”, ” (window.URL || window.webkitURL).revokeObjectURL(n”, ” fig.imageObj.src);n”, ” }n”, “n”, ” fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(n”, ” evt.data);n”, ” fig.updated_canvas_event();n”, ” fig.waiting = false;n”, ” return;n”, ” }n”, ” else if (typeof evt.data === ‘string’ && evt.data.slice(0, 21) == “data:image/png;base64”) {n”, ” fig.imageObj.src = evt.data;n”, ” fig.updated_canvas_event();n”, ” fig.waiting = false;n”, ” return;n”, ” }n”, “n”, ” var msg = JSON.parse(evt.data);n”, ” var msg_type = msg[‘type’];n”, “n”, ” // Call the “handle_{type}” callback, which takesn”, ” // the figure and JSON message as its only arguments.n”, ” try {n”, ” var callback = fig[“handle_” + msg_type];n”, ” } catch (e) {n”, ” console.log(“No handler for the ‘” + msg_type + “’ message type: “, msg);n”, ” return;n”, ” }n”, “n”, ” if (callback) {n”, ” try {n”, ” // console.log(“Handling ‘” + msg_type + “’ message: “, msg);n”, ” callback(fig, msg);n”, ” } catch (e) {n”, ” console.log(“Exception inside the ‘handler_” + msg_type + “’ callback:”, e, e.stack, msg);n”, ” }n”, ” }n”, ” };n”, “}n”, “n”, “// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvasn”, “mpl.findpos = function(e) {n”, ” //this section is from http://www.quirksmode.org/js/events_properties.htmln”, ” 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 bugn”, ” targ = targ.parentNode;n”, “n”, ” // jQuery normalizes the pageX and pageYn”, ” // pageX,Y are the mouse positions relative to the documentn”, ” // offset() returns the position of the element relative to the documentn”, ” 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 keysn”, ” * we need this to avoid circular referencesn”, ” * http://stackoverflow.com/a/24161582/3208463n”, ” /n”, “function simpleKeys (original) {n”, ” return Object.keys(original).reduce(function (obj, key) {n”, ” if (typeof original[key] !== ‘object’)n”, ” obj[key] = original[key]n”, ” return obj;n”, ” }, {});n”, “}n”, “n”, “mpl.figure.prototype.mouse_event = function(event, name) {n”, ” var canvas_pos = mpl.findpos(event)n”, “n”, ” if (name === ‘button_press’)n”, ” {n”, ” this.canvas.focus();n”, ” this.canvas_div.focus();n”, ” }n”, “n”, ” var x = canvas_pos.x * mpl.ratio;n”, ” var y = canvas_pos.y * mpl.ratio;n”, “n”, ” this.send_message(name, {x: x, y: y, button: event.button,n”, ” step: event.step,n”, ” guiEvent: simpleKeys(event)});n”, “n”, ” / This prevents the web browser from automatically changing ton”, ” * the text insertion cursor when the button is pressed. We wantn”, ” * to control all of the cursor setting manually through then”, ” * ‘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 eventn”, “}n”, “n”, “mpl.figure.prototype.key_event = function(event, name) {n”, “n”, ” // Prevent repeat eventsn”, ” if (name == ‘key_press’)n”, ” {n”, ” if (event.which === this._key)n”, ” return;n”, ” elsen”, ” 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 commn”, ” // object with the appropriate methods. Currently this is a non binaryn”, ” // 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 overridden (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 processn”, ” // 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 Commn”, ” // 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 realn”, ” // 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.ration”, ” 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.ration”, ” var dataURL = this.canvas.toDataURL();n”, ” this.cell_info[1][‘text/html’] = ‘<img src=”’ + dataURL + ‘” width=”’ + width + ‘”>’;n”, “}n”, “n”, “mpl.figure.prototype.updated_canvas_event = function() {n”, ” // Tell IPython that the notebook contents must change.n”, ” IPython.notebook.set_dirty(true);n”, ” this.send_message(“ack”, {});n”, ” var fig = this;n”, ” // Wait a second, then push the new image to the DOM son”, ” // 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 = thisn”, ” 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 ‘focusablen”, ” el.attr(‘tabindex’, 0)n”, ” // reach out to IPython and tell the keyboard manager to turn it’s selfn”, ” // off when our div gets focusn”, “n”, ” // location in version 3n”, ” if (IPython.notebook.keyboard_manager) {n”, ” IPython.notebook.keyboard_manager.register_events(el);n”, ” }n”, ” else {n”, ” // location in version 2n”, ” 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+entern”, ” if (event.shiftKey && event.which == 13) {n”, ” this.canvas_div.blur();n”, ” event.shiftKey = false;n”, ” // Send a “J” for go to next celln”, ” 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 forn”, ” // 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 outputn”, ” data = data.data;n”, ” }n”, ” if (data[‘text/html’] == html_output) {n”, ” return [cell, data, j];n”, ” }n”, ” }n”, ” }n”, ” }n”, “}n”, “n”, “// Register the function which deals with the matplotlib target/channel.n”, “// The kernel may be null if the page has been refreshed.n”, “if (IPython.notebook.kernel != null) {n”, ” IPython.notebook.kernel.comm_manager.register_target(‘matplotlib’, mpl.mpl_figure_comm);n”, “}n”

], “text/plain”: [

“<IPython.core.display.Javascript object>”

]

}, “metadata”: {}, “output_type”: “display_data”

}, {

“data”: {
“text/html”: [
“<img src=”