{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### This is an experiment in using the Kotlin kernel for Jupyter "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "   <div id=\"C2iCh6\"></div>\n",
       "   <script type=\"text/javascript\" data-lets-plot-script=\"library\">\n",
       "       if(!window.letsPlotCallQueue) {\n",
       "           window.letsPlotCallQueue = [];\n",
       "       }; \n",
       "       window.letsPlotCall = function(f) {\n",
       "           window.letsPlotCallQueue.push(f);\n",
       "       };\n",
       "       (function() {\n",
       "           var script = document.createElement(\"script\");\n",
       "           script.type = \"text/javascript\";\n",
       "           script.src = \"https://dl.bintray.com/jetbrains/lets-plot/lets-plot-1.5.2.min.js\";\n",
       "           script.onload = function() {\n",
       "               window.letsPlotCall = function(f) {f();};\n",
       "               window.letsPlotCallQueue.forEach(function(f) {f();});\n",
       "               window.letsPlotCallQueue = [];\n",
       "               \n",
       "               \n",
       "           };\n",
       "           script.onerror = function(event) {\n",
       "               window.letsPlotCall = function(f) {};\n",
       "               window.letsPlotCallQueue = [];\n",
       "               var div = document.createElement(\"div\");\n",
       "               div.style.color = 'darkred';\n",
       "               div.textContent = 'Error loading Lets-Plot JS';\n",
       "               document.getElementById(\"C2iCh6\").appendChild(div);\n",
       "           };\n",
       "           var e = document.getElementById(\"C2iCh6\");\n",
       "           e.appendChild(script);\n",
       "       })();\n",
       "   </script>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "// two \"supported\" packages, we can skip the full dependency & import boilerplate\n",
    "%use lets-plot, krangl  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html><body><table><tr><th style=\"text-align:left\">Rk</th><th style=\"text-align:left\">Year</th><th style=\"text-align:left\">Tms</th><th style=\"text-align:left\">RshTD</th><th style=\"text-align:left\">RecTD</th><th style=\"text-align:left\">PR TD</th><th style=\"text-align:left\">KR TD</th><th style=\"text-align:left\">FblTD</th><th style=\"text-align:left\">IntTD</th><th style=\"text-align:left\">OthTD</th><th style=\"text-align:left\">AllTD</th><th style=\"text-align:left\">2PM</th><th style=\"text-align:left\">2PA</th><th style=\"text-align:left\">XPM</th><th style=\"text-align:left\">XPA</th><th style=\"text-align:left\">FGM</th><th style=\"text-align:left\">FGA</th><th style=\"text-align:left\">Sfty</th><th style=\"text-align:left\">Pts</th><th style=\"text-align:left\">Pts/G</th></tr><tr><td style=\"text-align:left\" title=\"1\">1</td><td style=\"text-align:left\" title=\"2020\">2020</td><td style=\"text-align:left\" title=\"32\">32</td><td style=\"text-align:left\" title=\"132\">132</td><td style=\"text-align:left\" title=\"218\">218</td><td style=\"text-align:left\" title=\"\"></td><td style=\"text-align:left\" title=\"1\">1</td><td style=\"text-align:left\" title=\"2\">2</td><td style=\"text-align:left\" title=\"8\">8</td><td style=\"text-align:left\" title=\"\"></td><td style=\"text-align:left\" title=\"361\">361</td><td style=\"text-align:left\" title=\"21\">21</td><td style=\"text-align:left\" title=\"40\">40</td><td style=\"text-align:left\" title=\"301\">301</td><td style=\"text-align:left\" title=\"321\">321</td><td style=\"text-align:left\" title=\"210\">210</td><td style=\"text-align:left\" title=\"248\">248</td><td style=\"text-align:left\" title=\"6\">6</td><td style=\"text-align:left\" title=\"3151\">3151</td><td style=\"text-align:left\" title=\"25.8\">25.8</td></tr><tr><td style=\"text-align:left\" title=\"2\">2</td><td style=\"text-align:left\" title=\"2019\">2019</td><td style=\"text-align:left\" title=\"32\">32</td><td style=\"text-align:left\" title=\"447\">447</td><td style=\"text-align:left\" title=\"797\">797</td><td style=\"text-align:left\" title=\"7\">7</td><td style=\"text-align:left\" title=\"7\">7</td><td style=\"text-align:left\" title=\"34\">34</td><td style=\"text-align:left\" title=\"35\">35</td><td style=\"text-align:left\" title=\"5\">5</td><td style=\"text-align:left\" title=\"1332\">1332</td><td style=\"text-align:left\" title=\"54\">54</td><td style=\"text-align:left\" title=\"113\">113</td><td style=\"text-align:left\" title=\"1136\">1136</td><td style=\"text-align:left\" title=\"1210\">1210</td><td style=\"text-align:left\" title=\"802\">802</td><td style=\"text-align:left\" title=\"983\">983</td><td style=\"text-align:left\" title=\"17\">17</td><td style=\"text-align:left\" title=\"11676\">11676</td><td style=\"text-align:left\" title=\"22.8\">22.8</td></tr><tr><td style=\"text-align:left\" title=\"3\">3</td><td style=\"text-align:left\" title=\"2018\">2018</td><td style=\"text-align:left\" title=\"32\">32</td><td style=\"text-align:left\" title=\"439\">439</td><td style=\"text-align:left\" title=\"847\">847</td><td style=\"text-align:left\" title=\"7\">7</td><td style=\"text-align:left\" title=\"5\">5</td><td style=\"text-align:left\" title=\"24\">24</td><td style=\"text-align:left\" title=\"45\">45</td><td style=\"text-align:left\" title=\"4\">4</td><td style=\"text-align:left\" title=\"1371\">1371</td><td style=\"text-align:left\" title=\"66\">66</td><td style=\"text-align:left\" title=\"129\">129</td><td style=\"text-align:left\" title=\"1164\">1164</td><td style=\"text-align:left\" title=\"1235\">1235</td><td style=\"text-align:left\" title=\"802\">802</td><td style=\"text-align:left\" title=\"947\">947</td><td style=\"text-align:left\" title=\"10\">10</td><td style=\"text-align:left\" title=\"11948\">11948</td><td style=\"text-align:left\" title=\"23.3\">23.3</td></tr><tr><td style=\"text-align:left\" title=\"4\">4</td><td style=\"text-align:left\" title=\"2017\">2017</td><td style=\"text-align:left\" title=\"32\">32</td><td style=\"text-align:left\" title=\"380\">380</td><td style=\"text-align:left\" title=\"741\">741</td><td style=\"text-align:left\" title=\"10\">10</td><td style=\"text-align:left\" title=\"7\">7</td><td style=\"text-align:left\" title=\"41\">41</td><td style=\"text-align:left\" title=\"42\">42</td><td style=\"text-align:left\" title=\"4\">4</td><td style=\"text-align:left\" title=\"1225\">1225</td><td style=\"text-align:left\" title=\"37\">37</td><td style=\"text-align:left\" title=\"82\">82</td><td style=\"text-align:left\" title=\"1066\">1066</td><td style=\"text-align:left\" title=\"1134\">1134</td><td style=\"text-align:left\" title=\"866\">866</td><td style=\"text-align:left\" title=\"1027\">1027</td><td style=\"text-align:left\" title=\"15\">15</td><td style=\"text-align:left\" title=\"11118\">11118</td><td style=\"text-align:left\" title=\"21.7\">21.7</td></tr><tr><td style=\"text-align:left\" title=\"5\">5</td><td style=\"text-align:left\" title=\"2016\">2016</td><td style=\"text-align:left\" title=\"32\">32</td><td style=\"text-align:left\" title=\"443\">443</td><td style=\"text-align:left\" title=\"786\">786</td><td style=\"text-align:left\" title=\"10\">10</td><td style=\"text-align:left\" title=\"7\">7</td><td style=\"text-align:left\" title=\"22\">22</td><td style=\"text-align:left\" title=\"34\">34</td><td style=\"text-align:left\" title=\"4\">4</td><td style=\"text-align:left\" title=\"1306\">1306</td><td style=\"text-align:left\" title=\"51\">51</td><td style=\"text-align:left\" title=\"105\">105</td><td style=\"text-align:left\" title=\"1119\">1119</td><td style=\"text-align:left\" title=\"1195\">1195</td><td style=\"text-align:left\" title=\"850\">850</td><td style=\"text-align:left\" title=\"1009\">1009</td><td style=\"text-align:left\" title=\"20\">20</td><td style=\"text-align:left\" title=\"11647\">11647</td><td style=\"text-align:left\" title=\"22.8\">22.8</td></tr><tr><td style=\"text-align:left\" title=\"6\">6</td><td style=\"text-align:left\" title=\"2015\">2015</td><td style=\"text-align:left\" title=\"32\">32</td><td style=\"text-align:left\" title=\"365\">365</td><td style=\"text-align:left\" title=\"842\">842</td><td style=\"text-align:left\" title=\"13\">13</td><td style=\"text-align:left\" title=\"7\">7</td><td style=\"text-align:left\" title=\"33\">33</td><td style=\"text-align:left\" title=\"53\">53</td><td style=\"text-align:left\" title=\"5\">5</td><td style=\"text-align:left\" title=\"1318\">1318</td><td style=\"text-align:left\" title=\"45\">45</td><td style=\"text-align:left\" title=\"94\">94</td><td style=\"text-align:left\" title=\"1146\">1146</td><td style=\"text-align:left\" title=\"1217\">1217</td><td style=\"text-align:left\" title=\"834\">834</td><td style=\"text-align:left\" title=\"987\">987</td><td style=\"text-align:left\" title=\"16\">16</td><td style=\"text-align:left\" title=\"11678\">11678</td><td style=\"text-align:left\" title=\"22.8\">22.8</td></tr><tr><td style=\"text-align:left\" title=\"7\">7</td><td style=\"text-align:left\" title=\"2014\">2014</td><td style=\"text-align:left\" title=\"32\">32</td><td style=\"text-align:left\" title=\"380\">380</td><td style=\"text-align:left\" title=\"807\">807</td><td style=\"text-align:left\" title=\"13\">13</td><td style=\"text-align:left\" title=\"6\">6</td><td style=\"text-align:left\" title=\"28\">28</td><td style=\"text-align:left\" title=\"47\">47</td><td style=\"text-align:left\" title=\"12\">12</td><td style=\"text-align:left\" title=\"1293\">1293</td><td style=\"text-align:left\" title=\"28\">28</td><td style=\"text-align:left\" title=\"58\">58</td><td style=\"text-align:left\" title=\"1222\">1222</td><td style=\"text-align:left\" title=\"1230\">1230</td><td style=\"text-align:left\" title=\"829\">829</td><td style=\"text-align:left\" title=\"987\">987</td><td style=\"text-align:left\" title=\"21\">21</td><td style=\"text-align:left\" title=\"11565\">11565</td><td style=\"text-align:left\" title=\"22.6\">22.6</td></tr><tr><td style=\"text-align:left\" title=\"8\">8</td><td style=\"text-align:left\" title=\"2013\">2013</td><td style=\"text-align:left\" title=\"32\">32</td><td style=\"text-align:left\" title=\"410\">410</td><td style=\"text-align:left\" title=\"804\">804</td><td style=\"text-align:left\" title=\"13\">13</td><td style=\"text-align:left\" title=\"7\">7</td><td style=\"text-align:left\" title=\"30\">30</td><td style=\"text-align:left\" title=\"65\">65</td><td style=\"text-align:left\" title=\"9\">9</td><td style=\"text-align:left\" title=\"1338\">1338</td><td style=\"text-align:left\" title=\"34\">34</td><td style=\"text-align:left\" title=\"69\">69</td><td style=\"text-align:left\" title=\"1262\">1262</td><td style=\"text-align:left\" title=\"1267\">1267</td><td style=\"text-align:left\" title=\"863\">863</td><td style=\"text-align:left\" title=\"998\">998</td><td style=\"text-align:left\" title=\"20\">20</td><td style=\"text-align:left\" title=\"11987\">11987</td><td style=\"text-align:left\" title=\"23.4\">23.4</td></tr><tr><td style=\"text-align:left\" title=\"9\">9</td><td style=\"text-align:left\" title=\"2012\">2012</td><td style=\"text-align:left\" title=\"32\">32</td><td style=\"text-align:left\" title=\"401\">401</td><td style=\"text-align:left\" title=\"757\">757</td><td style=\"text-align:left\" title=\"18\">18</td><td style=\"text-align:left\" title=\"13\">13</td><td style=\"text-align:left\" title=\"26\">26</td><td style=\"text-align:left\" title=\"71\">71</td><td style=\"text-align:left\" title=\"11\">11</td><td style=\"text-align:left\" title=\"1297\">1297</td><td style=\"text-align:left\" title=\"29\">29</td><td style=\"text-align:left\" title=\"56\">56</td><td style=\"text-align:left\" title=\"1229\">1229</td><td style=\"text-align:left\" title=\"1235\">1235</td><td style=\"text-align:left\" title=\"852\">852</td><td style=\"text-align:left\" title=\"1016\">1016</td><td style=\"text-align:left\" title=\"13\">13</td><td style=\"text-align:left\" title=\"11651\">11651</td><td style=\"text-align:left\" title=\"22.8\">22.8</td></tr><tr><td style=\"text-align:left\" title=\"10\">10</td><td style=\"text-align:left\" title=\"2011\">2011</td><td style=\"text-align:left\" title=\"32\">32</td><td style=\"text-align:left\" title=\"400\">400</td><td style=\"text-align:left\" title=\"745\">745</td><td style=\"text-align:left\" title=\"20\">20</td><td style=\"text-align:left\" title=\"9\">9</td><td style=\"text-align:left\" title=\"31\">31</td><td style=\"text-align:left\" title=\"49\">49</td><td style=\"text-align:left\" title=\"5\">5</td><td style=\"text-align:left\" title=\"1259\">1259</td><td style=\"text-align:left\" title=\"24\">24</td><td style=\"text-align:left\" title=\"50\">50</td><td style=\"text-align:left\" title=\"1200\">1200</td><td style=\"text-align:left\" title=\"1207\">1207</td><td style=\"text-align:left\" title=\"838\">838</td><td style=\"text-align:left\" title=\"1011\">1011</td><td style=\"text-align:left\" title=\"21\">21</td><td style=\"text-align:left\" title=\"11358\">11358</td><td style=\"text-align:left\" title=\"22.2\">22.2</td></tr><tr><td style=\"text-align:left\" title=\"11\">11</td><td style=\"text-align:left\" title=\"2010\">2010</td><td style=\"text-align:left\" title=\"32\">32</td><td style=\"text-align:left\" title=\"399\">399</td><td style=\"text-align:left\" title=\"751\">751</td><td style=\"text-align:left\" title=\"13\">13</td><td style=\"text-align:left\" title=\"23\">23</td><td style=\"text-align:left\" title=\"22\">22</td><td style=\"text-align:left\" title=\"57\">57</td><td style=\"text-align:left\" title=\"5\">5</td><td style=\"text-align:left\" title=\"1270\">1270</td><td style=\"text-align:left\" title=\"26\">26</td><td style=\"text-align:left\" title=\"50\">50</td><td style=\"text-align:left\" title=\"1203\">1203</td><td style=\"text-align:left\" title=\"1214\">1214</td><td style=\"text-align:left\" title=\"794\">794</td><td style=\"text-align:left\" title=\"964\">964</td><td style=\"text-align:left\" title=\"13\">13</td><td style=\"text-align:left\" title=\"11283\">11283</td><td style=\"text-align:left\" title=\"22.0\">22.0</td></tr><tr><td style=\"text-align:left\" title=\"12\">12</td><td style=\"text-align:left\" title=\"2009\">2009</td><td style=\"text-align:left\" title=\"32\">32</td><td style=\"text-align:left\" title=\"429\">429</td><td style=\"text-align:left\" title=\"710\">710</td><td style=\"text-align:left\" title=\"10\">10</td><td style=\"text-align:left\" title=\"18\">18</td><td style=\"text-align:left\" title=\"25\">25</td><td style=\"text-align:left\" title=\"48\">48</td><td style=\"text-align:left\" title=\"7\">7</td><td style=\"text-align:left\" title=\"1247\">1247</td><td style=\"text-align:left\" title=\"24\">24</td><td style=\"text-align:left\" title=\"59\">59</td><td style=\"text-align:left\" title=\"1165\">1165</td><td style=\"text-align:left\" title=\"1185\">1185</td><td style=\"text-align:left\" title=\"756\">756</td><td style=\"text-align:left\" title=\"930\">930</td><td style=\"text-align:left\" title=\"14\">14</td><td style=\"text-align:left\" title=\"10991\">10991</td><td style=\"text-align:left\" title=\"21.5\">21.5</td></tr><tr><td style=\"text-align:left\" title=\"13\">13</td><td style=\"text-align:left\" title=\"2008\">2008</td><td style=\"text-align:left\" title=\"32\">32</td><td style=\"text-align:left\" title=\"476\">476</td><td style=\"text-align:left\" title=\"646\">646</td><td style=\"text-align:left\" title=\"16\">16</td><td style=\"text-align:left\" title=\"13\">13</td><td style=\"text-align:left\" title=\"33\">33</td><td style=\"text-align:left\" title=\"52\">52</td><td style=\"text-align:left\" title=\"10\">10</td><td style=\"text-align:left\" title=\"1246\">1246</td><td style=\"text-align:left\" title=\"28\">28</td><td style=\"text-align:left\" title=\"64\">64</td><td style=\"text-align:left\" title=\"1170\">1170</td><td style=\"text-align:left\" title=\"1176\">1176</td><td style=\"text-align:left\" title=\"845\">845</td><td style=\"text-align:left\" title=\"1000\">1000</td><td style=\"text-align:left\" title=\"21\">21</td><td style=\"text-align:left\" title=\"11279\">11279</td><td style=\"text-align:left\" title=\"22.0\">22.0</td></tr><tr><td style=\"text-align:left\" title=\"14\">14</td><td style=\"text-align:left\" title=\"2007\">2007</td><td style=\"text-align:left\" title=\"32\">32</td><td style=\"text-align:left\" title=\"386\">386</td><td style=\"text-align:left\" title=\"720\">720</td><td style=\"text-align:left\" title=\"17\">17</td><td style=\"text-align:left\" title=\"25\">25</td><td style=\"text-align:left\" title=\"37\">37</td><td style=\"text-align:left\" title=\"52\">52</td><td style=\"text-align:left\" title=\"6\">6</td><td style=\"text-align:left\" title=\"1243\">1243</td><td style=\"text-align:left\" title=\"30\">30</td><td style=\"text-align:left\" title=\"57\">57</td><td style=\"text-align:left\" title=\"1165\">1165</td><td style=\"text-align:left\" title=\"1177\">1177</td><td style=\"text-align:left\" title=\"795\">795</td><td style=\"text-align:left\" title=\"960\">960</td><td style=\"text-align:left\" title=\"18\">18</td><td style=\"text-align:left\" title=\"11104\">11104</td><td style=\"text-align:left\" title=\"21.7\">21.7</td></tr><tr><td style=\"text-align:left\" title=\"15\">15</td><td style=\"text-align:left\" title=\"2006\">2006</td><td style=\"text-align:left\" title=\"32\">32</td><td style=\"text-align:left\" title=\"424\">424</td><td style=\"text-align:left\" title=\"648\">648</td><td style=\"text-align:left\" title=\"15\">15</td><td style=\"text-align:left\" title=\"9\">9</td><td style=\"text-align:left\" title=\"33\">33</td><td style=\"text-align:left\" title=\"49\">49</td><td style=\"text-align:left\" title=\"3\">3</td><td style=\"text-align:left\" title=\"1181\">1181</td><td style=\"text-align:left\" title=\"21\">21</td><td style=\"text-align:left\" title=\"35\">35</td><td style=\"text-align:left\" title=\"1124\">1124</td><td style=\"text-align:left\" title=\"1135\">1135</td><td style=\"text-align:left\" title=\"767\">767</td><td style=\"text-align:left\" title=\"942\">942</td><td style=\"text-align:left\" title=\"12\">12</td><td style=\"text-align:left\" title=\"10577\">10577</td><td style=\"text-align:left\" title=\"20.7\">20.7</td></tr><tr><td style=\"text-align:left\" title=\"16\">16</td><td style=\"text-align:left\" title=\"2005\">2005</td><td style=\"text-align:left\" title=\"32\">32</td><td style=\"text-align:left\" title=\"431\">431</td><td style=\"text-align:left\" title=\"644\">644</td><td style=\"text-align:left\" title=\"9\">9</td><td style=\"text-align:left\" title=\"12\">12</td><td style=\"text-align:left\" title=\"23\">23</td><td style=\"text-align:left\" title=\"47\">47</td><td style=\"text-align:left\" title=\"6\">6</td><td style=\"text-align:left\" title=\"1172\">1172</td><td style=\"text-align:left\" title=\"27\">27</td><td style=\"text-align:left\" title=\"47\">47</td><td style=\"text-align:left\" title=\"1099\">1099</td><td style=\"text-align:left\" title=\"1114\">1114</td><td style=\"text-align:left\" title=\"783\">783</td><td style=\"text-align:left\" title=\"967\">967</td><td style=\"text-align:left\" title=\"11\">11</td><td style=\"text-align:left\" title=\"10556\">10556</td><td style=\"text-align:left\" title=\"20.6\">20.6</td></tr><tr><td style=\"text-align:left\" title=\"17\">17</td><td style=\"text-align:left\" title=\"2004\">2004</td><td style=\"text-align:left\" title=\"32\">32</td><td style=\"text-align:left\" title=\"416\">416</td><td style=\"text-align:left\" title=\"732\">732</td><td style=\"text-align:left\" title=\"11\">11</td><td style=\"text-align:left\" title=\"17\">17</td><td style=\"text-align:left\" title=\"34\">34</td><td style=\"text-align:left\" title=\"53\">53</td><td style=\"text-align:left\" title=\"5\">5</td><td style=\"text-align:left\" title=\"1268\">1268</td><td style=\"text-align:left\" title=\"37\">37</td><td style=\"text-align:left\" title=\"73\">73</td><td style=\"text-align:left\" title=\"1179\">1179</td><td style=\"text-align:left\" title=\"1189\">1189</td><td style=\"text-align:left\" title=\"703\">703</td><td style=\"text-align:left\" title=\"870\">870</td><td style=\"text-align:left\" title=\"15\">15</td><td style=\"text-align:left\" title=\"11000\">11000</td><td style=\"text-align:left\" title=\"21.5\">21.5</td></tr><tr><td style=\"text-align:left\" title=\"18\">18</td><td style=\"text-align:left\" title=\"2003\">2003</td><td style=\"text-align:left\" title=\"32\">32</td><td style=\"text-align:left\" title=\"427\">427</td><td style=\"text-align:left\" title=\"654\">654</td><td style=\"text-align:left\" title=\"18\">18</td><td style=\"text-align:left\" title=\"13\">13</td><td style=\"text-align:left\" title=\"24\">24</td><td style=\"text-align:left\" title=\"58\">58</td><td style=\"text-align:left\" title=\"4\">4</td><td style=\"text-align:left\" title=\"1198\">1198</td><td style=\"text-align:left\" title=\"29\">29</td><td style=\"text-align:left\" title=\"60\">60</td><td style=\"text-align:left\" title=\"1110\">1110</td><td style=\"text-align:left\" title=\"1128\">1128</td><td style=\"text-align:left\" title=\"756\">756</td><td style=\"text-align:left\" title=\"954\">954</td><td style=\"text-align:left\" title=\"21\">21</td><td style=\"text-align:left\" title=\"10666\">10666</td><td style=\"text-align:left\" title=\"20.8\">20.8</td></tr><tr><td style=\"text-align:left\" title=\"19\">19</td><td style=\"text-align:left\" title=\"2002\">2002</td><td style=\"text-align:left\" title=\"32\">32</td><td style=\"text-align:left\" title=\"460\">460</td><td style=\"text-align:left\" title=\"694\">694</td><td style=\"text-align:left\" title=\"22\">22</td><td style=\"text-align:left\" title=\"17\">17</td><td style=\"text-align:left\" title=\"26\">26</td><td style=\"text-align:left\" title=\"46\">46</td><td style=\"text-align:left\" title=\"5\">5</td><td style=\"text-align:left\" title=\"1270\">1270</td><td style=\"text-align:left\" title=\"47\">47</td><td style=\"text-align:left\" title=\"81\">81</td><td style=\"text-align:left\" title=\"1148\">1148</td><td style=\"text-align:left\" title=\"1165\">1165</td><td style=\"text-align:left\" title=\"737\">737</td><td style=\"text-align:left\" title=\"951\">951</td><td style=\"text-align:left\" title=\"12\">12</td><td style=\"text-align:left\" title=\"11097\">11097</td><td style=\"text-align:left\" title=\"21.7\">21.7</td></tr><tr><td style=\"text-align:left\" title=\"20\">20</td><td style=\"text-align:left\" title=\"2001\">2001</td><td style=\"text-align:left\" title=\"31\">31</td><td style=\"text-align:left\" title=\"365\">365</td><td style=\"text-align:left\" title=\"635\">635</td><td style=\"text-align:left\" title=\"12\">12</td><td style=\"text-align:left\" title=\"10\">10</td><td style=\"text-align:left\" title=\"33\">33</td><td style=\"text-align:left\" title=\"59\">59</td><td style=\"text-align:left\" title=\"6\">6</td><td style=\"text-align:left\" title=\"1120\">1120</td><td style=\"text-align:left\" title=\"40\">40</td><td style=\"text-align:left\" title=\"85\">85</td><td style=\"text-align:left\" title=\"1008\">1008</td><td style=\"text-align:left\" title=\"1027\">1027</td><td style=\"text-align:left\" title=\"732\">732</td><td style=\"text-align:left\" title=\"959\">959</td><td style=\"text-align:left\" title=\"10\">10</td><td style=\"text-align:left\" title=\"10024\">10024</td><td style=\"text-align:left\" title=\"20.2\">20.2</td></tr></table><p>... only showing top 20 rows</p></body></html>"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "// csv is courtesy of pro-football-reference: https://www.pro-football-reference.com/years/NFL/scoring.htm\n",
    "val dfScoring = DataFrame.readCSV(\"nfl_scoring.csv\")\n",
    "dfScoring"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{Rk=[Ljava.lang.Integer;@49f2b6ca, Year=[Ljava.lang.Integer;@2fd250ed, Tms=[Ljava.lang.Integer;@16d1f77d, RshTD=[Ljava.lang.Integer;@3c945a20, RecTD=[Ljava.lang.Integer;@608cff9e, PR TD=[Ljava.lang.String;@5de49e5a, KR TD=[Ljava.lang.String;@4497e084, FblTD=[Ljava.lang.String;@5a4cf76c, IntTD=[Ljava.lang.Integer;@5d3b93b4, OthTD=[Ljava.lang.String;@2454d007, AllTD=[Ljava.lang.Integer;@5f3c97c9, 2PM=[Ljava.lang.String;@6276fcd5, 2PA=[Ljava.lang.Integer;@63d1751c, XPM=[Ljava.lang.Integer;@61075589, XPA=[Ljava.lang.String;@5a3e14bf, FGM=[Ljava.lang.Integer;@ffbdb79, FGA=[Ljava.lang.String;@67ea360f, Sfty=[Ljava.lang.String;@3c9a8c66, Pts=[Ljava.lang.Integer;@16abeca6, Pts/G=[Ljava.lang.Double;@475add19}"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "val mapScoring = dfScoring.filter { (it[\"Year\"] lt 2020) AND (it[\"Year\"] gt 1989) }.toMap()\n",
    "mapScoring"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "   <div id=\"HhCScM\"></div>\n",
       "   <script type=\"text/javascript\" data-lets-plot-script=\"plot\">\n",
       "       (function() {\n",
       "           var plotSpec={\n",
       "'ggtitle':{\n",
       "'text':\"Total Points per NFL regular season\"\n",
       "},\n",
       "'mapping':{\n",
       "'x':\"Year\",\n",
       "'y':\"Pts\"\n",
       "},\n",
       "'data':{\n",
       "'Year':[2019.0,2018.0,2017.0,2016.0,2015.0,2014.0,2013.0,2012.0,2011.0,2010.0,2009.0,2008.0,2007.0,2006.0,2005.0,2004.0,2003.0,2002.0,2001.0,2000.0,1999.0,1998.0,1997.0,1996.0,1995.0,1994.0,1993.0,1992.0,1991.0,1990.0],\n",
       "'Pts':[11676.0,11948.0,11118.0,11647.0,11678.0,11565.0,11987.0,11651.0,11358.0,11283.0,10991.0,11279.0,11104.0,10577.0,10556.0,11000.0,10666.0,11097.0,10024.0,10254.0,10324.0,10215.0,9957.0,9805.0,10314.0,9075.0,8377.0,8391.0,8506.0,9015.0]\n",
       "},\n",
       "'ggsize':{\n",
       "'width':640,\n",
       "'height':240\n",
       "},\n",
       "'kind':\"plot\",\n",
       "'scales':[],\n",
       "'layers':[{\n",
       "'stat':\"identity\",\n",
       "'mapping':{\n",
       "},\n",
       "'data':{\n",
       "},\n",
       "'position':\"stack\",\n",
       "'geom':\"bar\"\n",
       "}]\n",
       "};\n",
       "           var plotContainer = document.getElementById(\"HhCScM\");\n",
       "           window.letsPlotCall(function() {{\n",
       "               LetsPlot.buildPlotFromProcessedSpecs(plotSpec, -1, -1, plotContainer);\n",
       "           }});\n",
       "       })();    \n",
       "   </script>"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "val p = lets_plot(mapScoring) { x = \"Year\"; y = \"Pts\" } + ggsize(640, 240)\n",
    "p + geom_bar(stat=Stat.identity) +\n",
    "    ggtitle(\"Total Points per NFL regular season\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "   <div id=\"LweJuW\"></div>\n",
       "   <script type=\"text/javascript\" data-lets-plot-script=\"plot\">\n",
       "       (function() {\n",
       "           var plotSpec={\n",
       "'ggtitle':{\n",
       "'text':\"Total Receiving Touchdowns per NFL regular season\"\n",
       "},\n",
       "'mapping':{\n",
       "'x':\"Year\",\n",
       "'y':\"RecTD\"\n",
       "},\n",
       "'data':{\n",
       "'RecTD':[797.0,847.0,741.0,786.0,842.0,807.0,804.0,757.0,745.0,751.0,710.0,646.0,720.0,648.0,644.0,732.0,654.0,694.0,635.0,634.0,665.0,658.0,617.0,626.0,663.0,583.0,517.0,516.0,511.0,575.0],\n",
       "'Year':[2019.0,2018.0,2017.0,2016.0,2015.0,2014.0,2013.0,2012.0,2011.0,2010.0,2009.0,2008.0,2007.0,2006.0,2005.0,2004.0,2003.0,2002.0,2001.0,2000.0,1999.0,1998.0,1997.0,1996.0,1995.0,1994.0,1993.0,1992.0,1991.0,1990.0]\n",
       "},\n",
       "'ggsize':{\n",
       "'width':640,\n",
       "'height':240\n",
       "},\n",
       "'kind':\"plot\",\n",
       "'scales':[],\n",
       "'layers':[{\n",
       "'stat':\"identity\",\n",
       "'mapping':{\n",
       "},\n",
       "'data':{\n",
       "},\n",
       "'position':\"stack\",\n",
       "'geom':\"bar\"\n",
       "}]\n",
       "};\n",
       "           var plotContainer = document.getElementById(\"LweJuW\");\n",
       "           window.letsPlotCall(function() {{\n",
       "               LetsPlot.buildPlotFromProcessedSpecs(plotSpec, -1, -1, plotContainer);\n",
       "           }});\n",
       "       })();    \n",
       "   </script>"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "val p = lets_plot(mapScoring) { x = \"Year\"; y = \"RecTD\" } + ggsize(640, 240)\n",
    "p + geom_bar(stat=Stat.identity) +\n",
    "    ggtitle(\"Total Receiving Touchdowns per NFL regular season\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "val dfScoringRanges = dfScoring\n",
    "    .filter { (it[\"Year\"] lt 2020) AND (it[\"Year\"] gt 1989) }\n",
    "    .addColumn(\"YearRange\") { it[\"Year\"].map<Double>{ floor(it.div(5.0)).times(5).toInt() }}\n",
    "    .addColumn(\"Years\") { it[\"YearRange\"].map<Int>{ \"$it - ${it + 4}\" }}\n",
    "\n",
    "val mapScoringRanges = dfScoringRanges\n",
    "    .select({ listOf(\"Year\", \"Pts\", \"RecTD\", \"YearRange\", \"Years\") })\n",
    "    .groupBy(\"YearRange\", \"Years\")\n",
    "    .summarize(\n",
    "        \"mean_Pts\" to { it[\"Pts\"].mean(removeNA = true) },\n",
    "        \"mean_RecTD\" to { it[\"RecTD\"].mean(removeNA = true) }\n",
    "    ).toMap()\n",
    "    \n",
    "val xlimits = listOf(\"1990 - 1994\", \"1995 - 1999\", \"2000 - 2004\", \"2005 - 2009\", \"2010 - 2014\", \"2015 - 2019\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "   <div id=\"0BN4jF\"></div>\n",
       "   <script type=\"text/javascript\" data-lets-plot-script=\"plot\">\n",
       "       (function() {\n",
       "           var plotSpec={\n",
       "'ggtitle':{\n",
       "'text':\"Average total points per NFL regular season\"\n",
       "},\n",
       "'mapping':{\n",
       "'x':\"Years\",\n",
       "'y':\"mean_Pts\"\n",
       "},\n",
       "'data':{\n",
       "'Years':[\"2015 - 2019\",\"2010 - 2014\",\"2005 - 2009\",\"2000 - 2004\",\"1995 - 1999\",\"1990 - 1994\"],\n",
       "'mean_Pts':[11613.4,11568.8,10901.4,10608.2,10123.0,8672.8]\n",
       "},\n",
       "'ggsize':{\n",
       "'width':720,\n",
       "'height':240\n",
       "},\n",
       "'kind':\"plot\",\n",
       "'scales':[{\n",
       "'aesthetic':\"x\",\n",
       "'limits':[\"1990 - 1994\",\"1995 - 1999\",\"2000 - 2004\",\"2005 - 2009\",\"2010 - 2014\",\"2015 - 2019\"]\n",
       "}],\n",
       "'layers':[{\n",
       "'stat':\"identity\",\n",
       "'mapping':{\n",
       "},\n",
       "'data':{\n",
       "},\n",
       "'position':\"stack\",\n",
       "'geom':\"bar\"\n",
       "}]\n",
       "};\n",
       "           var plotContainer = document.getElementById(\"0BN4jF\");\n",
       "           window.letsPlotCall(function() {{\n",
       "               LetsPlot.buildPlotFromProcessedSpecs(plotSpec, -1, -1, plotContainer);\n",
       "           }});\n",
       "       })();    \n",
       "   </script>"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "val p = lets_plot(mapScoringRanges) { x = \"Years\"; y = \"mean_Pts\" } + ggsize(720, 240)\n",
    "p + geom_bar(stat=Stat.identity) + scale_x_discrete(limits = xlimits) +\n",
    "    ggtitle(\"Average total points per NFL regular season\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "E:\\CFNine\\winprobability\\scraping\\lets-plot-images\\avg_points_binned.png"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ggsave(p + geom_bar(stat=Stat.identity) + scale_x_discrete(limits = xlimits) +\n",
    "    ggtitle(\"Average total points per NFL regular season\"), \"avg_points_binned.png\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "   <div id=\"WdyH2p\"></div>\n",
       "   <script type=\"text/javascript\" data-lets-plot-script=\"plot\">\n",
       "       (function() {\n",
       "           var plotSpec={\n",
       "'ggtitle':{\n",
       "'text':\"Average Receiving Touchdowns per NFL regular season\"\n",
       "},\n",
       "'mapping':{\n",
       "'x':\"Years\",\n",
       "'y':\"mean_RecTD\"\n",
       "},\n",
       "'data':{\n",
       "'Years':[\"2015 - 2019\",\"2010 - 2014\",\"2005 - 2009\",\"2000 - 2004\",\"1995 - 1999\",\"1990 - 1994\"],\n",
       "'mean_RecTD':[802.6,772.8,673.6,669.8,645.8,540.4]\n",
       "},\n",
       "'ggsize':{\n",
       "'width':720,\n",
       "'height':240\n",
       "},\n",
       "'kind':\"plot\",\n",
       "'scales':[{\n",
       "'aesthetic':\"x\",\n",
       "'limits':[\"1990 - 1994\",\"1995 - 1999\",\"2000 - 2004\",\"2005 - 2009\",\"2010 - 2014\",\"2015 - 2019\"]\n",
       "}],\n",
       "'layers':[{\n",
       "'stat':\"identity\",\n",
       "'mapping':{\n",
       "},\n",
       "'data':{\n",
       "},\n",
       "'position':\"stack\",\n",
       "'geom':\"bar\"\n",
       "}]\n",
       "};\n",
       "           var plotContainer = document.getElementById(\"WdyH2p\");\n",
       "           window.letsPlotCall(function() {{\n",
       "               LetsPlot.buildPlotFromProcessedSpecs(plotSpec, -1, -1, plotContainer);\n",
       "           }});\n",
       "       })();    \n",
       "   </script>"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "val p2 = lets_plot(mapScoringRanges) { x = \"Years\"; y = \"mean_RecTD\" } + ggsize(720, 240)\n",
    "p2 + geom_bar(stat=Stat.identity) + scale_x_discrete(limits = xlimits) +\n",
    "    ggtitle(\"Average Receiving Touchdowns per NFL regular season\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "E:\\CFNine\\winprobability\\scraping\\lets-plot-images\\avg_rectd_binned.png"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ggsave(p2 + geom_bar(stat=Stat.identity) + scale_x_discrete(limits = xlimits) +\n",
    "    ggtitle(\"Average Receiving Touchdowns per NFL regular season\"), \"avg_rectd_binned.png\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Kotlin",
   "language": "kotlin",
   "name": "kotlin"
  },
  "language_info": {
   "codemirror_mode": "text/x-kotlin",
   "file_extension": ".kt",
   "mimetype": "text/x-kotlin",
   "name": "kotlin",
   "pygments_lexer": "kotlin",
   "version": "1.4.20-dev-2342"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}