Last active
November 27, 2019 00:55
-
-
Save AnthonyFJGarner/cab997e4276af17d3ffbd75f725cdd2f to your computer and use it in GitHub Desktop.
Rolling US TBond Futures
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "## Introduction\n", | |
| "This notebook takes the master data file produced in the earlier US_Future notebook ('..\\data\\Futures\\us_master.csv') \n", | |
| "and creates a concatenated file of futures contracts containing your chosen maturities. EG when do you want to roll? \n", | |
| "With short term interest rates you can trade up to 4 years out. With bond cotracts there is no choice - you must roll quarterly since there may not be enough volume in any further out contract even if listed." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 109, | |
| "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": 110, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "#read in the master data file produced in the earlier notebook which contains every contract maturity\n", | |
| "us_master = '..\\\\data\\\\Futures\\\\us_master.csv'\n", | |
| "\n", | |
| "future = pd.read_csv(\n", | |
| " us_master,\n", | |
| " header=0,\n", | |
| " parse_dates=[\"Date\", \"Start\", 'End'],\n", | |
| ")" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 111, | |
| "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>VADI</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>70563</th>\n", | |
| " <td>2019-04-11</td>\n", | |
| " <td>147.34375</td>\n", | |
| " <td>147.71875</td>\n", | |
| " <td>147.00000</td>\n", | |
| " <td>147.09375</td>\n", | |
| " <td>238198</td>\n", | |
| " <td>107</td>\n", | |
| " <td>-0.003388</td>\n", | |
| " <td>101.861069</td>\n", | |
| " <td>US2019U</td>\n", | |
| " <td>2018-12-19</td>\n", | |
| " <td>2019-09-15</td>\n", | |
| " <td>True</td>\n", | |
| " <td>True</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>70564</th>\n", | |
| " <td>2019-04-11</td>\n", | |
| " <td>146.31250</td>\n", | |
| " <td>146.31250</td>\n", | |
| " <td>146.31250</td>\n", | |
| " <td>146.31250</td>\n", | |
| " <td>238198</td>\n", | |
| " <td>2</td>\n", | |
| " <td>-0.003406</td>\n", | |
| " <td>99.957301</td>\n", | |
| " <td>US2019Z</td>\n", | |
| " <td>2019-03-20</td>\n", | |
| " <td>2019-12-15</td>\n", | |
| " <td>True</td>\n", | |
| " <td>False</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>70565</th>\n", | |
| " <td>2019-04-12</td>\n", | |
| " <td>147.87500</td>\n", | |
| " <td>148.06250</td>\n", | |
| " <td>146.81250</td>\n", | |
| " <td>146.90625</td>\n", | |
| " <td>238198</td>\n", | |
| " <td>945767</td>\n", | |
| " <td>-0.005500</td>\n", | |
| " <td>105.545577</td>\n", | |
| " <td>US2019M</td>\n", | |
| " <td>2018-09-19</td>\n", | |
| " <td>2019-06-15</td>\n", | |
| " <td>False</td>\n", | |
| " <td>True</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>70566</th>\n", | |
| " <td>2019-04-12</td>\n", | |
| " <td>146.50000</td>\n", | |
| " <td>147.37500</td>\n", | |
| " <td>146.21875</td>\n", | |
| " <td>146.25000</td>\n", | |
| " <td>238198</td>\n", | |
| " <td>107</td>\n", | |
| " <td>-0.005736</td>\n", | |
| " <td>101.276780</td>\n", | |
| " <td>US2019U</td>\n", | |
| " <td>2018-12-19</td>\n", | |
| " <td>2019-09-15</td>\n", | |
| " <td>True</td>\n", | |
| " <td>True</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>70567</th>\n", | |
| " <td>2019-04-12</td>\n", | |
| " <td>145.46875</td>\n", | |
| " <td>145.46875</td>\n", | |
| " <td>145.46875</td>\n", | |
| " <td>145.46875</td>\n", | |
| " <td>238198</td>\n", | |
| " <td>2</td>\n", | |
| " <td>-0.005767</td>\n", | |
| " <td>99.380871</td>\n", | |
| " <td>US2019Z</td>\n", | |
| " <td>2019-03-20</td>\n", | |
| " <td>2019-12-15</td>\n", | |
| " <td>True</td>\n", | |
| " <td>False</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "</div>" | |
| ], | |
| "text/plain": [ | |
| " Date Open High Low Close Volume \\\n", | |
| "70563 2019-04-11 147.34375 147.71875 147.00000 147.09375 238198 \n", | |
| "70564 2019-04-11 146.31250 146.31250 146.31250 146.31250 238198 \n", | |
| "70565 2019-04-12 147.87500 148.06250 146.81250 146.90625 238198 \n", | |
| "70566 2019-04-12 146.50000 147.37500 146.21875 146.25000 238198 \n", | |
| "70567 2019-04-12 145.46875 145.46875 145.46875 145.46875 238198 \n", | |
| "\n", | |
| " Open_Interest Return VADI Contract Start End \\\n", | |
| "70563 107 -0.003388 101.861069 US2019U 2018-12-19 2019-09-15 \n", | |
| "70564 2 -0.003406 99.957301 US2019Z 2019-03-20 2019-12-15 \n", | |
| "70565 945767 -0.005500 105.545577 US2019M 2018-09-19 2019-06-15 \n", | |
| "70566 107 -0.005736 101.276780 US2019U 2018-12-19 2019-09-15 \n", | |
| "70567 2 -0.005767 99.380871 US2019Z 2019-03-20 2019-12-15 \n", | |
| "\n", | |
| " DStart DEnd \n", | |
| "70563 True True \n", | |
| "70564 True False \n", | |
| "70565 False True \n", | |
| "70566 True True \n", | |
| "70567 True False " | |
| ] | |
| }, | |
| "execution_count": 111, | |
| "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", | |
| "future['DStart'] = future.Date.eq(future.Date.shift(1))\n", | |
| "future['DEnd'] = future.Date.eq(future.Date.shift(-1))\n", | |
| "future.tail()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 112, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "#initialise variables\n", | |
| "#what length of expiration are you looking for in days?\n", | |
| "expiration = int(90)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 113, | |
| "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(future.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[future.Date[i]] = [\n", | |
| " future.Date[i], future.Close[expirationLocation],\n", | |
| " future.Return[expirationLocation],\n", | |
| " future.Volume[expirationLocation],\n", | |
| " future.Contract[expirationLocation],\n", | |
| " future.Start[expirationLocation],\n", | |
| " future.End[expirationLocation], targetExpiration,\n", | |
| " targetExpirationDifference\n", | |
| " ]" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 114, | |
| "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_future.VADI.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": 115, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "#Create a dataframe from the dictionary temp_futures\n", | |
| "rolling_future = pd.DataFrame(temp_futures).T\n", | |
| "rolling_future.index.name = 'Date'\n", | |
| "rolling_future.columns = [\n", | |
| " 'Date', 'Close', 'Return', 'Volume', 'Contract', 'Start', 'End',\n", | |
| " 'targetExpiration', 'targetExpirationDifference'\n", | |
| "]\n", | |
| "rolling_future['VADI']=0.0\n", | |
| "#calculate the VADI for each day\n", | |
| "rolling_future['VADI'] = calculator(\n", | |
| " *rolling_future[list(rolling_future.loc[:, ['Return']])].values.T)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 116, | |
| "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>VADI</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>147.625</td>\n", | |
| " <td>-0.00211238</td>\n", | |
| " <td>157099</td>\n", | |
| " <td>US2019M</td>\n", | |
| " <td>2018-09-19 00:00:00</td>\n", | |
| " <td>2019-06-15 00:00:00</td>\n", | |
| " <td>2019-07-07 00:00:00</td>\n", | |
| " <td>22 days 00:00:00</td>\n", | |
| " <td>410.303543</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>2019-04-09</th>\n", | |
| " <td>2019-04-09 00:00:00</td>\n", | |
| " <td>148</td>\n", | |
| " <td>0.00254022</td>\n", | |
| " <td>223482</td>\n", | |
| " <td>US2019M</td>\n", | |
| " <td>2018-09-19 00:00:00</td>\n", | |
| " <td>2019-06-15 00:00:00</td>\n", | |
| " <td>2019-07-08 00:00:00</td>\n", | |
| " <td>23 days 00:00:00</td>\n", | |
| " <td>411.345804</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>2019-04-10</th>\n", | |
| " <td>2019-04-10 00:00:00</td>\n", | |
| " <td>148.219</td>\n", | |
| " <td>0.00147804</td>\n", | |
| " <td>235953</td>\n", | |
| " <td>US2019M</td>\n", | |
| " <td>2018-09-19 00:00:00</td>\n", | |
| " <td>2019-06-15 00:00:00</td>\n", | |
| " <td>2019-07-09 00:00:00</td>\n", | |
| " <td>24 days 00:00:00</td>\n", | |
| " <td>411.953790</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>2019-04-11</th>\n", | |
| " <td>2019-04-11 00:00:00</td>\n", | |
| " <td>147.719</td>\n", | |
| " <td>-0.00337339</td>\n", | |
| " <td>238198</td>\n", | |
| " <td>US2019M</td>\n", | |
| " <td>2018-09-19 00:00:00</td>\n", | |
| " <td>2019-06-15 00:00:00</td>\n", | |
| " <td>2019-07-10 00:00:00</td>\n", | |
| " <td>25 days 00:00:00</td>\n", | |
| " <td>410.564108</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>2019-04-12</th>\n", | |
| " <td>2019-04-12 00:00:00</td>\n", | |
| " <td>146.906</td>\n", | |
| " <td>-0.00550032</td>\n", | |
| " <td>238198</td>\n", | |
| " <td>US2019M</td>\n", | |
| " <td>2018-09-19 00:00:00</td>\n", | |
| " <td>2019-06-15 00:00:00</td>\n", | |
| " <td>2019-07-11 00:00:00</td>\n", | |
| " <td>26 days 00:00:00</td>\n", | |
| " <td>408.305875</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 147.625 -0.00211238 157099 US2019M \n", | |
| "2019-04-09 2019-04-09 00:00:00 148 0.00254022 223482 US2019M \n", | |
| "2019-04-10 2019-04-10 00:00:00 148.219 0.00147804 235953 US2019M \n", | |
| "2019-04-11 2019-04-11 00:00:00 147.719 -0.00337339 238198 US2019M \n", | |
| "2019-04-12 2019-04-12 00:00:00 146.906 -0.00550032 238198 US2019M \n", | |
| "\n", | |
| " Start End targetExpiration \\\n", | |
| "Date \n", | |
| "2019-04-08 2018-09-19 00:00:00 2019-06-15 00:00:00 2019-07-07 00:00:00 \n", | |
| "2019-04-09 2018-09-19 00:00:00 2019-06-15 00:00:00 2019-07-08 00:00:00 \n", | |
| "2019-04-10 2018-09-19 00:00:00 2019-06-15 00:00:00 2019-07-09 00:00:00 \n", | |
| "2019-04-11 2018-09-19 00:00:00 2019-06-15 00:00:00 2019-07-10 00:00:00 \n", | |
| "2019-04-12 2018-09-19 00:00:00 2019-06-15 00:00:00 2019-07-11 00:00:00 \n", | |
| "\n", | |
| " targetExpirationDifference VADI \n", | |
| "Date \n", | |
| "2019-04-08 22 days 00:00:00 410.303543 \n", | |
| "2019-04-09 23 days 00:00:00 411.345804 \n", | |
| "2019-04-10 24 days 00:00:00 411.953790 \n", | |
| "2019-04-11 25 days 00:00:00 410.564108 \n", | |
| "2019-04-12 26 days 00:00:00 408.305875 " | |
| ] | |
| }, | |
| "execution_count": 116, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "rolling_future.tail()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 117, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "#Save your time series to csv for retrieval for later backtesting with your chosen program\n", | |
| "rolling_future.to_csv('..\\data\\Futures/rolling_US.csv', index=None)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 118, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "#Create a new dataframe to display the results\n", | |
| "US=rolling_future[['VADI']].copy()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 119, | |
| "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>VADI</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>410.303543</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>2019-04-09</th>\n", | |
| " <td>411.345804</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>2019-04-10</th>\n", | |
| " <td>411.953790</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>2019-04-11</th>\n", | |
| " <td>410.564108</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>2019-04-12</th>\n", | |
| " <td>408.305875</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "</div>" | |
| ], | |
| "text/plain": [ | |
| " VADI\n", | |
| "Date \n", | |
| "2019-04-08 410.303543\n", | |
| "2019-04-09 411.345804\n", | |
| "2019-04-10 411.953790\n", | |
| "2019-04-11 410.564108\n", | |
| "2019-04-12 408.305875" | |
| ] | |
| }, | |
| "execution_count": 119, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "#Inspect the final results\n", | |
| "US.tail()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 120, | |
| "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,iVBORw0KGgoAAAANSUhEUgAAAwIAAAKUCAYAAAC39I9SAAAgAElEQVR4XuydBZhUVRvHX1hg6Vq6u7u7W0U/O7EQA0VERUmREkX0U7G74VNRFOlulgZplu5Yuje+53/xDnf6ztmzMzs7//M8Pi4z97znnN95Z+b9n8yQnJycLEwkQAIkQAIkQAIkQAIkQAIRRSADhUBE9TcbSwIkQAIkQAIkQAIkQAIGAQoBOgIJkAAJkAAJkAAJkAAJRCABCoEI7HQ2mQRIgARIgARIgARIgAQoBOgDJEACJEACJEACJEACJBCBBCgEIrDT2WQSIAESIAESIAESIAESoBCgD5AACZAACZAACZAACZBABBKgEIjATmeTSYAESIAESIAESIAESIBCgD5AAiRAAiRAAiRAAiRAAhFIgEIgAjudTSYBEiABEiABEiABEiABCgH6AAmQAAmQAAmQAAmQAAlEIAEKgQjsdDaZBEiABEiABEiABEiABCgE6AMkQAIkQAIkQAIkQAIkEIEEKAQisNPZZBIgARIgARIgARIgARKgEKAPkAAJkAAJkAAJkAAJkEAEEqAQiMBOZ5NJgARIgARIgARIgARIgEKAPkACJEACJEACJEACJEACEUiAQiACO51NJgESIAESIAESIAESIAEKAfoACZAACZAACZAACZAACUQgAQqBCOx0NpkESIAESIAESIAESIAEKAToAyRAAiRAAiRAAiRAAiQQgQQoBCKw09lkEiABEiABEiABEiABEqAQoA+QAAmQAAmQAAmQAAmQQAQSoBCIwE5nk0mABEiABEiABEiABEiAQoA+QAIkQAIkQAIkQAIkQAIRSIBCIAI7nU0mARIgARIgARIgARIgAQoB+gAJkAAJkAAJkAAJkAAJRCABCoEI7HQ2mQRIgARIgARIgARIgAQoBOgDJEACJEACJEACJEACJBCBBCgEIrDT2WQSIAESIAESIAESIAESoBCgD5AACZAACZAACZAACZBABBKgEIjATmeTSYAESIAESIAESIAESIBCgD5AAiRAAiRAAiRAAiRAAhFIgEIgAjudTSYBEiABEiABEiABEiABCgH6AAmQAAmQAAmQAAmQAAlEIAEKgQjsdDaZBEiABEiABEiABEiABCgE6AMkQAIkQAIkQAIkQAIkEIEEKAQisNPZZBIgARIgARIgARIgARKgEKAPkAAJkAAJkAAJkAAJkEAEEqAQiMBOZ5NJgARIgARIgARIgARIgEKAPkACJEACJEACJEACJEACEUiAQiACO51NJgESIAESIAESIAESIAEKAfoACZAACZAACZAACZAACUQgAQqBCOx0NpkESIAESIAESIAESIAEKAToAyRAAiRAAiRAAiRAAiQQgQQoBCKw09lkEiABEiABEiABEiABEqAQoA+QAAmQAAmQAAmQAAmQQAQSoBCIwE5nk0mABEiABEiABEiABEiAQoA+QAIkQAIkQAIkQAIkQAIRSIBCIAI7nU0mARIgARIgARIgARIgAQoB+gAJkAAJkAAJkAAJkAAJRCABCoEI7HQ2mQRIgARIgARIgARIgAQoBOgDJEACJEACJEACJEACJBCBBCgEIrDT2WQSIAESIAESIAESIAESoBCgD5AACZAACZAACZAACZBABBKgEIjATmeTSYAESIAESIAESIAESIBCgD5AAiSQ5ghkyJBBHn74Yfnmm2/SXN1YIRJI6wQSEhIkc+bM8vjjj8sXX3wRtOoOHjxYRo0aJfv375cSJUoErdy0UNCDDz4oEyZMELBnIoFwIkAhEE69FcF1RUD46KOPymuvvSbDhg3zSALBY+nSpWXPnj1O7//999/y/vvvy5YtW+To0aOSL18+KVmypDRr1kyef/55KVeunE+y8+fPl7Zt28qIESMEP3ThnMqUKSN79+51akJMTIzg9QceeECefvppyZo1a8ibaFcIoK/Lli3rtb6qfbZr1y757rvv5Pbbb5datWqFnIfOCly+fFm+/PJL+e2332TDhg1y5swZyZ07t9HO2267zQgec+bMqbPIoNlas2aN/Pnnn/LYY49JqVKlglZuIAXFx8cb30ft2rWTVq1aBZLV9rOBCIGdO3dKxYoVnWzjOwDfCfCHAQMGGP5hJ6UFIQB/Hj9+vPz666/Gb8HVq1elYMGCUq1aNYP5Sy+9ZKcpAT9DIRAwMmZIIwQoBNJIR7AavgmoCgH8iI0ZM8YI9vFFDQFw/Phx+eeff+Svv/6Sr776Su68886IEgIIBN9++22jzUlJSXLs2DH53//+JytXrpT//Oc/MmnSpJC7Y6BCoE2bNkYA65rq1KkjNWrUCLg9s2fPlo4dO8r3339v+E16SRA4N998syGKW7duLV26dJHChQsLgtNFixYJRDPaPXXq1LBsMka/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\" width=\"699.999984827909\">" | |
| ], | |
| "text/plain": [ | |
| "<IPython.core.display.HTML object>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| }, | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "<matplotlib.axes._subplots.AxesSubplot at 0x18def20c358>" | |
| ] | |
| }, | |
| "execution_count": 120, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "#Chart the final results\n", | |
| "log=True\n", | |
| "US.plot(figsize=(7,6),logy=log,title='US Long Bond Futures Concatenated Price Series')" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 121, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "Stat VADI\n", | |
| "------------------- ----------\n", | |
| "Start 1977-08-23\n", | |
| "End 2019-04-12\n", | |
| "Risk-free rate 0.00%\n", | |
| "\n", | |
| "Total Return 308.31%\n", | |
| "Daily Sharpe 0.36\n", | |
| "Daily Sortino 0.60\n", | |
| "CAGR 3.44%\n", | |
| "Max Drawdown -49.11%\n", | |
| "Calmar Ratio 0.07\n", | |
| "\n", | |
| "MTD -1.84%\n", | |
| "3m 1.23%\n", | |
| "6m 6.84%\n", | |
| "YTD 1.05%\n", | |
| "1Y 3.10%\n", | |
| "3Y (ann.) -1.07%\n", | |
| "5Y (ann.) 2.39%\n", | |
| "10Y (ann.) 3.56%\n", | |
| "Since Incep. (ann.) 3.44%\n", | |
| "\n", | |
| "Daily Sharpe 0.36\n", | |
| "Daily Sortino 0.60\n", | |
| "Daily Mean (ann.) 3.99%\n", | |
| "Daily Vol (ann.) 11.03%\n", | |
| "Daily Skew -0.01\n", | |
| "Daily Kurt 2.28\n", | |
| "Best Day 4.06%\n", | |
| "Worst Day -3.21%\n", | |
| "\n", | |
| "Monthly Sharpe 0.36\n", | |
| "Monthly Sortino 0.66\n", | |
| "Monthly Mean (ann.) 3.97%\n", | |
| "Monthly Vol (ann.) 10.98%\n", | |
| "Monthly Skew 0.27\n", | |
| "Monthly Kurt 1.87\n", | |
| "Best Month 13.97%\n", | |
| "Worst Month -9.99%\n", | |
| "\n", | |
| "Yearly Sharpe 0.35\n", | |
| "Yearly Sortino 0.84\n", | |
| "Yearly Mean 4.13%\n", | |
| "Yearly Vol 11.83%\n", | |
| "Yearly Skew 0.18\n", | |
| "Yearly Kurt -0.74\n", | |
| "Best Year 27.53%\n", | |
| "Worst Year -17.51%\n", | |
| "\n", | |
| "Avg. Drawdown -2.92%\n", | |
| "Avg. Drawdown Days 98.08\n", | |
| "Avg. Up Month 2.52%\n", | |
| "Avg. Down Month -2.24%\n", | |
| "Win Year % 61.90%\n", | |
| "Win 12m % 63.88%\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "#Produce statistics for the final results\n", | |
| "stats = US.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": 122, | |
| "metadata": { | |
| "scrolled": true | |
| }, | |
| "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,iVBORw0KGgoAAAANSUhEUgAAA3AAAAImCAYAAAASSmiJAAAgAElEQVR4XuxdBbhVxRZepHR3d3d3t4GBiiIWqDxURExSQAETUbELxVZsurtBulO6W5r3/fvcOXfOnNl7zz53H+49sOb73vfknsl/Zu89/8xa/0p25cqVK8SJEWAEGAFGgBFgBBgBRoARYAQYAUYgySOQjAlckp8j7iAjwAgwAowAI8AIMAKMACPACDACFgJM4HghMAKMACPACDACjAAjwAgwAowAIxAjCDCBi5GJ4m4yAowAI8AIMAKMACPACDACjAAjwASO1wAjwAgwAowAI8AIMAKMACPACDACMYIAE7gYmSjuJiPACDACjAAjwAgwAowAI8AIMAJM4HgNMAKMACPACDACjAAjwAgwAowAIxAjCDCBi5GJ4m4yAowAI8AIMAKMACPACDACjAAjwASO1wAjwAgwAowAI8AIMAKMACPACDACMYIAE7gYmSjuJiPACDACjAAjwAgwAowAI8AIMAJM4HgNMAKMACPACDACjAAjwAgwAowAIxAjCDCBi5GJ4m4yAowAI8AIMAKMACPACDACjAAjwASO1wAjwAgwAowAI8AIMAKMACPACDACMYIAE7gYmSjuJiPACDACjAAjwAgwAowAI8AIMAJM4HgNMAKMACPACDACjAAjwAgwAowAIxAjCDCBi5GJ4m4yAowAI8AIMAKMACPACDACjAAjwASO1wAjwAgwAowAI8AIMAKMACPACDACMYIAE7gYmSjuJiPACDACjAAjwAgwAowAI8AIMAJM4HgNMAKMACPACDACjAAjwAgwAowAIxAjCDCBi5GJ4m4yAowAI8AIMAKMACPACDACjAAjwASO1wAjwAgwAowAI8AIMAKMACPACDACMYIAE7gYmSjuJiPACDACjAAjwAgwAowAI8AIMAJM4HgNMAKMACPACDACjAAjwAgwAowAIxAjCDCBi5GJ4m4yAowAI8AIMAKMACPACDACjAAjwASO1wAjwAgwAowAI8AIMAKMACPACDACMYIAE7gYmSjuJiPACDACjAAjwAgwAowAI8AIMAJM4HgNMAKMACPACDACjAAjwAgwAowAIxAjCDCBi5GJ4m4yAowAI8AIMAKMACPACDACjAAjwASO1wAjwAgwAowAI8AIMAKMACPACDACMYIAE7gYmSjuJiPACDACjAAjwAgwAowAI8AIMAJM4HgNMAKMACPACDACjAAjwAgwAowAIxAjCDCBi5GJ4m4yAowAI8AIMAKMACPACDACjAAjwASO1wAjwAgwAowAI8AIMAKMACPACDACMYIAE7gYmSjuJiPACDACjAAjwAgwAowAI8AIMAJM4HgNMAKMACPACDACjAAjwAgwAowAIxAjCDCBi5GJ4m4yAowAI8AIMAKMACPACDACjAAjwASO1wAjwAgwAowAI8AIMAKMACPACDACMYIAE7gYmSjuJiPACDACjAAjwAgwAowAI8AIMAJM4HgNMAKMACPACDACjAAjwAgwAowAIxAjCDCBi5GJ4m4yAowAI8AIMAKMACPACDACjAAjwASO1wAjwAgwAowAI8AIMAKMACPACDACMYIAE7gYmSjuJiPACDACjAAjwAgwAowAI8AIMAJM4HgNMAKMACPACDACjAAjwAgwAowAIxAjCDCBi5GJ4m4yAowAI8AIJA4CDz74IH311Vd05cqVxOkAt8oIMAKMACPACEgIMIHj5cAIMAKMACPgCwIzZsygpk2bButKnjw5ZciQgfLkyUOVK1emW2+9lTp06ECpU6f2pb2rVQkTuKuFNLfDCDACjAAjYIIAEzgTlDgPI8AIMAKMgCsCgsCBpLVv397Kf+rUKdq2bRuNHz+eVq1aRWXLlqUxY8ZY/x8riQlcrMwU95MRYAQYgesDASZw18c88ygZAUaAEYg6AoLAvfzyy9SvX7+w9kaNGkVdu3alfPny0erVqylTpky2fTp9+jSlT58+6n02aYAJnAlKnIcRYAQYAUbgaiHABO5qIc3tMAKMACNwjSPgRuAw/BdeeIFef/11Gjp0KPXu3ZtEmS+//JLOnTtH77//Pm3cuJE6duxIIHzr16+n9957j2bOnEn//vsvnT9/nkqUKEEPPfQQ9ezZk2CmibR7924qUKAA9erVi956660g0o8++ih9+umnhP//+OOPg39Hvrfffpv27dtHuXPntv6+f/9+ev755+nvv/+ms2fPUpUqVeiVV16x/N90PnALFy4kkNV58+bRmTNnqGjRonTvvfdaYxRmonPnzqUGDRrQu+++S08++WSw/VatWtHkyZODOIgfbr/9dpoyZQodOXKEUqZMSQMHDqRBgwbRhg0b6JtvvrH6gT4XK1aM+vfvb7XHiRFgBBgBRuD6QoAJ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ph05eQQQQACBtCFAAJc2yomzRAABBBBIQSC1AO63334zukgOGjTIWBeubdu2smHDBmPyEsemXSB1ohNfAVzRokWNWS29dZXUtecqVKhAGSGAAAIIIGC5AAGc5cQcAAEEEEDASoHUlhFo37690V1y27ZtsnHjRrnjjjuMrpSOxb31d40aNTICM0cAp2Phhg0bJhcvXnQ77S5dusjOnTtlxYoVkilTJis/EnkjgAACCCCQogABHBcHAggggECaFvBcyFsX4HYs5K0zR06dOlU6d+4sR48elbJly0qdOnWMpQAOHjxoTFhy6dIlqVGjhjOA+/77741JTSZOnCgNGzYUnYVSW9d27dpl7KszUfbo0UO0Re7IkSOyaNEiadKkiXEMNgQQQAABBKwWIICzWpj8EUAAAQQsFXBduy1DhgySO3duY3ybTi7y1FNPScWKFZ3Hnz17tvTr1092795tjIsbO3asvPTSS8Y+jhY4Hef29NNPy7fffmtMdKJdLx3rwGkL3ODBgyUuLk40UNSJTfT3/fv3N7phsiGAAAIIIGC1AAGc1cLkjwACCCCAAAIIIIAAAgiYJEAAZxIk2SCAAAIIIIAAAggggAACVgsQwFktTP4IIIAAAggggAACCCCAgEkCBHAmQZINAggggAACCCCAAAIIIGC1AAGc1cLkjwACCCCAAAIIIIAAAgiYJEAAZxIk2SCAAAIIIIAAAggggAACVgsQwFktTP4IIIAAAggggAACCCCAgEkCBHAmQZINAggggAACCCCAAAIIIGC1AAGc1cLkjwACCCCAAAIIIIAAAgiYJEAAZxIk2SCAAAIIIIAAAggggAACVgsQwFktTP4IIIAAAggggAACCCCAgEkCBHAmQZINAggggAACCCCAAAIIIGC1AAGc1cLkjwACCCCAAAIIIIAAAgiYJEAAZxIk2SCAAAIIIIAAAggggAACVgsQwFktTP4IIIAAAggggAACCCCAgEkCBHAmQZINAggggAACCCCAAAIIIGC1AAGc1cLkjwACCCCAAAIIIIAAAgiYJEAAZxIk2SCAAAIIIIAAAggggAACVgsQwFktTP4IIIAAAggggAACCCCAgEkCBHAmQZINAggggAACCCCAAAIIIGC1AAGc1cLkjwACCCCAAAIIIIAAAgiYJEAAZxIk2SCAAAIIIIAAAggggAACVgsQwFktTP4IIIAAAggggAACCCCAgEkCBHAmQZINAggggAACCCCAAAIIIGC1AAGc1cLkjwACCCCAAAIIIIAAAgiYJEAAZxIk2SCAAAIIIIAAAggggAACVgsQwFktTP4IIIAAAggggAACCCCAgEkCBHAmQZINAggggAACCCCAAAIIIGC1AAGc1cLkjwACCCCAAAIIIIAAAgiYJEAAZxIk2SCAAAIIIIAAAggggAACVgsQwFktTP4IIIAAAggggAACCCCAgEkCBHAmQZINAggggAACCCCAAAIIIGC1AAGc1cLkjwACCCCAAAIIIIAAAgiYJEAAZxIk2SCAAAIIIIAAAggggAACVgsQwFktTP4IIIAAAggggAACCCCAgEkCBHAmQZINAggggAACCCCAAAIIIGC1AAGc1cLkjwACCCCAAAIIIIAAAgiYJEAAZxIk2SCAAAIIIIAAAggggAACVgsQwFktTP4IIIAAAggggAACCCCAgEkCBHAmQZINAggggAACCCCAAAIIIGC1AAGc1cLkjwACCCCAAAIIIIAAAgiYJEAAZxIk2SCAAAIIIIAAAggggAACVgsQwFktTP4IIIAAAggggAACCCCAgEkCBHAmQZINAggggAACCCCAAAIIIGC1AAGc1cLkjwACCCCAAAIIIIAAAgiYJEAAZxIk2SCAAAIIIIAAAggggAACVgsQwFktTP4IIIAAAggggAACCCCAgEkCBHAmQZINAggggAACCCCAAAIIIGC1AAGc1cLkjwACCCCAAAIIIIAAAgiYJPD/dsUfWW0xVIYAAAAASUVORK5CYII=\" width=\"799.9999826604674\">" | |
| ], | |
| "text/plain": [ | |
| "<IPython.core.display.HTML object>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| }, | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "<matplotlib.axes._subplots.AxesSubplot at 0x18de4754b70>" | |
| ] | |
| }, | |
| "execution_count": 122, | |
| "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": 123, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "stats.to_csv(sep=', ', path='..\\\\data\\\\Futures\\\\stats.csv')" | |
| ] | |
| }, | |
| { | |
| "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