Skip to content

Instantly share code, notes, and snippets.

@AnthonyFJGarner
Last active September 19, 2022 08:59
Show Gist options
  • Save AnthonyFJGarner/70d9f56d6ff1275aebded0a084a60e73 to your computer and use it in GitHub Desktop.
Save AnthonyFJGarner/70d9f56d6ff1275aebded0a084a60e73 to your computer and use it in GitHub Desktop.
Rolling Eurodollar Futures Part 2
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Introduction\n",
"This notebook takes the master data file produced in the earlier ED_Future notebook ('..\\data\\Futures\\ed_master.csv') \n",
"and creates a concatenated file of futures contracts containing your chosen maturities. EG when do you want to roll? \n",
"How long dated do you want to go? Do you want to test / trade the front contract only? A contract a year out? 4 years out?\n",
"Back in 1982 there was not much choice. These days you can trade for delivery four years out."
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [],
"source": [
"#Imports\n",
"import pandas as pd\n",
"import numpy as np\n",
"from numba import jit\n",
"import os\n",
"import ffn\n",
"from pandas.tseries.offsets import *\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib notebook"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [],
"source": [
"#read in the master data file produced in the earlier notebook which contains every contract maturity\n",
"ed_master = '..\\data\\Futures\\ed_master.csv'\n",
"\n",
"eurodollar = pd.read_csv(\n",
" ed_master,\n",
" header=0,\n",
" parse_dates=[\"Date\", \"Start\", 'End'],\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Date</th>\n",
" <th>Open</th>\n",
" <th>High</th>\n",
" <th>Low</th>\n",
" <th>Close</th>\n",
" <th>Volume</th>\n",
" <th>Open_Interest</th>\n",
" <th>Return</th>\n",
" <th>VAMI</th>\n",
" <th>Contract</th>\n",
" <th>Start</th>\n",
" <th>End</th>\n",
" <th>DStart</th>\n",
" <th>DEnd</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1982-02-02</td>\n",
" <td>83.77</td>\n",
" <td>84.10</td>\n",
" <td>83.77</td>\n",
" <td>83.88</td>\n",
" <td>941</td>\n",
" <td>1126</td>\n",
" <td>0.001672</td>\n",
" <td>100.167184</td>\n",
" <td>ED1982H</td>\n",
" <td>1982-02-01</td>\n",
" <td>1982-03-15</td>\n",
" <td>False</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1982-02-02</td>\n",
" <td>83.79</td>\n",
" <td>84.10</td>\n",
" <td>83.76</td>\n",
" <td>83.85</td>\n",
" <td>941</td>\n",
" <td>983</td>\n",
" <td>0.001912</td>\n",
" <td>100.191182</td>\n",
" <td>ED1982M</td>\n",
" <td>1982-02-01</td>\n",
" <td>1982-06-14</td>\n",
" <td>True</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1982-02-02</td>\n",
" <td>83.80</td>\n",
" <td>84.05</td>\n",
" <td>83.76</td>\n",
" <td>83.85</td>\n",
" <td>941</td>\n",
" <td>444</td>\n",
" <td>0.001912</td>\n",
" <td>100.191182</td>\n",
" <td>ED1982U</td>\n",
" <td>1982-02-01</td>\n",
" <td>1982-09-13</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1982-02-03</td>\n",
" <td>83.96</td>\n",
" <td>84.10</td>\n",
" <td>83.71</td>\n",
" <td>83.73</td>\n",
" <td>759</td>\n",
" <td>1241</td>\n",
" <td>-0.001788</td>\n",
" <td>99.988058</td>\n",
" <td>ED1982H</td>\n",
" <td>1982-02-01</td>\n",
" <td>1982-03-15</td>\n",
" <td>False</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1982-02-03</td>\n",
" <td>83.97</td>\n",
" <td>84.03</td>\n",
" <td>83.85</td>\n",
" <td>83.89</td>\n",
" <td>759</td>\n",
" <td>1021</td>\n",
" <td>0.000477</td>\n",
" <td>100.238977</td>\n",
" <td>ED1982M</td>\n",
" <td>1982-02-01</td>\n",
" <td>1982-06-14</td>\n",
" <td>True</td>\n",
" <td>True</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Date Open High Low Close Volume Open_Interest Return \\\n",
"0 1982-02-02 83.77 84.10 83.77 83.88 941 1126 0.001672 \n",
"1 1982-02-02 83.79 84.10 83.76 83.85 941 983 0.001912 \n",
"2 1982-02-02 83.80 84.05 83.76 83.85 941 444 0.001912 \n",
"3 1982-02-03 83.96 84.10 83.71 83.73 759 1241 -0.001788 \n",
"4 1982-02-03 83.97 84.03 83.85 83.89 759 1021 0.000477 \n",
"\n",
" VAMI Contract Start End DStart DEnd \n",
"0 100.167184 ED1982H 1982-02-01 1982-03-15 False True \n",
"1 100.191182 ED1982M 1982-02-01 1982-06-14 True True \n",
"2 100.191182 ED1982U 1982-02-01 1982-09-13 True False \n",
"3 99.988058 ED1982H 1982-02-01 1982-03-15 False True \n",
"4 100.238977 ED1982M 1982-02-01 1982-06-14 True True "
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#Add columns which will trigger your choice of contracts\n",
"#Don't worry about the nonsensical VAMI. Thgis will get updated when maturites have been chosen\n",
"#and the datafile thinned out to only those contract you want to test / trade\n",
"eurodollar['DStart'] = eurodollar.Date.eq(eurodollar.Date.shift(1))\n",
"eurodollar['DEnd'] = eurodollar.Date.eq(eurodollar.Date.shift(-1))\n",
"eurodollar.head()"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {},
"outputs": [],
"source": [
"#initialise variables\n",
"#what length of expiration are you looking for in days?\n",
"expiration = int(400)"
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {},
"outputs": [],
"source": [
"#Create a dictionary to store data as you loop through the master file\n",
"#and a counter\n",
"temp_futures = {}\n",
"a = 0\n",
"\n",
"#loop through the master data file\n",
"for i, row in enumerate(eurodollar.itertuples(), 0):\n",
"\n",
" if row.DStart == False:\n",
" #for each trading day initiate the price series with the earliest expiry first. \n",
" #Find your target expiration date\n",
" #and how wide of your target this first expiry listed for this trading day is\n",
" targetExpiration = row.Date + expiration * Day()\n",
" targetExpirationDifference = abs(targetExpiration - row.End)\n",
" expirationLocation = (i)\n",
"\n",
" if row.DStart == True and row.DEnd == True:\n",
" #iterate through the different expirations trading each day\n",
" #find the closest match to targetExpiration\n",
" if abs(targetExpiration - row.End) <= targetExpirationDifference:\n",
" #error correction routine - when diff between target expiration and expiration continues to decline,\n",
" #algo chooses the closer expirataion\n",
" targetExpirationDifference = abs(targetExpiration - row.End)\n",
" expirationLocation = (i)\n",
" #closest expiration to your target expiration has now been chosen. \n",
" \n",
" if row.DEnd == False:\n",
" #Now you have reached the last contract trading on the relevant trading day\n",
" if abs(targetExpiration - row.End) <= targetExpirationDifference:\n",
" #error correction routine - when diff between target expiration and expiration continues to decline,\n",
" #algo chooses the closer expirataion\n",
" targetExpirationDifference = abs(targetExpiration - row.End)\n",
" expirationLocation = (i)\n",
" #You have now found the closest expiry to your target expiry for a given trading day...\n",
" #So add a row for the day's data for that expiry to the dictionary\n",
" temp_futures[eurodollar.Date[i]] = [\n",
" eurodollar.Date[i], eurodollar.Close[expirationLocation],\n",
" eurodollar.Return[expirationLocation],\n",
" eurodollar.Volume[expirationLocation],\n",
" eurodollar.Contract[expirationLocation],\n",
" eurodollar.Start[expirationLocation],\n",
" eurodollar.End[expirationLocation], targetExpiration,\n",
" targetExpirationDifference\n",
" ]"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {},
"outputs": [],
"source": [
"#This function will calculate the VAMI each day from the return for that day\n",
"@jit()\n",
"def calculator(a):\n",
" res = np.empty(rolling_eurodollar.VAMI.shape)\n",
" res[0] = 100\n",
" for i in range(1, res.shape[0]):\n",
" res[i] = res[i-1] +(res[i-1]* a[i])\n",
" return res"
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {},
"outputs": [],
"source": [
"#Create a dataframe from the dictionary temp_futures\n",
"rolling_eurodollar = pd.DataFrame(temp_futures).T\n",
"rolling_eurodollar.index.name = 'Date'\n",
"rolling_eurodollar.columns = [\n",
" 'Date', 'Close', 'Return', 'Volume', 'Contract', 'Start', 'End',\n",
" 'targetExpiration', 'targetExpirationDifference'\n",
"]\n",
"rolling_eurodollar['VAMI']=0.0\n",
"#calculate the VAMI for each day\n",
"rolling_eurodollar['VAMI'] = calculator(\n",
" *rolling_eurodollar[list(rolling_eurodollar.loc[:, ['Return']])].values.T)"
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Date</th>\n",
" <th>Close</th>\n",
" <th>Return</th>\n",
" <th>Volume</th>\n",
" <th>Contract</th>\n",
" <th>Start</th>\n",
" <th>End</th>\n",
" <th>targetExpiration</th>\n",
" <th>targetExpirationDifference</th>\n",
" <th>VAMI</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2019-04-08</th>\n",
" <td>2019-04-08 00:00:00</td>\n",
" <td>97.68</td>\n",
" <td>-0.000204708</td>\n",
" <td>82091</td>\n",
" <td>ED2020M</td>\n",
" <td>2016-06-30 00:00:00</td>\n",
" <td>2020-06-15 00:00:00</td>\n",
" <td>2020-05-12 00:00:00</td>\n",
" <td>34 days 00:00:00</td>\n",
" <td>152.649468</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2019-04-09</th>\n",
" <td>2019-04-09 00:00:00</td>\n",
" <td>97.71</td>\n",
" <td>0.000307125</td>\n",
" <td>67924</td>\n",
" <td>ED2020M</td>\n",
" <td>2016-06-30 00:00:00</td>\n",
" <td>2020-06-15 00:00:00</td>\n",
" <td>2020-05-13 00:00:00</td>\n",
" <td>33 days 00:00:00</td>\n",
" <td>152.696351</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2019-04-10</th>\n",
" <td>2019-04-10 00:00:00</td>\n",
" <td>97.73</td>\n",
" <td>0.000204687</td>\n",
" <td>106436</td>\n",
" <td>ED2020M</td>\n",
" <td>2016-06-30 00:00:00</td>\n",
" <td>2020-06-15 00:00:00</td>\n",
" <td>2020-05-14 00:00:00</td>\n",
" <td>32 days 00:00:00</td>\n",
" <td>152.727606</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2019-04-11</th>\n",
" <td>2019-04-11 00:00:00</td>\n",
" <td>97.695</td>\n",
" <td>-0.00035813</td>\n",
" <td>53472</td>\n",
" <td>ED2020M</td>\n",
" <td>2016-06-30 00:00:00</td>\n",
" <td>2020-06-15 00:00:00</td>\n",
" <td>2020-05-15 00:00:00</td>\n",
" <td>31 days 00:00:00</td>\n",
" <td>152.672909</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2019-04-12</th>\n",
" <td>2019-04-12 00:00:00</td>\n",
" <td>97.625</td>\n",
" <td>-0.000716516</td>\n",
" <td>53472</td>\n",
" <td>ED2020M</td>\n",
" <td>2016-06-30 00:00:00</td>\n",
" <td>2020-06-15 00:00:00</td>\n",
" <td>2020-05-16 00:00:00</td>\n",
" <td>30 days 00:00:00</td>\n",
" <td>152.563517</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Date Close Return Volume Contract \\\n",
"Date \n",
"2019-04-08 2019-04-08 00:00:00 97.68 -0.000204708 82091 ED2020M \n",
"2019-04-09 2019-04-09 00:00:00 97.71 0.000307125 67924 ED2020M \n",
"2019-04-10 2019-04-10 00:00:00 97.73 0.000204687 106436 ED2020M \n",
"2019-04-11 2019-04-11 00:00:00 97.695 -0.00035813 53472 ED2020M \n",
"2019-04-12 2019-04-12 00:00:00 97.625 -0.000716516 53472 ED2020M \n",
"\n",
" Start End targetExpiration \\\n",
"Date \n",
"2019-04-08 2016-06-30 00:00:00 2020-06-15 00:00:00 2020-05-12 00:00:00 \n",
"2019-04-09 2016-06-30 00:00:00 2020-06-15 00:00:00 2020-05-13 00:00:00 \n",
"2019-04-10 2016-06-30 00:00:00 2020-06-15 00:00:00 2020-05-14 00:00:00 \n",
"2019-04-11 2016-06-30 00:00:00 2020-06-15 00:00:00 2020-05-15 00:00:00 \n",
"2019-04-12 2016-06-30 00:00:00 2020-06-15 00:00:00 2020-05-16 00:00:00 \n",
"\n",
" targetExpirationDifference VAMI \n",
"Date \n",
"2019-04-08 34 days 00:00:00 152.649468 \n",
"2019-04-09 33 days 00:00:00 152.696351 \n",
"2019-04-10 32 days 00:00:00 152.727606 \n",
"2019-04-11 31 days 00:00:00 152.672909 \n",
"2019-04-12 30 days 00:00:00 152.563517 "
]
},
"execution_count": 64,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rolling_eurodollar.tail()"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {},
"outputs": [],
"source": [
"#Save your time series to csv for retrieval for later backtesting with your chosen program\n",
"rolling_eurodollar.to_csv('..\\data\\Futures/rolling_eurodollar.csv', index=None)"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {},
"outputs": [],
"source": [
"#Create a new dataframe to display the results\n",
"ED=rolling_eurodollar[['VAMI']].copy()"
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>VAMI</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Date</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2019-04-08</th>\n",
" <td>152.649468</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2019-04-09</th>\n",
" <td>152.696351</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2019-04-10</th>\n",
" <td>152.727606</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2019-04-11</th>\n",
" <td>152.672909</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2019-04-12</th>\n",
" <td>152.563517</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" VAMI\n",
"Date \n",
"2019-04-08 152.649468\n",
"2019-04-09 152.696351\n",
"2019-04-10 152.727606\n",
"2019-04-11 152.672909\n",
"2019-04-12 152.563517"
]
},
"execution_count": 67,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#Inspect the final results\n",
"ED.tail()"
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {},
"outputs": [
{
"data": {
"application/javascript": [
"/* Put everything inside the global mpl namespace */\n",
"window.mpl = {};\n",
"\n",
"\n",
"mpl.get_websocket_type = function() {\n",
" if (typeof(WebSocket) !== 'undefined') {\n",
" return WebSocket;\n",
" } else if (typeof(MozWebSocket) !== 'undefined') {\n",
" return MozWebSocket;\n",
" } else {\n",
" alert('Your browser does not have WebSocket support.' +\n",
" 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
" 'Firefox 4 and 5 are also supported but you ' +\n",
" 'have to enable WebSockets in about:config.');\n",
" };\n",
"}\n",
"\n",
"mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
" this.id = figure_id;\n",
"\n",
" this.ws = websocket;\n",
"\n",
" this.supports_binary = (this.ws.binaryType != undefined);\n",
"\n",
" if (!this.supports_binary) {\n",
" var warnings = document.getElementById(\"mpl-warnings\");\n",
" if (warnings) {\n",
" warnings.style.display = 'block';\n",
" warnings.textContent = (\n",
" \"This browser does not support binary websocket messages. \" +\n",
" \"Performance may be slow.\");\n",
" }\n",
" }\n",
"\n",
" this.imageObj = new Image();\n",
"\n",
" this.context = undefined;\n",
" this.message = undefined;\n",
" this.canvas = undefined;\n",
" this.rubberband_canvas = undefined;\n",
" this.rubberband_context = undefined;\n",
" this.format_dropdown = undefined;\n",
"\n",
" this.image_mode = 'full';\n",
"\n",
" this.root = $('<div/>');\n",
" this._root_extra_style(this.root)\n",
" this.root.attr('style', 'display: inline-block');\n",
"\n",
" $(parent_element).append(this.root);\n",
"\n",
" this._init_header(this);\n",
" this._init_canvas(this);\n",
" this._init_toolbar(this);\n",
"\n",
" var fig = this;\n",
"\n",
" this.waiting = false;\n",
"\n",
" this.ws.onopen = function () {\n",
" fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
" fig.send_message(\"send_image_mode\", {});\n",
" if (mpl.ratio != 1) {\n",
" fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n",
" }\n",
" fig.send_message(\"refresh\", {});\n",
" }\n",
"\n",
" this.imageObj.onload = function() {\n",
" if (fig.image_mode == 'full') {\n",
" // Full images could contain transparency (where diff images\n",
" // almost always do), so we need to clear the canvas so that\n",
" // there is no ghosting.\n",
" fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
" }\n",
" fig.context.drawImage(fig.imageObj, 0, 0);\n",
" };\n",
"\n",
" this.imageObj.onunload = function() {\n",
" 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",
" // 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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XDiZD4G650Pg77//tnfeecf+8Y9/WLly5fJREpsigAACySXA+S+52isotSURCEpL+FCPDz74wM466yy74YYb7KGHHrIiRYr4UGryFPHoo4/ap59+amXKlLGWLVvaLbfcYgUKFEieA/Chpvv27QvdMbts6vMPPPCAHXnkkXbrrbfaZZddFjqLsCfCW7dutR9//NGOO+44Hz5NyVfEzp07TReD9G6YsJ371FqZz39hOh9y/ku+z2tQakwiEJSWyEc93JPdI488YjfffLMdfvjh9vnnn1vr1q3zUWrybLpo0SK78MIL7c8//7Tu3bvbvHnzbNy4cU5Q+O9//9uKFi2aPAeTj5o+99xztnDhQqf9W7RoYSeffHI+SkuuTR977DF78sknnf7frl07q1ixopMQhGlRf1ciXK1aNWvVqpVdd911obo7Nm3aNDvxxBPt6KOPtmeffdb5N0yLAsH//ve/VqpUKatTp46TDDdo0CA0BJz/wn3+C01Hj8GBkgjEADVRRf7nP/9x3hb6888/W8mSJe2jjz6yEiVKJKo6cdvv4MGD7bPPPrMXX3zRGjVqZIUKFTJZ6HeySPVl8uTJduWVV5quhh5zzDGmgOj333+39957zxkik+rLxo0brU2bNnb++ec7d4GKFSuW6oecfny6CKDPvO5+/PDDD3b22Wfb4sWL7eOPP7aLLrrIbr/9dqtbt67t3bvXChYsmNIuSoLU3w855BDnuHUOUF9I9avCv/zyi1166aW2YsUKO/fcc+2vv/6y559/3kmKRowYYVWrVk3pduf8F97zX0p37DgeHIlAHLFjtSv3S37gwIE2f/58u+SSS+yMM86wN9980/75z3/GareBKHf79u1OEFi9enUn8dm1a5czJOrpp592hkfNnj3bSpcunbLBwPfff+/c9ahXr54NGDDA+dJft26d9enTx3SnRMefSkPEsgrqZs2aZeecc45zNVxBr4ZHPPXUU85zMroq7F4ZTtWAUAlAz549neDvlFNOcT6XL730kj388MNWv35905DBMCz6/I8aNcpWr15t6hPvvvuutW3bNuUP/Y033rBBgwbZq6++6twN04WQ1157zfr162fffPNNSt8VCNv5L6vOHPbzX8p/wONwgCQCcUD2cxerVq2yI444wrn9qyUyuNFV4aOOOsruvPNOJyDQFaIvv/zSGSaRKkvm49fV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yAVIBELeATh8BBBIfYHcEoE2bdrYxo0bnav5kcvevXtN/ymw79Wrl3PHwL0rkNUzApdccolNnDjRuZtQvHhxZ90NGzZYWlqac1fh2muvTX1sjhABBBBIIgESgSRqLKqKAAIIeBHILRE47rjjbNOmTU4Ar2RAswFpViBdyXeXM888095///0cE4FKlSrZueeeaw899FCGamrokO4mvPzyy16qzzYIIIAAAjESIBGIESzFIoAAAkERyC0R0NAgBeoff/yxM8SnXLlydtNNNzlTjOrKfu/evU3rfPrppzkmAkWKFHGeC8hqOfHEE+3LL78MCgn1QAABBBDQlNL79DQYCwIIIIBAygrklAj89NNPztCf22+/3XmvQLdu3WzWrFnOQ8LuoqE9eqA4t0SgQoUKzixEWQ0B0rsL6tWrl7LGHBgCCCCQjAIkAsnYatQZAQQQyINATtOH9ujRwxkGtGDBAps9e7adfvrpzhAh9yVj+lu7du2cAN9NBPSswJ133mm7du3KUIsLLrjAfv75Z5s6daoVKlQoDzVkVQQQQACBRAiQCCRCnX0igAACcRTI/EIxvQjMfaGYZvp55ZVX7LzzzrN169ZZ7dq1rWXLls4UoGvWrHFmCNqzZ481a9YsPRH48MMPnYeHH330UWvbtq1p1iBd7V+8eLGzrWYOuvLKK013CH799Vf75ptvrH379s4+WBBAAAEEgiNAIhCctqAmCCCAQEwEIuf+L1CggB1yyCHO+H89xHv99ddb/fr10/c7atQo69evny1ZssR5buD++++3Bx54wNnGvSOg5wD+/e9/28iRI50HijWkyH2PgO4IDBw40L766ivnzcN6gFh/v+WWW5zhRSwIIIAAAsERIBEITltQEwQQQAABBBBAAAEE4iZAIhA3anaEAAIIIIAAAggggEBwBEgEgtMW1AQBBBBAAAEEEEAAgbgJkAjEjZodIYAAAggggAACCCAQHAESgeC0BTVBAAEEEEAAAQQQQCBuAiQCcaNmRwgggAACCCCAAAIIBEeARCA4bUFNEEAAAQQQQAABBBCImwCJQNyo2RECCCCAAAIIIIAAAsERIBEITltQEwQQQAABBBBAAAEE4iZAIhA3anaEAAIIIIAAAggggEBwBEgEgtMW1AQBBBBAAAEEEEAAgbgJkAjEjZodIYAAAggggAACCCAQHAESgeC0BTVBAAEEEEAAAQQQQCBuAiQCcaNmRwgggAACCCCAAAIIBEeARCA4bUFNEEAAAQQQQAABBBCImwCJQNyo2RECCCCAAAIIIIAAAsERIBEITltQEwQQQAABBBBAAAEE4iZAIhA3anaEAAIIIIAAAggggEBwBEgEgtMW1AQBBBBAAAEEEEAAgbgJkAjEjZodIYAAAggggAACCCAQHAESgeC0BTVBAAEEEEAAAQQQQCBuAiQCcaNmRwgggAACCCCAAAIIBEeARCA4bUFNEEAAAQQQQAABBBCImwCJQNyo2RECCCCAAAIIIIAAAsERIBEITltQEwQQQAABBBBAAAEE4iZAIhA3anaEAAIIIIAAAggggEBwBEgEgtMW1AQBBBBAAAEEEEAAgbgJkAjEjZodIYAAAggggAACCCAQHAESgeC0BTVBAAEEEEAAAQQQQCBuAiQCcaNmRwgggAACCCCAAAIIBEeARCA4bUFNEEAAAQQQQAABBBCImwCJQNyo2RECCCCAAAIIIIAAAsERIBEITltQEwQQQAABBBBAAAEE4iZAIhA3anaEAAIIIIAAAggggEBwBEgEgtMW1AQBBBBAAAEEEEAAgbgJkAjEjZodIYAAAggggAACCCAQHAESgeC0BTVBAAEEEEAAAQQQQCBuAiQCcaNmRwgggAACCCCAAAIIBEeARCA4bUFNEEAAAQQQQAABBBCImwCJQNyo2RECCCCAAAIIIIAAAsERIBEITltQEwQQQAABBBBAAAEE4iZAIhA3anaEAAIIIIAAAggggEBwBEgEgtMW1AQBBBBAAAEEEEAAgbgJkAjEjZodIYAAAggggAACCCAQHAESgeC0BTVBAAEEEEAAAQQQQCBuAiQCcaNmRwgggAACCCCAAAIIBEeARCA4bUFNEEAAAQQQQAABBBCImwCJQNyo2RECCCCAAAIIIIAAAsERIBEITltQEwQQQAABBBBAAAEE4iZAIhA3anaEAAIIIIAAAggggEBwBEgEgtMW1AQBBBBAAAEEEEAAgbgJkAjEjZodIYAAAggggAACCCAQHAESgeC0BTVBAAEEEEAAAQQQQCBuAiQCcaNmRwgggAACCCCAAAIIBEeARCA4bUFNEEAAAQQQQAABBBCImwCJQNyo2RECCCCAAAIIIIAAAsERIBEITltQEwQQQAABBBBAAAEE4iZAIhA3anaEAAIIIIAAAggggEBwBEgEgtMW1AQBBBBAAAEEEEAAgbgJkAjEjZodIYAAAggggAACCCAQHAESgeC0BTVBAAEEEEAAAQQQQCBuAiQCcaNmRwgggAACCCCAAAIIBEeARCA4bUFNEEAAAQQQQAABBBCImwCJQNyo2RECCCCAAAIIIIAAAsERIBEITltQEwQQQAABBBBAAAEE4iZAIhA3anaEAAIIIIAAAggggEBwBEgEgtMW1AQBBBBAAAEEEEAAgbgJkAjEjZodIYAAAggggAACCCAQHAESgeC0BTVBAAEEEEAAAQQQQCBuAiQCcaNmRwgggAACCCCAAAIIBEeARCA4bUFNEEAAAQQQQAABBBCIm8D/AelrVxKkiSkJAAAAAElFTkSuQmCC\" width=\"699.999984827909\">"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x1b8ca67b278>"
]
},
"execution_count": 68,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#Chart the final results\n",
"log=True\n",
"ED.plot(figsize=(7,6),logy=log,title='Eurodollar Futures Concatenated Price Series')"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Stat VAMI\n",
"------------------- ----------\n",
"Start 1982-02-02\n",
"End 2019-04-12\n",
"Risk-free rate 0.00%\n",
"\n",
"Total Return 52.56%\n",
"Daily Sharpe 0.82\n",
"Daily Sortino 1.37\n",
"CAGR 1.14%\n",
"Max Drawdown -5.15%\n",
"Calmar Ratio 0.22\n",
"\n",
"MTD -0.15%\n",
"3m 0.12%\n",
"6m 0.70%\n",
"YTD 0.07%\n",
"1Y 0.38%\n",
"3Y (ann.) -0.26%\n",
"5Y (ann.) 0.08%\n",
"10Y (ann.) 0.47%\n",
"Since Incep. (ann.) 1.14%\n",
"\n",
"Daily Sharpe 0.82\n",
"Daily Sortino 1.37\n",
"Daily Mean (ann.) 1.18%\n",
"Daily Vol (ann.) 1.45%\n",
"Daily Skew 0.52\n",
"Daily Kurt 14.26\n",
"Best Day 1.31%\n",
"Worst Day -0.76%\n",
"\n",
"Monthly Sharpe 0.73\n",
"Monthly Sortino 1.36\n",
"Monthly Mean (ann.) 1.12%\n",
"Monthly Vol (ann.) 1.54%\n",
"Monthly Skew -0.01\n",
"Monthly Kurt 2.36\n",
"Best Month 1.77%\n",
"Worst Month -2.09%\n",
"\n",
"Yearly Sharpe 0.56\n",
"Yearly Sortino 1.60\n",
"Yearly Mean 0.98%\n",
"Yearly Vol 1.74%\n",
"Yearly Skew 0.31\n",
"Yearly Kurt 0.18\n",
"Best Year 4.51%\n",
"Worst Year -3.14%\n",
"\n",
"Avg. Drawdown -0.27%\n",
"Avg. Drawdown Days 39.72\n",
"Avg. Up Month 0.35%\n",
"Avg. Down Month -0.30%\n",
"Win Year % 70.27%\n",
"Win 12m % 72.02%\n"
]
}
],
"source": [
"#Produce statistics for the final results\n",
"stats = ED.calc_stats()\n",
"#Choose different start and end dates if you prefer as per the following coded out line\n",
"#ffn.core.GroupStats.set_date_range(stats,start=' 1989-09-18 ', end=start=' 2000-09-18 ')\n",
"stats.display()"
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {},
"outputs": [
{
"data": {
"application/javascript": [
"/* Put everything inside the global mpl namespace */\n",
"window.mpl = {};\n",
"\n",
"\n",
"mpl.get_websocket_type = function() {\n",
" if (typeof(WebSocket) !== 'undefined') {\n",
" return WebSocket;\n",
" } else if (typeof(MozWebSocket) !== 'undefined') {\n",
" return MozWebSocket;\n",
" } else {\n",
" alert('Your browser does not have WebSocket support.' +\n",
" 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
" 'Firefox 4 and 5 are also supported but you ' +\n",
" 'have to enable WebSockets in about:config.');\n",
" };\n",
"}\n",
"\n",
"mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
" this.id = figure_id;\n",
"\n",
" this.ws = websocket;\n",
"\n",
" this.supports_binary = (this.ws.binaryType != undefined);\n",
"\n",
" if (!this.supports_binary) {\n",
" var warnings = document.getElementById(\"mpl-warnings\");\n",
" if (warnings) {\n",
" warnings.style.display = 'block';\n",
" warnings.textContent = (\n",
" \"This browser does not support binary websocket messages. \" +\n",
" \"Performance may be slow.\");\n",
" }\n",
" }\n",
"\n",
" this.imageObj = new Image();\n",
"\n",
" this.context = undefined;\n",
" this.message = undefined;\n",
" this.canvas = undefined;\n",
" this.rubberband_canvas = undefined;\n",
" this.rubberband_context = undefined;\n",
" this.format_dropdown = undefined;\n",
"\n",
" this.image_mode = 'full';\n",
"\n",
" this.root = $('<div/>');\n",
" this._root_extra_style(this.root)\n",
" this.root.attr('style', 'display: inline-block');\n",
"\n",
" $(parent_element).append(this.root);\n",
"\n",
" this._init_header(this);\n",
" this._init_canvas(this);\n",
" this._init_toolbar(this);\n",
"\n",
" var fig = this;\n",
"\n",
" this.waiting = false;\n",
"\n",
" this.ws.onopen = function () {\n",
" fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
" fig.send_message(\"send_image_mode\", {});\n",
" if (mpl.ratio != 1) {\n",
" fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n",
" }\n",
" fig.send_message(\"refresh\", {});\n",
" }\n",
"\n",
" this.imageObj.onload = function() {\n",
" if (fig.image_mode == 'full') {\n",
" // Full images could contain transparency (where diff images\n",
" // almost always do), so we need to clear the canvas so that\n",
" // there is no ghosting.\n",
" fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
" }\n",
" fig.context.drawImage(fig.imageObj, 0, 0);\n",
" };\n",
"\n",
" this.imageObj.onunload = function() {\n",
" 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",
" // 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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008PP/30U5w96z3++eefwD8EZBdddFGcoePod72rrroqvP/++3H2bu+9947nbtu2LRxxxBFxFu/666/3HimggAIKKFBcwACuOLG/QAEFFFCgpEBTAHfaaaeFn3/+OQZeBHFUl6TKJDNn6bj44ovDyy+/PDCAmzlzZrj00kvDgw8+uMPbIcWS2btnnnmm5Nv02goooIACCkQBAzgfBAUUUECBqgWaAjhSKAmwVq9eHVMhZ8yYEW6++ea41QAzaddee23gnNdff31gALfXXnvFdW9jHeeee2546623qnb0xSuggAIK1CFgAFfHffJVKqCAAgr0ERgUwH3xxRcxRfL222+P+8ItXLgwfPrpp7F4STpIgaTQSVMAd+CBB8aqlmOlSrL33DHHHOM9UkABBRRQoLiAAVxxYn+BAgoooEBJgUHbCCxatCimS65fvz589tlnYfHixTGVMm3uzd+deeaZMTBLARxr4e68887w559/7vCyL7/88vDNN9+Ejz76KOy5554l35LXVkABBRRQoK+AAZwPhwIKKKBA1QKjN/JmA+60kTeVI1euXBkuu+yy8OOPP4ZZs2aFU045JW4F8P3338eCJX///Xc44YQTtgdwq1atikVNHn300XDGGWcEqlAyu7Zhw4b4s1SivO666wIzclu2bAlr164N8+fPj7/DQwEFFFBAgdICBnClhb2+AgoooEBRgd6926ZNmxb23XffuL6N4iI33HBDOPbYY7f//jfeeCMsW7YsbNy4Ma6Lu++++8L9998ffybNwLHO7aabbgqvvPJKLHRC6mXaB44ZuDvuuCO8/fbbgUCRwib8/fLly2MapocCCiiggAKlBQzgSgt7fQUUUEABBRRQQAEFFFAgk4ABXCZIL6OAAgoooIACCiiggAIKlBYwgCst7PUVUEABBRRQQAEFFFBAgUwCBnCZIL2MAgoooIACCiiggAIKKFBawACutLDXV0ABBRRQQAEFFFBAAQUyCRjAZYL0MgoooIACCiiggAIKKKBAaQEDuNLCXl8BBRRQQAEFFFBAAQUUyCRgAJcJ0ssooIACCiiggAIKKKCAAqUFDOBKC3t9BRRQQAEFFFBAAQUUUCCTgAFcJkgvo4ACCiiggAIKKKCAAgqUFjCAKy3s9RVQQAEFFFBAAQUUUECBTAIGcJkgvYwCCiiggAIKKKCAAgooUFrAAK60sNdXQAEFFFBAAQUUUEABBTIJGMBlgvQyCiiggAIKKKCAAgoooEBpAQO40sJeXwEFFFBAAQUUUEABBRTIJGAAlwnSyyiggAIKKKCAAgoooIACpQUM4EoLe30FFFBAAQUUUEABBRRQIJOAAVwmSC+jgAIKKKCAAgoooIACCpQWMIArLez1FVBAAQUUUEABBRRQQIFMAgZwmSC9jAIKKKCAAgoooIACCihQWsAArrSw11dAAQUUUEABBRRQQAEFMgkYwGWC9DIKKKCAAgoooIACCiigQGkBA7jSwl5fAQUUUEABBRRQQAEFFMgkYACXCdLLKKCAAgoooIACCiiggAKlBQzgSgt7fQUUUEABBRRQQAEFFFAgk4ABXCZIL6OAAgoooIACCiiggAIKlBYwgCst7PUVUEABBRRQQAEFFFBAgUwCBnCZIL2MAgoooIACCiiggAIKKFBawACutLDXV0ABBRRQQAEFFFBAAQUyCRjAZYL0MgoooIACCiiggAIKKKBAaQEDuNLCXl8BBRRQQAEFFFBAAQUUyCRgAJcJ0ssooIACCiiggAIKKKCAAqUFDOBKC3t9BRRQQAEFFFBAAQUUUCCTgAFcJkgvo4ACCiiggAIKKKCAAgqUFjCAKy3s9RVQQAEFFFBAAQUUUECBTAIGcJkgvYwCCiiggAIKKKCAAgooUFrAAK60sNdXQAEFFFBAAQUUUEABBTIJGMBlgvQyCiiggAIKKKCAAgoooEBpAQO40sJeXwEFFFBAAQUUUEABBRTIJGAAlwnSyyiggAIKKKCAAgoooIACpQUM4EoLe30FFFBAAQUUUEABBRRQIJOAAVwmSC+jgAIKKKCAAgoooIACCpQWMIArLez1FVBAAQUUUEABBRRQQIFMAgZwmSC9jAIKKKCAAgoooIACCihQWsAArrSw11dAAQUUUEABBRRQQAEFMgkYwGWC9DIKKKCAAgoooIACCiigQGkBA7jSwl5fAQUUUEABBRRQQAEFFMgkYACXCdLLKKCAAgoooIACCiiggAKlBQzgSgt7fQUUUEABBRRQQAEFFFAgk8B/WJnG7v/iD8cAAAAASUVORK5CYII=\" width=\"799.9999826604674\">"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x1b8cc02b748>"
]
},
"execution_count": 70,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#Produce an \"underwater\" or \"drawdown\" chart\n",
"drawdown = stats.prices.to_drawdown_series()\n",
"drawdown.plot(figsize=(8, 5),logy=False,title='Drawdown')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment