Last active
August 29, 2015 14:10
-
-
Save bclifton/d947cb7dbb4bd3a7348f to your computer and use it in GitHub Desktop.
IPTCES
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
{ | |
"metadata": { | |
"name": "", | |
"signature": "sha256:64c088619abe1091c3c0e9ff1877962b4bba1d2814a143e6173e8f441ce1f8d8" | |
}, | |
"nbformat": 3, | |
"nbformat_minor": 0, | |
"worksheets": [ | |
{ | |
"cells": [ | |
{ | |
"cell_type": "heading", | |
"level": 1, | |
"metadata": {}, | |
"source": [ | |
"\n", | |
"International Political Tele-Conferencing Equilibrium System algorithm" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"The following is the code used to generate a version of the predictive tool that powers the International Political Tele-Conferencing Equilibrium System. The styling of the out graph has been changed." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"%pylab inline\n", | |
"import datetime as dt\n", | |
"import numpy as np\n", | |
"import pandas as pd\n", | |
"from pandas import *\n", | |
"\n", | |
"import matplotlib.pyplot as plt\n", | |
"\n", | |
"import statsmodels.api as sm\n", | |
"from statsmodels.tsa import *\n", | |
"tsa = sm.tsa\n" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"Populating the interactive namespace from numpy and matplotlib\n" | |
] | |
} | |
], | |
"prompt_number": 1 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"# Get the data here: \n", | |
"# http://storage.googleapis.com/gdelt_bc/Barack_Obama.csv\n", | |
"\n", | |
"PATH = '/Users/path/to/folder/' # This is where the downloaded .csv is stored locally.\n", | |
"q = 'Barack_Obama'\n", | |
"csv = q + '.csv'\n", | |
"df = pd.read_csv(PATH + csv, index_col='SQLDATE', parse_dates=True)\n", | |
"df.head()" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"html": [ | |
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Actor1Name</th>\n", | |
" <th>GoldsteinScale</th>\n", | |
" <th>NumMentions</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>SQLDATE</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2014-01-23</th>\n", | |
" <td> BARACK OBAMA</td>\n", | |
" <td> 1.9</td>\n", | |
" <td> 2</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2014-01-23</th>\n", | |
" <td> BARACK OBAMA</td>\n", | |
" <td> 1.9</td>\n", | |
" <td> 2</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2014-01-23</th>\n", | |
" <td> BARACK OBAMA</td>\n", | |
" <td> 1.9</td>\n", | |
" <td> 12</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2014-01-23</th>\n", | |
" <td> BARACK OBAMA</td>\n", | |
" <td> 1.9</td>\n", | |
" <td> 2</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2014-01-23</th>\n", | |
" <td> BARACK OBAMA</td>\n", | |
" <td> 1.9</td>\n", | |
" <td> 2</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 2, | |
"text": [ | |
" Actor1Name GoldsteinScale NumMentions\n", | |
"SQLDATE \n", | |
"2014-01-23 BARACK OBAMA 1.9 2\n", | |
"2014-01-23 BARACK OBAMA 1.9 2\n", | |
"2014-01-23 BARACK OBAMA 1.9 12\n", | |
"2014-01-23 BARACK OBAMA 1.9 2\n", | |
"2014-01-23 BARACK OBAMA 1.9 2" | |
] | |
} | |
], | |
"prompt_number": 2 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"# Get the data here: \n", | |
"# http://storage.googleapis.com/gdelt_bc/goldstein_suggestions.csv\n", | |
"\n", | |
"GS_PATH = 'Users/path/to/folder/goldstein_suggestions.tsv'\n", | |
"gsCodes = pd.read_csv(GS_PATH, index_col='code')\n", | |
"gsCodes.head()" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"html": [ | |
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>description</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>code</th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>-10.0</th>\n", | |
" <td> Military attack; clash; assault; Biological we...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>-9.9 </th>\n", | |
" <td> Assassination; Guerrilla assault; Paramilitary...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>-9.8 </th>\n", | |
" <td> Assassination; Guerrilla assault; Paramilitary...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>-9.7 </th>\n", | |
" <td> Assassination; Guerrilla assault; Paramilitary...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>-9.6 </th>\n", | |
" <td> Assassination; Guerrilla assault; Paramilitary...</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 3, | |
"text": [ | |
" description\n", | |
"code \n", | |
"-10.0 Military attack; clash; assault; Biological we...\n", | |
"-9.9 Assassination; Guerrilla assault; Paramilitary...\n", | |
"-9.8 Assassination; Guerrilla assault; Paramilitary...\n", | |
"-9.7 Assassination; Guerrilla assault; Paramilitary...\n", | |
"-9.6 Assassination; Guerrilla assault; Paramilitary..." | |
] | |
} | |
], | |
"prompt_number": 3 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"tomorrow = str(dt.date.today() + dt.timedelta(days=1))\n", | |
"twoweeksago = str(dt.date.today() - dt.timedelta(days=14))\n", | |
"nextweek = dt.date.today() + dt.timedelta(days=8)" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 4 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"# These steps incorporate the number of mentions a Goldstein score is associated with,\n", | |
"# reducing the impact of error in the event encoding,\n", | |
"# making the average better reflect the event's presence in the GDELT.\n", | |
"\n", | |
"df['GoldMentions'] = df['GoldsteinScale'] * df['NumMentions']\n", | |
"goldstein = df.groupby([df.index.date]).agg({'GoldMentions': np.sum, 'NumMentions': np.sum})\n", | |
"goldstein['GoldAverage'] = goldstein['GoldMentions'] / goldstein['NumMentions']" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 5 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"full_daterange = pd.date_range(start=min(df.index),end=max(df.index))\n", | |
"goldstein = goldstein.reindex(full_daterange).ffill()" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 6 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"# Creates a rolling_mean using a 30-day window:\n", | |
"goldstein['sma-30'] = pd.rolling_mean(goldstein['GoldAverage'],30)" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 7 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"# The first 30 entries in the rolling_mean become NaN, so...\n", | |
"grm = goldstein['sma-30'].dropna()" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 8 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"test_sample = pd.DataFrame(grm[-400:]) # 200 entries seems to be enough to determine stationarity.\n", | |
"test_sample.index = pd.to_datetime(test_sample.index)\n", | |
"test_sample.columns = ['Goldstein daily average']\n", | |
"\n", | |
"plot_sample = pd.DataFrame(grm[-200:])\n", | |
"plot_sample.index = pd.to_datetime(plot_sample.index)\n", | |
"plot_sample.columns = ['Goldstein daily average']" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 9 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"model = sm.tsa.ARMA(test_sample,(12,0)).fit() # 12 Lags seems to be enough to get an accurate prediction." | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 10 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"prediction = model.predict(twoweeksago, str(nextweek), dynamic=False)\n", | |
"\n", | |
"# looked about 1 day off, so...\n", | |
"prediction = prediction.shift(-1)" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 11 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"predicts = round(prediction.ix[tomorrow:str(nextweek)].mean(numeric_only=float),1)\n", | |
"print predicts" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"1.2\n" | |
] | |
} | |
], | |
"prompt_number": 12 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"startdate = datetime.date(plot_sample.index[0])\n", | |
"enddate = dt.date.today() + dt.timedelta(days=8)\n", | |
"daterange = [startdate + dt.timedelta(days=x) for x in range(0, (enddate-startdate).days)]" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 13 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"suggestion = round(((predicts - 1) * -1),1)\n", | |
"gsDescription = gsCodes.loc[suggestion].values[0]\n", | |
"gsDescription" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 14, | |
"text": [ | |
"'Comment on a situation'" | |
] | |
} | |
], | |
"prompt_number": 14 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"plot_sample.plot(kind='line',\n", | |
" title=q + ': Goldstein Trend and Prediction',\n", | |
" ylim = (-10,10),\n", | |
" figsize=(18,8),\n", | |
" color = 'steelblue')\n", | |
"prediction.plot(kind = 'line', \n", | |
" label = 'prediction',\n", | |
" legend = True,\n", | |
" color = 'red',)" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 15, | |
"text": [ | |
"<matplotlib.axes.AxesSubplot at 0x10eb49990>" | |
] | |
}, | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\nrLKzs/X1r39dhmH0PXf37t06++yzlZ2drYKCAi1fvlyS+s7wn3jiicrIyNAzzzwjSXrxxRe1cOFC\n5eTk6Mwzz9SHH37Yt5+Kigq9/vrrkswpBldccYVWrFihzMxMzZ8/X//4xz+Gfd8jtXHPnj0655xz\nlJ+fr4KCAl1zzTXq6OgYcr9S/6iEiy66SD/72c8G7GfBggX6/e9/P2QbPv/5z6uoqEjZ2dk6++yz\ntXXrVknSO++8o6KiogHH9/nnn9eJJ54oSYpEIvrBD36g2bNnKz8/X1deeaXa2tokSVVVVbLb7Xrs\nscdUXl6uc889d8R9SVJLS4suvvhiZWVl6bTTTtMdd9wxYKrK9u3bdd555ykvL0/HHnts32djFQoJ\nUwDzAREvsgOrkCVYiTwhXmQHieLtt9+W3+/X5z73uRGf9/Wvf10ej0f79u3TX//6Vz3xxBP65S9/\necjzmpubdfnll+uee+5RS0uLKisr9eabb/Z1tr/73e/qggsuUHt7u2pra/X1r39dkvrWHNi8ebM8\nHo8+//nP6/3339f111+vRx55RK2trbrxxht1ySWXKBgMSjp0WsEf/vAHLV++XB0dHbrkkkv0ta99\nbcj3crg2StLtt9+u+vp6bdu2TTU1NVq1alXfY4P329vhv+666/Tkk0/2/XzTpk2qq6vTRRddNGQ7\nLrroIu3evVtNTU066aSTdPXVV0uSFi9erLS0NK1du7bvuWvWrOl7/Kc//aleeOEFrV+/XvX19crJ\nydHNN988YNvr16/X9u3b9corr4y4L0m6+eablZGRoYaGBv3qV7/SE0880fceu7u7dd555+maa65R\nU1OTnn76ad10003atm3bkO8pHk7LtgQAAAAAU8inv/9HS7bzyneH7rQOp7m5Wfn5+bLb+88Ln3HG\nGdq2bZv8fr9effVVLVmyRL/5zW+0adMmpaWlKS0tTd/61re0evVqffnLXx6wvT/96U+aP3++Lrvs\nMknSN77xDd133319j7vdblVVVam2tlYlJSU644wzhm3bL37xC91444069dRTJUnXXnut7rnnHv39\n738fcnHHs846SxdccIEk6ZprrtGPf/zjIbd7uDZWVlaqsrJSkpSfn69vfvOb+t73vjf8QYy6+OKL\ndeONN2rPnj2qrKzU6tWr9YUvfEFO59Bd5euuu67v+5UrV+onP/mJPB6PMjIytHz5cv3617/Wueee\nK4/Ho5deekn333+/JOnhhx/Wz372MxUXF/e9try8fEARY9WqVUpJSTnsvlJTU/Xb3/5WH330kZKT\nkzVv3jytWLGib/rWiy++qJkzZ2rFihWSzJEql112mZ555hndeeedhz0mo0EhYQpYt24dFXjEhezA\nKmQJViJPiBfZgdWOtABglby8PDU3NysSifQVE9566y1JUmlpqSKRiJqbmxUMBlVeXt73urKyMtXW\n1h6yvbq6Os2YMWPAz0pLS/u+v/fee/Xd735Xp512mnJycvStb31LX/rSl4Zs2/79+/XEE0/opz/9\nad/PgsGg6urqhnx+YWFh3/epqany+XwD3tdo29jQ0KBbbrlFb7zxhjwejyKRiHJzc4fcZ6zk5GRd\nccUVWr16tVauXKmnn35azz333JDPjUQiuu222/Tss8+qqalJdrtdNptNzc3NfYWEM888Uw899JB+\n+9vf6uSTT+5rY1VVlS699NIB78vpdKqhoWHI9zPSvlJSUhQKhQY8P/bY7N+/X++8845ycnL6fhYK\nhXTttdce9niMFlMbAAAAAGASWbJkiZKSkvS73/1u2Ofk5+fL5XKpqqqq72fV1dWHdMYlqbi4WDU1\nNX33DcMYcL+wsFC/+MUvVFtbq4cfflg33XTTsFdqKCsr0+233662tra+W1dXl6688so43uno23jb\nbbfJ4XBoy5Yt6ujo0OrVqxWJREa17RUrVuipp57Sa6+9ptTUVC1evHjI5z311FN64YUXtHbtWnV0\ndGjfvn0D1mk47rjjVF5erpdeeklr1qzRVVdd1ffasrIyvfzyywOOi9frVVFRUd9zYqdfjLSvgoIC\nOZ3OAe8/9vuysjKdffbZA/bl8Xj04IMPjup4jAaFhCmAyjviRXZgFbIEK5EnxIvsIFFkZ2dr5cqV\nuummm/Tcc8/1nYH/4IMP1N3dLUlyOBy64oordPvtt6urq0v79+/Xj370I11zzTWHbO/CCy/URx99\npOeff16hUEgPPPCADh482Pf4M888owMHDvTt22az9Z1ZLyws1J49e/qee8MNN+jnP/+5NmzYIMMw\n1N3drT/+8Y/q6ur6WO/5oosuGrGNXV1dSktLU2Zmpmpra/XDH/5w1NtesmSJbDabvv3tb4941r6r\nq0tJSUnKzc1Vd3e3brvttkOec9VVV+nHP/6x/va3v+nzn/9838+/+tWv6rbbblN1dbUkqampSS+8\n8EJc+3I4HLrsssu0atUq9fT0aPv27Vq9evWABSR37typJ598UsFgUMFgUO+++662b98+6mNyOBQS\nAAAAAGCS+dd//Vfdf//9uvfeezV9+nRNnz5dX/3qV3XvvfdqyZIlkswF/tLS0jRr1iydddZZuvrq\nq/umJNhstr6OZ35+vp555hn9+7//u/Lz87V7924tXbq0b18bN27U6aefroyMDH3uc5/TAw88oIqK\nCknmvP4VK1YoJydHzz77rE4++WQ98sgj+trXvqbc3FzNmTNnwEKAsWLbEPuzoeTl5Y3YxpUrV+q9\n995TVlaWLr74Yl1++eXDbmuo/V577bX68MMPhyy0xD6nvLxcJSUlmj9/fl8BItby5cu1fv16fepT\nnxowteKWW27RJZdcovPPP1+ZmZlasmSJNmzYMOz7Pty+fvazn6mjo0PTp0/XihUrtHz58r6rdWRk\nZOjVV1/V008/rZKSEhUVFek73/mOpZcFHfrIjg9jol+/M1EwHxDxIjuwClmClcgT4kV2cKRsNtuw\nl0tEYlm9erUeeeSRvitRTDa33nqrGhsbh7wqx+EMl/No4WLImgEjEgAAAAAAU5bX69WDDz6or3zl\nK0e7KaO2Y8cObd68WYZhaMOGDXrsscd06aWXjtv+GZEAAAAAAENgRELie+WVV3T55ZfrvPPO03PP\nPXfI1SImqo0bN2r58uWqq6tTYWGhbrzxRt16661xbSueEQkUEgAAAABgCBQSMBUwtQFDWrdu3dFu\nAiYpsgOrkCVYiTwhXmQHAKxBIQEAAAAAAIwaUxsAAAAAYAhMbcBUwNQGAAAAAAAwpigkTAHMB0S8\nyA6sQpZgJfKEeJEdALAGhQQAAAAAgCSpoqJCr7/+uiTpnnvu0Q033BDXdubPn6/169db2TRMIKyR\nAAAAAABDmIprJMycOVOPPvqozjnnnFG/5rrrrlNpaam+//3vj2HLMFZYIwEAAAAAIEkKhUJHuwlI\nUBQSpgDmAyJeZAdWIUuwEnlCvMgOEkVFRYV+8IMf6Pjjj1dubq6+/OUvy+/3a926dZoxY4buvfde\nFRUV6frrr5dhGPrBD36g2bNnKz8/X1deeaXa2tr6trV69WqVl5crPz9f99xzz4D9rFq1Sl/84hf7\n7r/xxhs644wzlJOTo7KyMv3qV7/SI488ojVr1ujee+9VRkaGPve5z/W1ce3atZIkv9+vb3zjGyop\nKVFJSYm++c1vKhAISFJfm++//34VFhaquLhYjz/++BgfQXxcFBIAAAAAYJJZs2aNXn31Ve3Zs0c7\nd+7UXXfdJZvNpoaGBrW1tam6uloPP/ywHnjgAb3wwgtav3696uvrlZOTo5tvvlmStHXrVt100016\n6qmnVFdXp5aWFh04cKBvH9Gh7ZKk/fv368ILL9Qtt9yi5uZmffDBB1q4cKFuuOEGXX311br11lvl\n8Xj0+9//vu+1va+/++67tWHDBm3atEmbNm3Shg0bdNddd/Vtu6GhQZ2dnaqrq9Ojjz6qm2++WR0d\nHeNxGBEnCglTwLJly452EzBJkR1YhSzBSuQJ8SI7sJzNZs3tiHdr09e+9jWVlJQoJydHt99+u379\n619Lkux2u/7jP/5DLpdLycnJevjhh3XXXXepuLhYLpdLK1eu1LPPPqtwOKxnn31WF198sZYuXSq3\n263vf//7stv7u4ix8+bXrFmj8847T1deeaUcDodyc3N14oknDvncwdasWaM777xT+fn5ys/P18qV\nK7V69eq+x10ul+688045HA595jOfUXp6unbs2HHExwXjx3m0GwAAAAAAk9JRXIixtLS07/uysjLV\n1dVJkgoKCuR2u/seq6qq0qWXXjqgQOB0OtXQ0KD6+nrNmDGj7+epqanKy8sbcn81NTWaNWtWXG2t\nq6tTeXn5kO2VpLy8vAHtS01NVVdXV1z7wvhgRMIUwHxAxIvswCpkCVYiT4gX2UEiqa6uHvB9cXGx\npIHTESSz0/7yyy+rra2t7+b1elVcXKyioiLV1NT0Pdfr9aqlpWXI/ZWVlWnPnj1DPjZ4n4MVFxer\nqqpqyPZicqKQAAAAAACTiGEY+u///m/V1taqtbVVd999t77whS8M+dyvfvWruu222/oKD01NTXrh\nhRckSf/8z/+sF198UW+++aYCgYDuvPNORSKRIbdz1VVX6bXXXtMzzzyjUCiklpYWbdq0SZJUWFio\nvXv3Dtve5cuX66677lJzc7Oam5v1ve99b8Aijph8KCRMAcwHRLzIDqxClmAl8oR4kR0kCpvNpquu\nukrnn3++KisrNWfOHN1xxx0yDOOQ0QG33HKLLrnkEp1//vnKzMzUkiVLtGHDBknScccdpwcffFBX\nXXWViouLlZubO2DKROyCiWVlZfrTn/6k++67T3l5eVq0aJE2b94sSbr++uu1detW5eTk6LLLLjuk\n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\n", | |
"text": [ | |
"<matplotlib.figure.Figure at 0x10eb49290>" | |
] | |
} | |
], | |
"prompt_number": 15 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [] | |
} | |
], | |
"metadata": {} | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment