Skip to content
Snippets Groups Projects
How to extract peaks from digitizer traces.ipynb 762 KiB
Newer Older
2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000
       "\n",
       "\n",
       "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
       "\n",
       "}\n",
       "\n",
       "\n",
       "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
       "\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_canvas = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var canvas_div = $('<div/>');\n",
       "\n",
       "    canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
       "\n",
       "    function canvas_keyboard_event(event) {\n",
       "        return fig.key_event(event, event['data']);\n",
       "    }\n",
       "\n",
       "    canvas_div.keydown('key_press', canvas_keyboard_event);\n",
       "    canvas_div.keyup('key_release', canvas_keyboard_event);\n",
       "    this.canvas_div = canvas_div\n",
       "    this._canvas_extra_style(canvas_div)\n",
       "    this.root.append(canvas_div);\n",
       "\n",
       "    var canvas = $('<canvas/>');\n",
       "    canvas.addClass('mpl-canvas');\n",
       "    canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
       "\n",
       "    this.canvas = canvas[0];\n",
       "    this.context = canvas[0].getContext(\"2d\");\n",
       "\n",
       "    var backingStore = this.context.backingStorePixelRatio ||\n",
       "\tthis.context.webkitBackingStorePixelRatio ||\n",
       "\tthis.context.mozBackingStorePixelRatio ||\n",
       "\tthis.context.msBackingStorePixelRatio ||\n",
       "\tthis.context.oBackingStorePixelRatio ||\n",
       "\tthis.context.backingStorePixelRatio || 1;\n",
       "\n",
       "    mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
       "\n",
       "    var rubberband = $('<canvas/>');\n",
       "    rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
       "\n",
       "    var pass_mouse_events = true;\n",
       "\n",
       "    canvas_div.resizable({\n",
       "        start: function(event, ui) {\n",
       "            pass_mouse_events = false;\n",
       "        },\n",
       "        resize: function(event, ui) {\n",
       "            fig.request_resize(ui.size.width, ui.size.height);\n",
       "        },\n",
       "        stop: function(event, ui) {\n",
       "            pass_mouse_events = true;\n",
       "            fig.request_resize(ui.size.width, ui.size.height);\n",
       "        },\n",
       "    });\n",
       "\n",
       "    function mouse_event_fn(event) {\n",
       "        if (pass_mouse_events)\n",
       "            return fig.mouse_event(event, event['data']);\n",
       "    }\n",
       "\n",
       "    rubberband.mousedown('button_press', mouse_event_fn);\n",
       "    rubberband.mouseup('button_release', mouse_event_fn);\n",
       "    // Throttle sequential mouse events to 1 every 20ms.\n",
       "    rubberband.mousemove('motion_notify', mouse_event_fn);\n",
       "\n",
       "    rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
       "    rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
       "\n",
       "    canvas_div.on(\"wheel\", function (event) {\n",
       "        event = event.originalEvent;\n",
       "        event['data'] = 'scroll'\n",
       "        if (event.deltaY < 0) {\n",
       "            event.step = 1;\n",
       "        } else {\n",
       "            event.step = -1;\n",
       "        }\n",
       "        mouse_event_fn(event);\n",
       "    });\n",
       "\n",
       "    canvas_div.append(canvas);\n",
       "    canvas_div.append(rubberband);\n",
       "\n",
       "    this.rubberband = rubberband;\n",
       "    this.rubberband_canvas = rubberband[0];\n",
       "    this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
       "    this.rubberband_context.strokeStyle = \"#000000\";\n",
       "\n",
       "    this._resize_canvas = function(width, height) {\n",
       "        // Keep the size of the canvas, canvas container, and rubber band\n",
       "        // canvas in synch.\n",
       "        canvas_div.css('width', width)\n",
       "        canvas_div.css('height', height)\n",
       "\n",
       "        canvas.attr('width', width * mpl.ratio);\n",
       "        canvas.attr('height', height * mpl.ratio);\n",
       "        canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n",
       "\n",
       "        rubberband.attr('width', width);\n",
       "        rubberband.attr('height', height);\n",
       "    }\n",
       "\n",
       "    // Set the figure to an initial 600x600px, this will subsequently be updated\n",
       "    // upon first draw.\n",
       "    this._resize_canvas(600, 600);\n",
       "\n",
       "    // Disable right mouse context menu.\n",
       "    $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
       "        return false;\n",
       "    });\n",
       "\n",
       "    function set_focus () {\n",
       "        canvas.focus();\n",
       "        canvas_div.focus();\n",
       "    }\n",
       "\n",
       "    window.setTimeout(set_focus, 100);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_toolbar = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var nav_element = $('<div/>')\n",
       "    nav_element.attr('style', 'width: 100%');\n",
       "    this.root.append(nav_element);\n",
       "\n",
       "    // Define a callback function for later on.\n",
       "    function toolbar_event(event) {\n",
       "        return fig.toolbar_button_onclick(event['data']);\n",
       "    }\n",
       "    function toolbar_mouse_event(event) {\n",
       "        return fig.toolbar_button_onmouseover(event['data']);\n",
       "    }\n",
       "\n",
       "    for(var toolbar_ind in mpl.toolbar_items) {\n",
       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
       "\n",
       "        if (!name) {\n",
       "            // put a spacer in here.\n",
       "            continue;\n",
       "        }\n",
       "        var button = $('<button/>');\n",
       "        button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
       "                        'ui-button-icon-only');\n",
       "        button.attr('role', 'button');\n",
       "        button.attr('aria-disabled', 'false');\n",
       "        button.click(method_name, toolbar_event);\n",
       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
       "\n",
       "        var icon_img = $('<span/>');\n",
       "        icon_img.addClass('ui-button-icon-primary ui-icon');\n",
       "        icon_img.addClass(image);\n",
       "        icon_img.addClass('ui-corner-all');\n",
       "\n",
       "        var tooltip_span = $('<span/>');\n",
       "        tooltip_span.addClass('ui-button-text');\n",
       "        tooltip_span.html(tooltip);\n",
       "\n",
       "        button.append(icon_img);\n",
       "        button.append(tooltip_span);\n",
       "\n",
       "        nav_element.append(button);\n",
       "    }\n",
       "\n",
       "    var fmt_picker_span = $('<span/>');\n",
       "\n",
       "    var fmt_picker = $('<select/>');\n",
       "    fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
       "    fmt_picker_span.append(fmt_picker);\n",
       "    nav_element.append(fmt_picker_span);\n",
       "    this.format_dropdown = fmt_picker[0];\n",
       "\n",
       "    for (var ind in mpl.extensions) {\n",
       "        var fmt = mpl.extensions[ind];\n",
       "        var option = $(\n",
       "            '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
       "        fmt_picker.append(option)\n",
       "    }\n",
       "\n",
       "    // Add hover states to the ui-buttons\n",
       "    $( \".ui-button\" ).hover(\n",
       "        function() { $(this).addClass(\"ui-state-hover\");},\n",
       "        function() { $(this).removeClass(\"ui-state-hover\");}\n",
       "    );\n",
       "\n",
       "    var status_bar = $('<span class=\"mpl-message\"/>');\n",
       "    nav_element.append(status_bar);\n",
       "    this.message = status_bar[0];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
       "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
       "    // which will in turn request a refresh of the image.\n",
       "    this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.send_message = function(type, properties) {\n",
       "    properties['type'] = type;\n",
       "    properties['figure_id'] = this.id;\n",
       "    this.ws.send(JSON.stringify(properties));\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.send_draw_message = function() {\n",
       "    if (!this.waiting) {\n",
       "        this.waiting = true;\n",
       "        this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
       "    }\n",
       "}\n",
       "\n",
       "\n",
       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
       "    var format_dropdown = fig.format_dropdown;\n",
       "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
       "    fig.ondownload(fig, format);\n",
       "}\n",
       "\n",
       "\n",
       "mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
       "    var size = msg['size'];\n",
       "    if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
       "        fig._resize_canvas(size[0], size[1]);\n",
       "        fig.send_message(\"refresh\", {});\n",
       "    };\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
       "    var x0 = msg['x0'] / mpl.ratio;\n",
       "    var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n",
       "    var x1 = msg['x1'] / mpl.ratio;\n",
       "    var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n",
       "    x0 = Math.floor(x0) + 0.5;\n",
       "    y0 = Math.floor(y0) + 0.5;\n",
       "    x1 = Math.floor(x1) + 0.5;\n",
       "    y1 = Math.floor(y1) + 0.5;\n",
       "    var min_x = Math.min(x0, x1);\n",
       "    var min_y = Math.min(y0, y1);\n",
       "    var width = Math.abs(x1 - x0);\n",
       "    var height = Math.abs(y1 - y0);\n",
       "\n",
       "    fig.rubberband_context.clearRect(\n",
       "        0, 0, fig.canvas.width, fig.canvas.height);\n",
       "\n",
       "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
       "    // Updates the figure title.\n",
       "    fig.header.textContent = msg['label'];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
       "    var cursor = msg['cursor'];\n",
       "    switch(cursor)\n",
       "    {\n",
       "    case 0:\n",
       "        cursor = 'pointer';\n",
       "        break;\n",
       "    case 1:\n",
       "        cursor = 'default';\n",
       "        break;\n",
       "    case 2:\n",
       "        cursor = 'crosshair';\n",
       "        break;\n",
       "    case 3:\n",
       "        cursor = 'move';\n",
       "        break;\n",
       "    }\n",
       "    fig.rubberband_canvas.style.cursor = cursor;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_message = function(fig, msg) {\n",
       "    fig.message.textContent = msg['message'];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
       "    // Request the server to send over a new figure.\n",
       "    fig.send_draw_message();\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
       "    fig.image_mode = msg['mode'];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.updated_canvas_event = function() {\n",
       "    // Called whenever the canvas gets updated.\n",
       "    this.send_message(\"ack\", {});\n",
       "}\n",
       "\n",
       "// A function to construct a web socket function for onmessage handling.\n",
       "// Called in the figure constructor.\n",
       "mpl.figure.prototype._make_on_message_function = function(fig) {\n",
       "    return function socket_on_message(evt) {\n",
       "        if (evt.data instanceof Blob) {\n",
       "            /* FIXME: We get \"Resource interpreted as Image but\n",
       "             * transferred with MIME type text/plain:\" errors on\n",
       "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
       "             * to be part of the websocket stream */\n",
       "            evt.data.type = \"image/png\";\n",
       "\n",
       "            /* Free the memory for the previous frames */\n",
       "            if (fig.imageObj.src) {\n",
       "                (window.URL || window.webkitURL).revokeObjectURL(\n",
       "                    fig.imageObj.src);\n",
       "            }\n",
       "\n",
       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
       "                evt.data);\n",
       "            fig.updated_canvas_event();\n",
       "            fig.waiting = false;\n",
       "            return;\n",
       "        }\n",
       "        else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
       "            fig.imageObj.src = evt.data;\n",
       "            fig.updated_canvas_event();\n",
       "            fig.waiting = false;\n",
       "            return;\n",
       "        }\n",
       "\n",
       "        var msg = JSON.parse(evt.data);\n",
       "        var msg_type = msg['type'];\n",
       "\n",
       "        // Call the  \"handle_{type}\" callback, which takes\n",
       "        // the figure and JSON message as its only arguments.\n",
       "        try {\n",
       "            var callback = fig[\"handle_\" + msg_type];\n",
       "        } catch (e) {\n",
       "            console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
       "            return;\n",
       "        }\n",
       "\n",
       "        if (callback) {\n",
       "            try {\n",
       "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
       "                callback(fig, msg);\n",
       "            } catch (e) {\n",
       "                console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
       "            }\n",
       "        }\n",
       "    };\n",
       "}\n",
       "\n",
       "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
       "mpl.findpos = function(e) {\n",
       "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
       "    var targ;\n",
       "    if (!e)\n",
       "        e = window.event;\n",
       "    if (e.target)\n",
       "        targ = e.target;\n",
       "    else if (e.srcElement)\n",
       "        targ = e.srcElement;\n",
       "    if (targ.nodeType == 3) // defeat Safari bug\n",
       "        targ = targ.parentNode;\n",
       "\n",
       "    // jQuery normalizes the pageX and pageY\n",
       "    // pageX,Y are the mouse positions relative to the document\n",
       "    // offset() returns the position of the element relative to the document\n",
       "    var x = e.pageX - $(targ).offset().left;\n",
       "    var y = e.pageY - $(targ).offset().top;\n",
       "\n",
       "    return {\"x\": x, \"y\": y};\n",
       "};\n",
       "\n",
       "/*\n",
       " * return a copy of an object with only non-object keys\n",
       " * we need this to avoid circular references\n",
       " * http://stackoverflow.com/a/24161582/3208463\n",
       " */\n",
       "function simpleKeys (original) {\n",
       "  return Object.keys(original).reduce(function (obj, key) {\n",
       "    if (typeof original[key] !== 'object')\n",
       "        obj[key] = original[key]\n",
       "    return obj;\n",
       "  }, {});\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.mouse_event = function(event, name) {\n",
       "    var canvas_pos = mpl.findpos(event)\n",
       "\n",
       "    if (name === 'button_press')\n",
       "    {\n",
       "        this.canvas.focus();\n",
       "        this.canvas_div.focus();\n",
       "    }\n",
       "\n",
       "    var x = canvas_pos.x * mpl.ratio;\n",
       "    var y = canvas_pos.y * mpl.ratio;\n",
       "\n",
       "    this.send_message(name, {x: x, y: y, button: event.button,\n",
       "                             step: event.step,\n",
       "                             guiEvent: simpleKeys(event)});\n",
       "\n",
       "    /* This prevents the web browser from automatically changing to\n",
       "     * the text insertion cursor when the button is pressed.  We want\n",
       "     * to control all of the cursor setting manually through the\n",
       "     * 'cursor' event from matplotlib */\n",
       "    event.preventDefault();\n",
       "    return false;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
       "    // Handle any extra behaviour associated with a key event\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.key_event = function(event, name) {\n",
       "\n",
       "    // Prevent repeat events\n",
       "    if (name == 'key_press')\n",
       "    {\n",
       "        if (event.which === this._key)\n",
       "            return;\n",
       "        else\n",
       "            this._key = event.which;\n",
       "    }\n",
       "    if (name == 'key_release')\n",
       "        this._key = null;\n",
       "\n",
       "    var value = '';\n",
       "    if (event.ctrlKey && event.which != 17)\n",
       "        value += \"ctrl+\";\n",
       "    if (event.altKey && event.which != 18)\n",
       "        value += \"alt+\";\n",
       "    if (event.shiftKey && event.which != 16)\n",
       "        value += \"shift+\";\n",
       "\n",
       "    value += 'k';\n",
       "    value += event.which.toString();\n",
       "\n",
       "    this._key_event_extra(event, name);\n",
       "\n",
       "    this.send_message(name, {key: value,\n",
       "                             guiEvent: simpleKeys(event)});\n",
       "    return false;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
       "    if (name == 'download') {\n",
       "        this.handle_save(this, null);\n",
       "    } else {\n",
       "        this.send_message(\"toolbar_button\", {name: name});\n",
       "    }\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
       "    this.message.textContent = tooltip;\n",
       "};\n",
       "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
       "\n",
       "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
       "\n",
       "mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
       "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
       "    // object with the appropriate methods. Currently this is a non binary\n",
       "    // socket, so there is still some room for performance tuning.\n",
       "    var ws = {};\n",
       "\n",
       "    ws.close = function() {\n",
       "        comm.close()\n",
       "    };\n",
       "    ws.send = function(m) {\n",
       "        //console.log('sending', m);\n",
       "        comm.send(m);\n",
       "    };\n",
       "    // Register the callback with on_msg.\n",
       "    comm.on_msg(function(msg) {\n",
       "        //console.log('receiving', msg['content']['data'], msg);\n",
       "        // Pass the mpl event to the 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 process\n",
       "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
       "\n",
       "    var id = msg.content.data.id;\n",
       "    // Get hold of the div created by the display call when the Comm\n",
       "    // socket was opened in Python.\n",
       "    var element = $(\"#\" + id);\n",
       "    var ws_proxy = comm_websocket_adapter(comm)\n",
       "\n",
       "    function ondownload(figure, format) {\n",
       "        window.open(figure.imageObj.src);\n",
       "    }\n",
       "\n",
       "    var fig = new mpl.figure(id, ws_proxy,\n",
       "                           ondownload,\n",
       "                           element.get(0));\n",
       "\n",
       "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
       "    // web socket which is closed, not our websocket->open comm proxy.\n",
       "    ws_proxy.onopen();\n",
       "\n",
       "    fig.parent_element = element.get(0);\n",
       "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
       "    if (!fig.cell_info) {\n",
       "        console.error(\"Failed to find cell for figure\", id, fig);\n",
       "        return;\n",
       "    }\n",
       "\n",
       "    var output_index = fig.cell_info[2]\n",
       "    var cell = fig.cell_info[0];\n",
       "\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_close = function(fig, msg) {\n",
       "    var width = fig.canvas.width/mpl.ratio\n",
       "    fig.root.unbind('remove')\n",
       "\n",
       "    // Update the output cell to use the data from the current canvas.\n",
       "    fig.push_to_output();\n",
       "    var dataURL = fig.canvas.toDataURL();\n",
       "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
       "    // the notebook keyboard shortcuts fail.\n",
       "    IPython.keyboard_manager.enable()\n",
       "    $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n",
       "    fig.close_ws(fig, msg);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.close_ws = function(fig, msg){\n",
       "    fig.send_message('closing', msg);\n",
       "    // fig.ws.close()\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
       "    // Turn the data on the canvas into data in the output cell.\n",
       "    var width = this.canvas.width/mpl.ratio\n",
       "    var dataURL = this.canvas.toDataURL();\n",
       "    this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.updated_canvas_event = function() {\n",
       "    // Tell IPython that the notebook contents must change.\n",
       "    IPython.notebook.set_dirty(true);\n",
       "    this.send_message(\"ack\", {});\n",
       "    var fig = this;\n",
       "    // Wait a second, then push the new image to the DOM so\n",
       "    // that it is saved nicely (might be nice to debounce this).\n",
       "    setTimeout(function () { fig.push_to_output() }, 1000);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_toolbar = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var nav_element = $('<div/>')\n",
       "    nav_element.attr('style', 'width: 100%');\n",
       "    this.root.append(nav_element);\n",
       "\n",
       "    // Define a callback function for later on.\n",
       "    function toolbar_event(event) {\n",
       "        return fig.toolbar_button_onclick(event['data']);\n",
       "    }\n",
       "    function toolbar_mouse_event(event) {\n",
       "        return fig.toolbar_button_onmouseover(event['data']);\n",
       "    }\n",
       "\n",
       "    for(var toolbar_ind in mpl.toolbar_items){\n",
       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
       "\n",
       "        if (!name) { continue; };\n",
       "\n",
       "        var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
       "        button.click(method_name, toolbar_event);\n",
       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
       "        nav_element.append(button);\n",
       "    }\n",
       "\n",
       "    // Add the status bar.\n",
       "    var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
       "    nav_element.append(status_bar);\n",
       "    this.message = status_bar[0];\n",
       "\n",
       "    // Add the close button to the window.\n",
       "    var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
       "    var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
       "    button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
       "    button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
       "    buttongrp.append(button);\n",
       "    var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
       "    titlebar.prepend(buttongrp);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._root_extra_style = function(el){\n",
       "    var fig = this\n",
       "    el.on(\"remove\", function(){\n",
       "\tfig.close_ws(fig, {});\n",
       "    });\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._canvas_extra_style = function(el){\n",
       "    // this is important to make the div 'focusable\n",
       "    el.attr('tabindex', 0)\n",
       "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
       "    // off when our div gets focus\n",
       "\n",
       "    // location in version 3\n",
       "    if (IPython.notebook.keyboard_manager) {\n",
       "        IPython.notebook.keyboard_manager.register_events(el);\n",
       "    }\n",
       "    else {\n",
       "        // location in version 2\n",
       "        IPython.keyboard_manager.register_events(el);\n",
       "    }\n",
       "\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
       "    var manager = IPython.notebook.keyboard_manager;\n",
       "    if (!manager)\n",
       "        manager = IPython.keyboard_manager;\n",
       "\n",
       "    // Check for shift+enter\n",
       "    if (event.shiftKey && event.which == 13) {\n",
       "        this.canvas_div.blur();\n",
       "        event.shiftKey = false;\n",
       "        // Send a \"J\" for go to next cell\n",
       "        event.which = 74;\n",
       "        event.keyCode = 74;\n",
       "        manager.command_mode();\n",
       "        manager.handle_keydown(event);\n",
       "    }\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
       "    fig.ondownload(fig, null);\n",
       "}\n",
       "\n",
       "\n",
       "mpl.find_output_cell = function(html_output) {\n",
       "    // Return the cell and output element which can be found *uniquely* in the notebook.\n",
       "    // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
       "    // IPython event is triggered only after the cells have been serialised, which for\n",
       "    // our purposes (turning an active figure into a static one), is too late.\n",
       "    var cells = IPython.notebook.get_cells();\n",
       "    var ncells = cells.length;\n",
       "    for (var i=0; i<ncells; i++) {\n",
       "        var cell = cells[i];\n",
       "        if (cell.cell_type === 'code'){\n",
       "            for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
       "                var data = cell.output_area.outputs[j];\n",
       "                if (data.data) {\n",
       "                    // IPython >= 3 moved mimebundle to data attribute of output\n",
       "                    data = data.data;\n",
       "                }\n",
       "                if (data['text/html'] == html_output) {\n",
       "                    return [cell, data, j];\n",
       "                }\n",
       "            }\n",
       "        }\n",
       "    }\n",
       "}\n",
       "\n",
       "// Register the function which deals with the matplotlib target/channel.\n",
       "// The kernel may be null if the page has been refreshed.\n",
       "if (IPython.notebook.kernel != null) {\n",
       "    IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
       "}\n"
      ],
      "text/plain": [
       "<IPython.core.display.Javascript object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<img src=\"data:image/png;base64,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5JmzRBIggTAQWLJkiTofFjJRtGhRue222yRlypQh5RyqAOK87Y8//lh+/fVXVU6VKlXUObjVq1cPqVynXRxOAdRhSgF02hPA+iRFAhTApBh1tpkEXEAA58pOmDBBDh06ZLk1OrLim3nnzp2ldu3aUqtWLUmbNq06i/v//u//1BnP+fPnt1yPxL6RApjYEWD5JBB5AhTAyDNniSRAAgkk0K1bN/noo4+8uRQuXFjeffddGT16tOqdS5EihdSsWVOmTJkid9xxh/e69evXq2HjnTt3Srly5WTo0KHStm3bWEPAkLlBgwbJjz/+qA58x7AyDn/3zcfI8MaNG5ItWzaBjD7yyCNBW/X222/L66+/Lr///rtkyZJF7r77bjWEjfT111/HW39DVj///HN588035eeff1Zt+OSTT+TcuXPSp08f2bVrl9SpU0dmzpwpOXPmVPmC1dmzZ6VSpUry1ltvyZUrV6RTp04qj9SpU6tr/AUwJiZGhg0bpvLGvShn/Pjx6jokSPeTTz4pq1atElxbpEgRJePNmzcXM6levHixPP3006rdNWrUkK5du0r37t3V0D2HgIM+NryABGwhQAG0BSszJQESsJMAhOeNN96QqVOnyoYNG5TwrVy5UpIlSyZ33nmnXLx4UYYPH65kZMuWLZI8eXL1O8z3a9Cggbz44oty4MAB6d+/v+zfv98rgH/88YeUL19eic7gwYMlc+bMsnr1atXjV7JkyThNOn/+vOTKlUtmz54tLVq0iLfJEDbID+QM+Z05c0ZJZr9+/dR9c+bMibf+hliVKlVKJk+eLIUKFZJHH31UCRjqCflNnz69dOjQQRo1aiTvvPOOVwCR93333afajXwgXz179pQxY8aYCiB6OnHduHHjJF++fDJ37lwlhNu2bZPixYurtqLcSZMmSYYMGWTHjh2qDnXr1o0jgJA+3NO7d28lqeDw7LPPyokTJyiAdr5ImDcJBCFAAeQjQgIkEJUEIEH4gaiYpT///FPJGaQFPViQRUgdhASihIReQ0iJsQhkyJAh8tlnn8nu3bslVapUQbn07dtXli5dqnodMSQcX8JQMcTryJEjkilTpqB5+9ffEMBp06ZJjx491P2oK3rzvvvuOyW2SJA29FiiNxAJPYALFy6M0+6BAweqnkPIsW8P4G+//aaEDfWE/BkJUom5jpjzCElu166djBgxIk47/HsAwXTevHlqmByCjvTCCy+oHkX2AAZ9DHgBCdhGgAJoG1pmTAIkYCcBfwGEuKCHa926dXLq1Cm5efOm6vVbtGiRGpp85plnZOvWrbJ8+XJvtfDfGOI1BBDXYejUd3g5UBsw/w+yhQUNEKJgCb2FmD947Ngxadq0qfq5//77vTIarP6GWGEYu1q1aqq477//XonfyZMnvUO+H374oephQw+jIYCHDx82bTfyxPC5rwCiNxO9iOjZ801Xr15Vw+UYgoaEQpwhhBBDyKDBwF8A0UYMk0+fPt2b3fz586VNmzYUwGAPDf9OAjYSoADaCJdZkwAJ2EfAXwDLlCkjBQsWVPP30HMFAUTPH4YvIRuYg/bLL7/EK4AQmYwZMwYVwIkTJ6oh12+//VaqVq2q3cjr168rYVy2bJka8kXvG4awMQ8uWP3N5taZraZF7x/airl7wQQQc/kwlOwrgBA8DAGjxw5D674JbPLkyaN+hZ5UyDXa8tVXX6nh4KeeeirOEDDYZ8+enQKo/ZTwQhKIDAEKYGQ4sxQSIIEwE/AVwNOnT6ttYDAPEAsrkLBAAf82BNAYAsbQZrp06dQ17733npqbZvQAjho1SslffEPAWOwA+cPQL+b0WU3onYT4Qbjq1asXtP4JEUAMAfu3+7nnnjMdAt6zZ4+a7+jLMlgbMbQOGYRgBxoCxjxBI+F69J5yCDgYWf6dBOwjQAG0jy1zJgESsJGArwCitw/z/Zo1a6bmpWHIE/PM0LtmCOCFCxfUIpDGjRurBQ0QFSwC2bdvn1cAIZKQHwgZJAUrdTGkjKFO/B7DvhhmnjVrlhrONRJ6xvATX0IvGRacYKEEhkSxMhYraSFNpUuXDlr/hAggehtbtmyp2o1eP8xFxM/YsWNVlf1XAXfp0kUtfkGvHlYPY0gdQ+dYYINhcvQwgnWJEiWUxGE4GCuBIbP+9UQsMKcQ8yWxAnvjxo1qiPr48eMUQBtfH8yaBIIRoAAGI8S/kwAJOJKA/xAwhmOxohaSBVnDKmGIjSGAaARkDj1+2AYGQ66QOQz7+p4EAiHDAgn0IGII1NgGBptNQ3LM9h2EdI4cOTJeTsgPAob8sRULpAjb0GC+HVKw+idEADEcXKFCBbUNDObydezYUW1dkyZNGlMBvHbtmurlxKbXWBmdI0cOta0OekghgRjqxUbc6FXE6l/MZ8T2NrjOrJ6QX8zBxLAxZBryiRXM7AF05EuLlUoiBCiASSTQbCYJkEDSJGDsA4iVuEwkQAIkYBCgAPJZIAESIAEXE6AAuji4bBoJJIAABTAB8HgrCZAACRgEsKkz5sUFSpiDmBiJApgY1FkmCTifAAXQ+TFiDUmABKKAwOXLl9V8uUCpWLFiUdAKVpEESCCpEKAAJpVIs50kQAIkQAIkQAIk8A8BCiAfBRIgARIgARIgARJIYgQogEks4GwuCZAACZAACZAACfw/WHPa8ALbb1MAAAAASUVORK5CYII=\" width=\"640\">"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "bunch pattern sase3: 400 pulses, 96 samples between two pulses\n",
      "Auto-find peak params: 1820 pulses, 43 samples between two pulses\n"
     ]
    },
    {
     "data": {
      "application/javascript": [
       "/* Put everything inside the global mpl namespace */\n",
       "window.mpl = {};\n",
       "\n",
       "\n",
       "mpl.get_websocket_type = function() {\n",
       "    if (typeof(WebSocket) !== 'undefined') {\n",
       "        return WebSocket;\n",
       "    } else if (typeof(MozWebSocket) !== 'undefined') {\n",
       "        return MozWebSocket;\n",
       "    } else {\n",
       "        alert('Your browser does not have WebSocket support.' +\n",
       "              'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
       "              'Firefox 4 and 5 are also supported but you ' +\n",
       "              'have to enable WebSockets in about:config.');\n",
       "    };\n",
       "}\n",
       "\n",
       "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
       "    this.id = figure_id;\n",
       "\n",
       "    this.ws = websocket;\n",
       "\n",
       "    this.supports_binary = (this.ws.binaryType != undefined);\n",
       "\n",
       "    if (!this.supports_binary) {\n",
       "        var warnings = document.getElementById(\"mpl-warnings\");\n",
       "        if (warnings) {\n",
       "            warnings.style.display = 'block';\n",
       "            warnings.textContent = (\n",
       "                \"This browser does not support binary websocket messages. \" +\n",
       "                    \"Performance may be slow.\");\n",
       "        }\n",
       "    }\n",
       "\n",
       "    this.imageObj = new Image();\n",
       "\n",
       "    this.context = undefined;\n",
       "    this.message = undefined;\n",
       "    this.canvas = undefined;\n",
       "    this.rubberband_canvas = undefined;\n",
       "    this.rubberband_context = undefined;\n",
       "    this.format_dropdown = undefined;\n",
       "\n",
       "    this.image_mode = 'full';\n",
       "\n",
       "    this.root = $('<div/>');\n",
       "    this._root_extra_style(this.root)\n",
       "    this.root.attr('style', 'display: inline-block');\n",
       "\n",
       "    $(parent_element).append(this.root);\n",
       "\n",
       "    this._init_header(this);\n",
       "    this._init_canvas(this);\n",
       "    this._init_toolbar(this);\n",
       "\n",
       "    var fig = this;\n",
       "\n",
       "    this.waiting = false;\n",
       "\n",
       "    this.ws.onopen =  function () {\n",
       "            fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
       "            fig.send_message(\"send_image_mode\", {});\n",
       "            if (mpl.ratio != 1) {\n",
       "                fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n",
       "            }\n",
       "            fig.send_message(\"refresh\", {});\n",
       "        }\n",
       "\n",
       "    this.imageObj.onload = function() {\n",
       "            if (fig.image_mode == 'full') {\n",
       "                // Full images could contain transparency (where diff images\n",
       "                // almost always do), so we need to clear the canvas so that\n",
       "                // there is no ghosting.\n",
       "                fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
       "            }\n",
       "            fig.context.drawImage(fig.imageObj, 0, 0);\n",
       "        };\n",
       "\n",
       "    this.imageObj.onunload = function() {\n",
       "        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_div\n",
       "    this._canvas_extra_style(canvas_div)\n",
       "    this.root.append(canvas_div);\n",
       "\n",
       "    var canvas = $('<canvas/>');\n",
       "    canvas.addClass('mpl-canvas');\n",
       "    canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
       "\n",
       "    this.canvas = canvas[0];\n",
       "    this.context = canvas[0].getContext(\"2d\");\n",
       "\n",
       "    var backingStore = this.context.backingStorePixelRatio ||\n",
       "\tthis.context.webkitBackingStorePixelRatio ||\n",
       "\tthis.context.mozBackingStorePixelRatio ||\n",
       "\tthis.context.msBackingStorePixelRatio ||\n",
       "\tthis.context.oBackingStorePixelRatio ||\n",
       "\tthis.context.backingStorePixelRatio || 1;\n",
       "\n",
       "    mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
       "\n",
       "    var rubberband = $('<canvas/>');\n",
       "    rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
       "\n",
       "    var pass_mouse_events = true;\n",
       "\n",
       "    canvas_div.resizable({\n",
       "        start: function(event, ui) {\n",
       "            pass_mouse_events = false;\n",
       "        },\n",
       "        resize: function(event, ui) {\n",
       "            fig.request_resize(ui.size.width, ui.size.height);\n",
       "        },\n",
       "        stop: function(event, ui) {\n",
       "            pass_mouse_events = true;\n",
       "            fig.request_resize(ui.size.width, ui.size.height);\n",
       "        },\n",
       "    });\n",
       "\n",
       "    function mouse_event_fn(event) {\n",
       "        if (pass_mouse_events)\n",
       "            return fig.mouse_event(event, event['data']);\n",
       "    }\n",
       "\n",
       "    rubberband.mousedown('button_press', mouse_event_fn);\n",
       "    rubberband.mouseup('button_release', mouse_event_fn);\n",
       "    // Throttle sequential mouse events to 1 every 20ms.\n",
       "    rubberband.mousemove('motion_notify', mouse_event_fn);\n",
       "\n",
       "    rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
       "    rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
       "\n",
       "    canvas_div.on(\"wheel\", function (event) {\n",
       "        event = event.originalEvent;\n",
       "        event['data'] = 'scroll'\n",
       "        if (event.deltaY < 0) {\n",
       "            event.step = 1;\n",
       "        } else {\n",
       "            event.step = -1;\n",
       "        }\n",
       "        mouse_event_fn(event);\n",
       "    });\n",
       "\n",
       "    canvas_div.append(canvas);\n",
       "    canvas_div.append(rubberband);\n",
       "\n",
       "    this.rubberband = rubberband;\n",
       "    this.rubberband_canvas = rubberband[0];\n",
       "    this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
       "    this.rubberband_context.strokeStyle = \"#000000\";\n",
       "\n",
       "    this._resize_canvas = function(width, height) {\n",
       "        // Keep the size of the canvas, canvas container, and rubber band\n",
       "        // canvas in synch.\n",
       "        canvas_div.css('width', width)\n",
       "        canvas_div.css('height', height)\n",
       "\n",
       "        canvas.attr('width', width * mpl.ratio);\n",
       "        canvas.attr('height', height * mpl.ratio);\n",
       "        canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n",
       "\n",
       "        rubberband.attr('width', width);\n",
       "        rubberband.attr('height', height);\n",
       "    }\n",
       "\n",
       "    // Set the figure to an initial 600x600px, this will subsequently be updated\n",
       "    // upon first draw.\n",
       "    this._resize_canvas(600, 600);\n",
       "\n",
       "    // Disable right mouse context menu.\n",
       "    $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
       "        return false;\n",
       "    });\n",
       "\n",
       "    function set_focus () {\n",
       "        canvas.focus();\n",
       "        canvas_div.focus();\n",
       "    }\n",
       "\n",
       "    window.setTimeout(set_focus, 100);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_toolbar = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var nav_element = $('<div/>')\n",
       "    nav_element.attr('style', 'width: 100%');\n",
       "    this.root.append(nav_element);\n",
       "\n",
       "    // Define a callback function for later on.\n",
       "    function toolbar_event(event) {\n",
       "        return fig.toolbar_button_onclick(event['data']);\n",
       "    }\n",
       "    function toolbar_mouse_event(event) {\n",
       "        return fig.toolbar_button_onmouseover(event['data']);\n",
       "    }\n",
       "\n",
       "    for(var toolbar_ind in mpl.toolbar_items) {\n",
       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
       "\n",
       "        if (!name) {\n",
       "            // put a spacer in here.\n",
       "            continue;\n",
       "        }\n",
       "        var button = $('<button/>');\n",
       "        button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
       "                        'ui-button-icon-only');\n",
       "        button.attr('role', 'button');\n",
       "        button.attr('aria-disabled', 'false');\n",
       "        button.click(method_name, toolbar_event);\n",
       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
       "\n",
       "        var icon_img = $('<span/>');\n",
       "        icon_img.addClass('ui-button-icon-primary ui-icon');\n",
       "        icon_img.addClass(image);\n",
       "        icon_img.addClass('ui-corner-all');\n",
       "\n",
       "        var tooltip_span = $('<span/>');\n",
       "        tooltip_span.addClass('ui-button-text');\n",
       "        tooltip_span.html(tooltip);\n",
       "\n",
       "        button.append(icon_img);\n",
       "        button.append(tooltip_span);\n",
       "\n",
       "        nav_element.append(button);\n",
       "    }\n",
       "\n",
       "    var fmt_picker_span = $('<span/>');\n",
       "\n",
       "    var fmt_picker = $('<select/>');\n",
       "    fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
       "    fmt_picker_span.append(fmt_picker);\n",
       "    nav_element.append(fmt_picker_span);\n",
       "    this.format_dropdown = fmt_picker[0];\n",
       "\n",
       "    for (var ind in mpl.extensions) {\n",
       "        var fmt = mpl.extensions[ind];\n",
       "        var option = $(\n",
       "            '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
       "        fmt_picker.append(option)\n",
       "    }\n",
       "\n",
       "    // Add hover states to the ui-buttons\n",
       "    $( \".ui-button\" ).hover(\n",
       "        function() { $(this).addClass(\"ui-state-hover\");},\n",
       "        function() { $(this).removeClass(\"ui-state-hover\");}\n",
       "    );\n",
       "\n",
       "    var status_bar = $('<span class=\"mpl-message\"/>');\n",
       "    nav_element.append(status_bar);\n",
       "    this.message = status_bar[0];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",