Created
December 7, 2015 05:56
-
-
Save vitale232/e27117062bdeccdf891a to your computer and use it in GitHub Desktop.
Completed and attempted extra points from footballdb.com
This file contains 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": "code", | |
"execution_count": 33, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"from __future__ import unicode_literals\n", | |
"from collections import defaultdict\n", | |
"import os\n", | |
"\n", | |
"import matplotlib\n", | |
"matplotlib.style.use('ggplot')\n", | |
"import matplotlib.pyplot as plt\n", | |
"import numpy as np\n", | |
"import pandas as pd\n", | |
"\n", | |
"%matplotlib inline" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 34, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"workspace = '/Users/avitale/Documents/extra_points'\n", | |
"\n", | |
"with open(os.path.join(workspace, 'footballdb_2014.txt'), 'r') as f:\n", | |
" lines_2014 = f.read()\n", | |
"with open(os.path.join(workspace, 'footballdb_2015.txt'), 'r') as f:\n", | |
" lines_2015 = f.read()\n", | |
" \n", | |
"lines = defaultdict(list)\n", | |
"for line in lines_2014.split('\\n'):\n", | |
" lines['2014'].append(line.split('\\t'))\n", | |
"for line in lines_2015.split('\\n'):\n", | |
" lines['2015'].append(line.split('\\t'))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 35, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# Find the list index of the item 'PAT', as we want the data from that column\n", | |
"index = [i for i, x in enumerate(lines['2014'][0]) if x == u'PAT'][0]\n", | |
"\n", | |
"data = defaultdict(list)\n", | |
"for year in lines.keys():\n", | |
" for line in lines[year]:\n", | |
" # If length of the line is less than 2, break the loop to avoid errors\n", | |
" if len(line) < 2:\n", | |
" continue\n", | |
" # Skip the player column\n", | |
" if line[0] == u'Player':\n", | |
" continue\n", | |
" # Collect the PAT attempts/good as nexted lists in a defaultdict\n", | |
" data[year].append(map(int, line.pop(index).split('/')))\n", | |
"\n", | |
"# Print each kickers attempts and number good\n", | |
"# for year in data.keys():\n", | |
"# for line in data[year]:\n", | |
"# print('Good: {}, Attempt: {}'.format(*line))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 36, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
" good attempts percent\n", | |
"year \n", | |
"2014 1222 1230 99.349593\n", | |
"2015 825 879 93.856655\n" | |
] | |
} | |
], | |
"source": [ | |
"# Barely use pandas to summarize the data by year\n", | |
"df_2014 = pd.DataFrame(data['2014'])\n", | |
"df_2015 = pd.DataFrame(data['2015'])\n", | |
"df_2014.columns = ['good', 'attempts']\n", | |
"df_2015.columns = ['good', 'attempts']\n", | |
"df_2014['year'] = 2014\n", | |
"df_2015['year'] = 2015\n", | |
"\n", | |
"df = pd.concat([df_2014, df_2015])\n", | |
"summary_df = df.groupby(['year']).sum()\n", | |
"summary_df['percent'] = (summary_df['good'] / summary_df['attempts']) * 100.\n", | |
"print(summary_df)\n", | |
"\n", | |
"# print(summary_df['good'].tolist())\n", | |
"# summary_df.boxplot(by='year')\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 37, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAF7CAYAAAAnsQpeAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XmYFNX5//33YQYQWRRRBweMCwiyuSFIgmuGRSICRnIQ\nUQSVuKDg8iiiRo1JRDCiY/i5g4LickDWBNlEjRoXECXKJIhhUYbFhX0dZqaeP6pmvk0zSw90T3cN\nn9d19TXdp7a7qqa67j7nVJXxPA8RERGRsKqW7ABEREREDoaSGREREQk1JTMiIiISakpmREREJNSU\nzIiIiEioKZkRERGRUFMyI1KFGGNeMsbMTXYcEj/GmAHGmL3JjuNgGWNOMMYUGmN+FYd5PWiM+SYe\ncUnVoGRGEs4Y83LwJfZoVHmjoPz8iLLCEl47I4avNMbcW4FlXxPMoyBqngXGmLMqMJ+9xpj+sY5/\nIKLi226M+dIYc20FZzME+F0Fl3ufMWZlBad5JojzphKG9TPGFJZQPs8YM64iy0m00mJNMV7wKpMx\n5vhgv6wwxuw2xnxvjJltjOlZCTHGqkI3NjPGdAz+z34RNegxoEP8wpKwUzIjlcEDdgFDjDHHlzAs\n2s1Aw4jXCQe5/Pyo+TUEjgO+PMj57scYk36Qsyha99OBWcCLxpjfxjqx53nbPM/bUsFlGipwkjHG\nHA5cCXwMDDrY+SVZmGItlTHmDPz/53bAbUBroBMwAxhtjKmXxPAimQMYf7/943neTs/zNsYnJKkS\nPM/TS6+EvoCXgHn4J79XI8obAYXA+RFlhcCVZcxrJXBvBZZ9DZBXzjh/Bz4D0oLPBpgPvIef8K8E\nCoJXIVAQjDcA2AtcCCwGdgNdgROBt4BcYAfwb+CqGGLdb92BZVHb7BpgKbAH+B74U1HcEdt6bgnb\nfhCwCtgCTAeOiZhfYeS6AQ+UE+f1wbIbAXlAu4hhF5Qwv3FBHNHl5wfTHAu8DPwAbAU+AM4rYZ7d\ngH8BO4GFQAugDfBhsJ0/BVpEbau9QBbwNX5C/QlwelmxBsPODea7NXh9AXQuY5uUu8+Bd4EXgPuB\ndcDPwHjg8IhxTLBPNwTLfR0/OSnvf3gJfjJjShh2OFAteF8HeC7Y1ruD7dg5YtwTgm3RF5gdrEtO\nsD2OB94GtuP/D55bwj7qHuyHXcBXwEUlzPtXEWWl7vuI8Yv2TyGwIBj2ELC8hGO9rGMjlu3fMljv\nTRHr2a8yvif1OrhX0gPQq+q/CE6wQMfgi+msoDxVkpmjgTXAqODzfcCPQGbE8L3ALcGX77ER8y7A\nP0FegH9Ca4D/q/jm4O9JwGD8k/4F5cRRUjKzBHDB+0vwa5nuBpriNydtBP4Yva2jPm8GJgZf1OcA\nK4DxwfDDgBHAauCYYP0OLyfOz4AHg/eTgRcjhqUH614QMb+6wet9/JNzUXl6sPylgAPOBE4GhuOf\nDJsH8yw6UX4evD8VP6lZgn/yuxBoHrz/OGrfFwCL8E/GrYGZ+Ce6mkD1UmJNwz/RPRbE0wToCXQs\nY5uUu8/xT6YbgceBZvg1Jz9H7b+hwDbgqmAf/3/4J9ZS/4fxa/EKgb4xHA+Tgv3fKdhmT+Kf/JsF\nw4sSiOXApUEMU/CPjwXBdmgazGc1//cDoGgfLcNPOpsDL+InBBlR8/5VxP9eqfseP7G7NNg/ZwX7\n58hg2geBbyLWK5ZjI5btvwR4NVj+ifg/Tn6T7O9Qvcp/JT0Avar+i4gTbPDFWPTrqrRkZmfwhb4N\n/9fafRHDDySZKQzmsy3itTFqvAvxTz4PBF/ul0YN3wv0L2HeBUT80iwjjmnAc+WMU5zM4J9Qrw/m\nPygo+yfwetQ0Q/B/PadHb+uIz+uLhgdldwO5EZ/vA1bEuD3PCLZTUaLXKdiedSPG6UdQexU17TyC\nmo+IsgHAdwQ1BxHl7wCjg/dFJ8pLI4b3Dsp6RZT1CrbX4VH758KIcY4M4h1YWqzBOMU1Rwfxf7/P\nPsc/mX4RNc7TwEcRn78HHo4aZxJlJzO/C+I9o5x4mgTbrGtU+ecECSn/l3DcGjH87KDstqj/gwKg\nZdQ+GhAxThp+beAfo+ZdlMzEsu+LfgD9Imqc6GQmlmMjlu2/majjXK9wvA62fV+kooYBS40x3fGr\n7ktyL35bf5GDbRvPx//1Gtle70WO4Hnee8aY0fjV1894njezAvNfFPnBGFML/8u2O37fnBrB690Y\n5vWiMeY5/F+tO4ERnue9EAxrBbwRNf77wbhN8H8Vl+S/nuflR3xeC2TEEEtJfg/8w/O8tcHnd/CT\npauAZw5gfmfjb6MtxuzTnaIG/voX8fCbboqsD8q+iioD/xf8qojyT4pn4nmbjTH/wd+WJQrGGQvM\nNcYswN/GUz3PK/XqmQrs8yVRn9cCXYJ51MVP8D+OGudD/BqRUhdfxrBILfG32QdR5f9k/8600dsa\n9t/WBn9b5wRlHvtu6wJjzGeUvq1j3fexiPXYKHX7B/4KjDXGDMRvZp7heV5p31OSQpTMSKXyPG95\ncLIeCfymlNF+8DxvRZyXu7Ks4caYavhNEfn4X36xKvA8Ly+q7K/41eO3A9/g/zocDcTSCbMokdvu\ned4PMcZQ3sksOj4vhmn2X4jf8bcfcHjUpcIGv0/OgSQz1fBPhr1KiCn6hBa5TK+MsoO+sMHzvN8b\nY57EP9F1Af5kjBkckVhGi3Wfl7QvDjbeZfjbriXx69ReGdu6Ivv+QEXPt8zt73nen40xrwIXA78G\n7jXGjPQ874E4xSMJoquZJBn+CGTi/8r3yhm3svwRv82+I3COMeauqOF5+NXmsTgPmOh53lue532F\n3zTWLMZpf/A8b0UpicxS4Pyosgvxv/j/F+P8SxLrul2Jf0I7Pep1EXCaMaZdxPwwUT+3S1nOIvzt\nvi1Y78jXeuKjuNbBGHMkfsfhpeXEiud5OZ7nPel53m+Asfj/r6U5mH1etLxt+B2Io+/Dcm450y3B\nrzUZZozZbz8aY2oHyXrROkf/D52P30H6YBn23dZpQPuI5UaLZd8XJR/l/X/G7djwPG+V53nPep5n\n8Zud97v9gKQeJTNS6TzP+wl4FP8qjQPR0BhzetSrUVkTGGMySnjVCIZdgN/81d/zvIX4J60/R5yc\nwT85XWSMOc4Y06Cc+JYBPY0x7YwxLYHn8ZO3gzUCuNwYM8wYc4oxxuI3bfw1qhmpolbib9MOxpgG\nQZNJSX6P39ySE/X6AP8Klhsj5gf+NjjaGFM7orytMebkYDnp+B2TVwL/MMZ0Dm6s1t4Yc48xpkfE\nskuqSYq1bJQx5jxjTBtgAv93lVCJsRpjmhhjHg3ucfILY8wv8ZOV0k7KEL99/jgw1BhzlTGmqTHm\nTvyrscozAGgMfGKM6RlM29wYcwN+00qdoLZzMvC0MaZLMDwbv4lm1AHEWpJ7jDHdjDGnAs/id54v\nrcYuln2/Gr+fzW+MMceUcYn5QR8bwb4fY4y5yBhzojHmTPwamrL2u6QIJTOSLE8CP7F/zUwsNTWD\n8S+FjnzdV8b4afht40WvdcHf7saY+sArwBOe580H8DxvEn7H2dciTsR3Am3x+2KU1/xzO/6X8AL8\nTq9r8DtxlqfMdfc8723gWqA//i/xx4ExwMMxzLss04L4/oG/btG1UhhjTsdf/zdLmcebgDXG1PU8\nbxGQjX8y2wD8LRjncfx9viRYzq88z9uD33l0Ef4l3MvwL3Fuh78Ni5S0bWIpK8BvunsO/yqsY/Cv\nTtkNUEqs24FT8BOeZfjb5kPg1lLWHWLb57H8b2cDT+E3UX2Bf/XZH8ubKOjXcSb+dnwCv6blHeC3\n+B3mtwajXgfMwf+f/xL4JXCJ53nLy4kzljIP/+qrPwWx/xLoEVXDVjxNLPs+qKEcDtyDf8xOK2X9\nYzk2ytv++UB9/KuwcvAvQ1+P37QqKc54XuXU8ltrx+J3jtvgnDstatid+JdBHu2c2xiUDcf/58wH\nhjrn5gblZ+Hfl+AwYJZz7kB/3YtIFWaMuQZ4wfO8GsmOpaoLajcXAMdHdA4XqTSVWTPzEv41+/uw\n1jYGOhPxK8xa2wKw+G3b3YCnrbVF1cfPANc555oBzay1+81TREQqXYU7lYvES6UlM865D/Fv/hTt\nCfav1u4JvOGcy3fOrcK/gVN7a21DoK5zbmEw3gT8nvAiIpJcqdKZXw5BSe0zY63tAXzvnPsqalAj\n/JtHFckNyhrht0UXWROUiYjsw/O88Wpiqhye573veV6ampgkWZJ2nxlrbS38jnmdkxWDiIiIhF8y\nb5rXBP/ZF0uC/jCNgcXW2vb4NTGRj3xvHJTl4j/sLLq8NKr2FBERqTpK7JtV2cmMKQrEOfc10LBo\ngLV2JXCWc26TtXYGMNFaOxq/Gakp8JlzzrPWbgkSnoX4l+E9VdYC165VreehJDMzU/tc5BCgY/3Q\nk5lZ+q2bKq3PjLX2Nfwn3Taz1n5nrR0YNUrxLdadczn4T1LNAWYBNzvnimpZBuPfjfMbYLlzbnZl\nxC8iIiKpqdLuM5MknjL3Q4t+rYkcGnSsH3qCmpkSm5l0B2AREREJNSUzIiIiEmrJvJpJRETkgNWo\nUYOaNWsmOwyJoz179pCXl1f+iFGUzIiISOjk5+eTlpbGtm3bkh2KxFGtWrWoVasWu3btqtB0amYS\nEZHQKSgoqPAJT1Lfrl27SE+veD2LkhkREREJNSUzIiIiEmpKZkRERKqwDh068OGHHx7QtFOnTqVf\nv35xjij+1AFYRESqhJ92F/LTjvyEzf/o2ukcfVjF6gCmTp3KCy+8wLfffkvdunVp2bIlQ4YMoV27\ndgmK8sCtWbOGDh068N1331Gtmr+el112GZdddlmSIyufkhkREakSftqRz7DZKxI2/5EXn8zRh9WI\nefznnnuOZ555hpEjR3L++edTo0YN3nvvPebNm5eSyYzneRhjCOOTAdTMJCIiEmfbtm3j8ccf55FH\nHqFr167UqlWLtLQ0srKyuPfee8nLy+OBBx6gbdu2tG3blgcffJC9e/cC8PHHH3P22WfzzDPPcNpp\np9G2bVtmz57NggULOPfcc2ndujVjxowpXtbo0aP5/e9/z0033UTz5s3p1q0bOTk5JcbleR5jxoyh\nY8eOtGnThptuuoktW7YAcPnllwPQokULmjdvzuLFi3HO7VMzs3DhQi655BJatmxJ9+7dWbRoUfGw\n3r1789hjj9GrVy+aN29Ov3792LRpE+DfP+bWW2+ldevWxdP+/PPPcdveSmZERETi7PPPPycvL4+L\nL764xOHZ2dl8+eWXzJs3j3nz5vHll1+SnZ1dPPzHH38kLy+PL774gjvvvJO77rqLKVOmMG/ePKZM\nmcITTzzBmjVrisefN28ePXr0ICcnh549e3LddddRUFCw33LHjh3L3LlzmTJlCosXL+aII47g3nvv\nBWDKlCkALFu2jGXLlnHWWWcBYIz/OKTNmzczYMAArr/+er7++msGDRrENddcw+bNm4vnP23aNJ58\n8kn+/e9/s2fPHp599lkAJk2axPbt2/n8889ZunQpjz76KIcddtjBbOJ9KJkRERGJs02bNnHUUUcV\n9z2JNm3aNO644w6OOuoojjrqKO644w7eeuut4uHVq1dnyJAhpKWl0bNnTzZt2sSgQYOoVasWzZo1\no1mzZvvUvrRp04Zu3bqRlpbGDTfcwJ49e1i8ePF+y3311VcZNmwYGRkZVK9endtvv51//OMfFBYW\nFjcvldbM9M4773DSSSdx2WWXUa1aNXr27EmTJk2YN29e8Th9+vThxBNPpGbNmlx66aXFMVavXp1N\nmzaxYsUKjDG0bt2a2rVrV3zDlkJ9ZkREROKsfv36bNy4kcLCwhITmvXr19OoUaPiz40aNWLDhg37\nTF9UI1JUg3H00UcXDz/ssMPYsWNH8efgidKAX5Ny3HHHsX79+v2Wu2bNGq6//vrimDzPIz09nR9/\n/LF4eaXZsGEDjRs33qescePG+yzn2GOPLX5fq1at4hgvv/xy1q5dy80338zWrVu5/PLLGTZsGGlp\naWUuM1aqmREREYmztm3bUqNGDWbPnl3i8IYNG+7TTJSbm0tGRsYBL2/t2rXF7z3PY926dTRs2HC/\n8Ro1asQrr7zC0qVLWbp0KTk5OXz77bdkZGSUm8xkZGTsE3NR3CUtJ1p6ejq333477777LjNmzGDe\nvHlMnjw5xrUrn5IZERGROKtbty533nkn9913H3PmzGHXrl3k5+fz7rvv8pe//IVevXqRnZ3Nxo0b\n2bhxI08++WRxB9wD8dVXXzF79mwKCgp4/vnnqVmzZnGfl0hXXXUVjz76KLm5uQD8/PPPzJ07F6C4\nWWzVqlUlLuPXv/41K1euZPr06RQUFDB9+nS+/fZbOnfuXG58//rXv/jvf/9LYWEhhx9+OOnp6eUm\nTxWhZiYREZEEuOGGG8jIyCA7O5tbb72VOnXq0KZNG4YMGUKbNm3Ytm0bnTp1whhD9+7dGTJkSKnz\nij7xR3/u0qULM2bMYOjQoZx00km88MILxU04keNef/31APTt25cffviBBg0a0KNHD7p06UKtWrUY\nMmQIvXr1oqCggFdffXWfZdSvX5+XX36ZBx54gOHDh3PiiScyfvx4jjzyyBJjivTjjz9yzz33sH79\nemrXrk2PHj3o3bt3DFsxNiaM15NXgBdZ9SZVX2ZmJtrnIlVfgwYN9ru0NxVvmlcZRo8ezapVq3jq\nqaeSHUpc1K1bt8SnoQf9gkrMmFQzIyIiVcLRh1Wr0E3tpOpIvRRTREREpAJUMyMiIhJid9xxR7JD\nSDrVzIiIiEioKZkRERGRUFMyIyIiIqGmZEaS7sUXXyQrK4usrCzGjh0LwNKlS+nRowedOnVi4MCB\n+9y2u8iePXvo3r07Xbp04aKLLmLEiBHFw0aPHk3btm3p2rUrXbt25d133wX8J7526tSJSy65pPjG\nUFu3buXKK69M/IqKiEhCqAOwJNWyZct44403mDVrFunp6Vx11VVkZWVx99138+CDD9K+fXvefPNN\nnn76ae666659pq1ZsyaTJk2iVq1aFBQU0LNnTz766CNOOukkAH7/+99zww037DPN888/z8SJE/nu\nu++YMGECDzzwANnZ2WXerEpERFKbamYkqZYvX86ZZ55JzZo1SUtL45xzzuHtt99m5cqVtG/fHoDz\nzjuPWbNmlTh9rVq1AMjLy8PzPOrXr188rKQbQlavXp0dO3awa9cuqlevzurVq1m3bh0dOnRIwNqJ\niEhlUM2MJNWpp57KqFGj2Lx5MzVr1mTBggWcfvrpNGvWjDlz5tC1a1dmzpzJunXrSpy+sLCQiy++\nmNWrV3P11VfTsmXL4jsAv/zyy7z11lucfvrpPPDAA9SrV4/BgwczdOhQatWqxVNPPcXDDz/M3Xff\nXZmrLCIJUjM3l7QE3gG8IDOTPRFPuo5F7969+c9//sOXX35J9erVAbj99tvJzMzcp7a5Q4cO/PWv\nf+Xcc8+Na8yxcM7x+uuvM3Xq1EpfdrwomZGkatq0KYMHD6Zv377Url2b1q1bk5aWxuOPP84f/vAH\nsrOz6dy5c/GXQLRq1aoxd+5ctm3bRt++fXn//fc55ZRTuOaaa7j99tsxxjBy5Ej++Mc/8vjjj9Oq\nVStmzpwJwKeffkpGRgaFhYXcdNNNVK9enQcffJAGDRpU5iYQkThJW7uWI3v1Stj8N0+bBhVIZtas\nWcMXX3xBo0aNmDt3LpdccknCYjsYnufF9aGPyaBmJkm6Pn368PbbbzN58mTq1avHySefTJMmTXjt\ntdeYNWsWPXv25IQTTihzHnXr1iUrK4tFixYB/nNbig7Ofv36sWTJkv2myc7O5rbbbuOJJ57g/vvv\np1+/frz44ovxX0EROSRNmjSJ888/n969e+OcA2DixIlMnTqVZ555hubNmzNw4ECGDBlCbm4uAwYM\noHnz5jz77LMAfP755/Ts2ZOWLVvSpUsXPv744+J59+7dm1GjRtGzZ0+aNWvGwIED2bhxI7feeiun\nnnoq3bt3L34yNkDjxo0ZN24cv/rVrzjttNP485//DMC3337Lvffey+eff06zZs1o1aoVAO+88w4X\nXXQRzZs35+yzz+a5556rrM12QJTMSNIVPSwuNzeX2bNnc9lllxWXFRYWkp2dzdVXX73fdBs3bmTr\n1q0A7Nq1iw8++IAzzjgDgB9++KF4vFmzZtG8efN9pp00aRJZWVkcccQR7N69G2MMxhh2796dkHUU\nkUPP5MmT6dGjB927d+f999/n559/pl+/flx22WXcdNNNLFu2jJdeeomnnnqKRo0aMX78eJYtW8aN\nN97I+vXri2uYc3Jy+MMf/sCgQYPYuHFj8fxnzJjBmDFjWLx4MatWraJHjx5cccUV5OTk0KRJE0aP\nHr1PPLNnzy5+zZkzhzfeeIOmTZsyYsQI2rZtyzfffMPSpUsBuOuuuxg1ahTLli1jwYIFdOzYsVK3\nXUUpmZGkGzRoEL/+9a8ZOHAgjzzyCHXr1mXatGmcd955XHjhhTRs2JA+ffoAsGHDBvr371/8/ne/\n+x1dunTh0ksvpUuXLmRlZQHw5z//mU6dOtG5c2c++eQTHnrooeLl7dq1i0mTJjFgwIDi5ffv35+H\nHnqoxKRJRKSiPvvsM9avX0+XLl04+eSTadasWbl9UiIvWpgyZQpZWVlceOGFgH8hxOmnn86CBQuK\nx+nTpw/HH388derU4aKLLuKkk06iY8eOVKtWje7du/P111/vM/9bbrmFevXqkZmZyfXXX8+0adNK\njaV69ep88803bN++nXr16tG6desD2AqVR31mJOmmTJmyX9l1113Hddddt195RkYGEyZMAKBFixbM\nmTOnxHk+9dRTpS6vVq1axVW+AO3bt2f+/PkVDVtEpFSTJ0/mggsuoHbt2gB0796dSZMmcf3118c0\n/Zo1a/j73/9e/N3keR75+fn7dBA+5phjit8fdthh+32Ovj/XcccdV/y+cePGbNiwodTlv/DCCzz5\n5JM88sgjtGjRguHDh9O2bduYYk8GJTMiIiJxtHv3bmbOnElhYSFnnnkm4N8+YuvWreTk5JTY2Ta6\nLDMzk8svv5xRo0bFLa61a9dyyimnAH6zfkZGRonLBjjttNMYN24cBQUFjBs3jhtvvJGFCxfGLZZ4\nUzOTiIhIHM2ePZu0tDTee+895s2bx7x583j//fc555xzmDx5MscccwzffffdPtNEl/32t79l/vz5\nvP/++xQWFrJ7924+/vhj1q9ff8BxPfPMM2zZsoXc3FzGjh1Lz549i5e9bt069u7dC8DevXuZOnUq\n27ZtIy0tjTp16pCWlnbAy60MSmZERETiaPLkyVxxxRUcd9xxHH300cWva665hmnTptG3b1+WLVtG\nq1atipudbrnlFp588klatWrFc889R2ZmJuPGjeNvf/sbbdq04ZxzzuHZZ5+lsLAQKLk2pTxdu3al\nW7duXHzxxXTu3JkrrrgCgI4dO9KsWTPOOOMMTjvtNIwxvPXWW3To0IEWLVowceJExowZE78NlACm\npLukViHe2gTeQElST2ZmJtrnIlVfgwYNiq96LJKKN81LFY0bN+ajjz4q9zYXqaBu3bps27Ztv/LM\nzEyAErM49ZmRKmV3Tg6HL1+e7DCqjDB/ecuhZ0+jRhW6qZ1UHUpmpErxVq9O6B1ADzUVveOpiKSm\nsN/htzyVlsxYa8cC3YENzrnTgrJRwKXAHuB/wEDn3NZg2HDgWiAfGOqcmxuUnwW8DBwGzHLO3VZZ\n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\nrkJggg==\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x109e35fd0>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"# Ceate barcharts using matplotlib\n", | |
"fig, ax = plt.subplots()\n", | |
"fig.set_size_inches((8, 6))\n", | |
"rects1 = ax.bar([0.30, 0.60], summary_df['good'].tolist(), width=0.1)\n", | |
"rects2 = ax.bar([0.40, 0.70], summary_df['attempts'].tolist(), width=0.1, color='r')\n", | |
"# rects1 = ax.bar([0.25, 0.5], summary_df['good'].tolist(), width=0.1)\n", | |
"# rects2 = ax.bar([0.35, 0.6], summary_df['attempts'].tolist(), width=0.1, color='r')\n", | |
"\n", | |
"ax.set_title('NFL Extra Point Attempts and Completions')\n", | |
"ax.set_ylabel('Number of PATs')\n", | |
"ax.set_xbound(0, 1)\n", | |
"label_xy = [[0.375, 1250], [0.675, 900]]\n", | |
"label = summary_df['percent'].tolist()\n", | |
"\n", | |
"ax.text(label_xy[0][0], label_xy[0][1], '{:.02f}%'.format(label[0]))\n", | |
"ax.text(label_xy[1][0], label_xy[1][1], '{:.02f}%'.format(label[1]))\n", | |
"\n", | |
"ax.set_xticks([0.4, 0.7])\n", | |
"ax.set_xticklabels(('2014', '2015',))\n", | |
"ax.set_xlim([0.25, 0.85])\n", | |
"plt.legend([rects1, rects2], ['Completions', 'Attempts'])\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 2", | |
"language": "python", | |
"name": "python2" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 2 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython2", | |
"version": "2.7.10" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 0 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment