{ "metadata": { "name": "", "signature": "sha256:38b59ae8be7fd65d5cce5c6965931cdbf367bff5a149b4d7c4bb4dbc629f67cd" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Preliminaries\n", "\n", "First, we'll load some required libraries and set some global options" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import pandas as pd # our core data analysis toolkit\n", "import numpy as np \n", "import pylab as pl # plotting libraries\n", "from ggplot import *\n", "from pandas import read_json # a function for reading data in JSON files\n", "\n", "# This option shows our plots directly in iPython Notebooks\n", "%matplotlib inline \n", "\n", "# This option gives a more pleasing visual style to our plots\n", "pd.set_option('display.mpl_style', 'default')\n", "\n", "# The location of our playtest data file\n", "filepath = \"2014-05-13 makescape playtest.json\"" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Data Analysis\n", "\n", "## Loading and Cleaning\n", "\n", "Below we'll load the data and sort by increasing timestamp." ] }, { "cell_type": "code", "collapsed": false, "input": [ "def loadDataSortedByTimestamp(filepath):\n", " x = read_json(filepath)\n", " x = x.sort(columns='timestamp')\n", " x.index = range(0, len(x))\n", " return(x)\n", "\n", "ms = loadDataSortedByTimestamp(filepath)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now that our data is loaded with the variable `ms` (I chose it as an abbreviation of MakeScape), let's look at it and make sure it's sane. One of the first things I'll do is check the list of columns that our data comes with." ] }, { "cell_type": "code", "collapsed": false, "input": [ "ms.columns" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 3, "text": [ "Index([u'_id', u'ada_base_types', u'adage_version', u'application_name', u'application_version', u'board_mode', u'component_list', u'created_at', u'deviceInfo', u'fish', u'fish_list', u'game', u'game_id', u'key', u'mode_name', u'num_batteries', u'num_leds', u'num_resistors', u'num_timers', u'player_name', u'player_names', u'playspace_id', u'playspace_ids', u'reason', u'resistance', u'session_token', u'timed_out', u'timestamp', u'updated_at', u'user_id', u'virtual_context', u'visability_mode', u'voltage'], dtype='object')" ] } ], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Whoa! That is [alot of columns](http://hyperboleandahalf.blogspot.com/2010/04/alot-is-better-than-you-at-everything.html). 33 columns, to be exact. We can check that by calling Python's function for determining the length of a collection:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "len(ms.columns)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 4, "text": [ "33" ] } ], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "But we should also check how many rows (in this case, how many distinct events) we have in our dataset. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "len(ms) # returns 8505" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 5, "text": [ "8505" ] } ], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "columns = ['key', 'timestamp']\n", "ms.head(n=5)[columns]" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
keytimestamp
0 ADAGEStartSession 1398178271860
1 ADAGEStartSession 1398190767768
2 ADAGEStartSession 1398191616469
3 ADAGEStartSession 1398192512628
4 ADAGEStartSession 1398192887546
\n", "

5 rows \u00d7 2 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 6, "text": [ " key timestamp\n", "0 ADAGEStartSession 1398178271860\n", "1 ADAGEStartSession 1398190767768\n", "2 ADAGEStartSession 1398191616469\n", "3 ADAGEStartSession 1398192512628\n", "4 ADAGEStartSession 1398192887546\n", "\n", "[5 rows x 2 columns]" ] } ], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [ "What's less-than-helpful right now is that those timestamps are just raw integers. We want to make sure those integers actually represent times when data could reasonably have been collected (and not, say, January of the year 47532, which actually happened once).\n", "\n", "Thankfully, pandas comes with a function that can convert UNIX Epoch Time integers into human-recognizable dates. In this case, what we'll do is create a new column called `human-readable-timestamps` by applying the pandas `Timestamp()` function to our existing integers. Then we'll check the data." ] }, { "cell_type": "code", "collapsed": false, "input": [ "ms['human-readable-timestamp'] = ms.timestamp.apply(lambda x: pd.Timestamp(x, unit='ms'))\n", "columns = ['key', 'timestamp', 'human-readable-timestamp']\n", "ms[columns].head()" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
keytimestamphuman-readable-timestamp
0 ADAGEStartSession 13981782718602014-04-22 14:51:11.860000
1 ADAGEStartSession 13981907677682014-04-22 18:19:27.768000
2 ADAGEStartSession 13981916164692014-04-22 18:33:36.469000
3 ADAGEStartSession 13981925126282014-04-22 18:48:32.628000
4 ADAGEStartSession 13981928875462014-04-22 18:54:47.546000
\n", "

5 rows \u00d7 3 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 7, "text": [ " key timestamp human-readable-timestamp\n", "0 ADAGEStartSession 1398178271860 2014-04-22 14:51:11.860000\n", "1 ADAGEStartSession 1398190767768 2014-04-22 18:19:27.768000\n", "2 ADAGEStartSession 1398191616469 2014-04-22 18:33:36.469000\n", "3 ADAGEStartSession 1398192512628 2014-04-22 18:48:32.628000\n", "4 ADAGEStartSession 1398192887546 2014-04-22 18:54:47.546000\n", "\n", "[5 rows x 3 columns]" ] } ], "prompt_number": 7 }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Visualizing Events Over Time\n", "\n", "So, it seems like we have way too many `MakeConnectComponent` events. Earlier, I explained that we're *averaging* more than one `MakeConnectComponent` event per second. But what if we wanted to think about whether that average really describes a typical time slice of our data? In other words, we might want to know how our `MakeConnectcomponent` events are distributed over time.\n", "\n", "One way to think about that distribution is to ask: *when do our `MakeConnectComponent` events occur over time?* Below, I'm going to use the `ggplot` package to look at the cumulative distribution of the connection events. The syntax may seem wonky and complicated at first, but it's actually an elegant implementation of [ggplot2](http://docs.ggplot2.org/0.9.3.1/index.html), itself an implementation of Leland Wilkinson's [Grammar of Graphics](http://www.amazon.com/Grammar-Graphics-Statistics-Computing-ebook/dp/B003XQF3TQ/ref=sr_1_1?ie=UTF8&qid=1401707640&sr=8-1&keywords=grammar+of+graphics). If at first you're stymied by it, don't worry. I'll try to help break it down for you.\n", "\n", "First, we're doing some basic manipulation to get a cumulative sum column. This is actually so dumb I'm almost embarrased. I create a column by applying a [lambda function](http://www.diveintopython.net/power_of_introspection/lambda_functions.html) to the `timestamp` column that *always* returns 1, then I just sum cumulatively over that column. Lastly, I apply another [lambda function](http://www.diveintopython.net/power_of_introspection/lambda_functions.html) to format our timestamp (currently an integer) into a nicer-formatted timestamp.\n", "\n", "I'll break these plotting lines down one major line at a time:\n", "\n", "1. I create a `ggplot` object, which is essentially the basic kind of object from whence all plots are constructed in ggplot. `aes()` just stands for *aes*thetic mapping, where I'm telling ggplot how to map data to graphical features. In this case, I'm saying \"map the values in the `timestamp1` column to the x position of this plot, and map the values of `cumulativeCount` to the y position. It may seem trivial now, but the power of aesthetic mappings like this is that I can also map quantities (or categories) to other graphical properties, for example mapping other columns in my dataframe to the aesthetic properties of color or shape. For now, we'll just stick with mapping quantities to cartesian x and y coordinates. When creating the `ggplot` object, I also tell it what dataframe I'm talking about, so the local names of `timestamp1` and `cumulativeCount` make sense in scope.\n", "2. What we see now is a common pattern in ggplot-style programming. I can literally *add* a layer to my plot using the plus operator. Here, I'm telling ggplot that I want it to apply my chosen aesthetic mappings using a line geometry, which means it will connect each discrete datapoint with a line. (An alternative geometry would have been a simple *point* geometry, `geom_point()`, which would give us a bivariate scatterplot instead of a lineplot.\n", "3. The remaining lines add special options to my plot using the same compositional syntax of the plus operator. Here, I'm using special functions `ggtitle()`, `xlab()`, and `ylab()` to set the text for the plot title and axis labels.\n", "4. Next I just use a simple `print()` call to make sure my plot shows up in my interactive session.\n", "5. Finally, I use a convenience function called `ggsave()` to save my plot directly to a file. `ggsave()` is smart and it detects the desired type of output file based on the suffix you pass in as a filename. In this case I'm using the .PNG format for images, but if I wanted an infinitely scalable image I could have used a .PDF extension. " ] }, { "cell_type": "code", "collapsed": true, "input": [ "# Manipulating the data to get a cumulative sum\n", "# and nicely formatted timestamps\n", "connectionEvents = ms[ms.key == 'MakeConnectComponent']\n", "connectionEvents['cumulativeCount'] = connectionEvents.timestamp.apply(lambda x: 1).cumsum()\n", "connectionEvents['timestamp1'] = connectionEvents.timestamp.apply(lambda x: pd.Timestamp(x, unit='ms')) \n", "\n", "# Creating the basic plot\n", "p = ggplot(aes(x='timestamp1',\n", " y='cumulativeCount'),\n", " data=connectionEvents)\n", "p = p + geom_line()\n", "p = p + ggtitle('Cumulative Distribution of MakeConnectComponent Events')\n", "p = p + xlab('Time')\n", "p = p + ylab('Event Count')\n", "\n", "# Showing the plot\n", "print(p)\n", "\n", "# Saving the plot\n", "ggsave(plot=p,\n", " filename='cumulativeDistributionOfMakeConnectComponent1.png')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nNpvNLF261BhjzNq1a43dbjePP/64WbdunVm8eLG5+OKLza233nranp0qxBpjzKhRo8yPf/zjU/Zg\nyJAh5pZbbjHr1683O3bsMIsXLzaff/65McaYjRs3GovFYhYvXmwKCwtNcXGxq0cRERFm0KBBZsGC\nBea7774z5eXlzYbYiIgI069fP/POO++Yt99+2/Tu3dvtdfD444+b9PR0t5pPDLG1tbXmT3/6k7FY\nLK7+Hj161Bhz7HVw4i8G77//vmnfvr2ZOnWqyc3NNffdd59xOBxur4GUlBTTqVMnc88995jc3Fzz\n3HPPGavVar744ovT9rh///5mwIABZtGiRebdd981/fr1M0OGDDHGGFNbW2sOHjxoLBaL+fOf/2wK\nCwtNdXV1s+Mc79EXX3xhYmJiXPvNnTvXXHTRRebTTz91C7GNjY3mscceM2vXrjXbt283L730komL\nizNvvfVWkzGNMWbPnj3mggsuMD/96U9dr8NFixaZiIgI84c//MFs3rzZLFy40PTq1cv85je/Mca0\n7Odz5syZJiYmxjz++ONmzZo1ZuLEicZqtZpvvvnGtY/FYjFJSUnmkUceMRs2bDAPPfSQsVgsZv/+\n/S16Hp577jnTpUsX8+KLL5otW7aYl19+2XTp0sW88cYbrn3uvfdeExcXZx588EGzefNmk5uba2bN\nmmWMORZUbDabeeGFF1yvHWOM+cUvfmGsVmuTEHWy4/e/9tprzeeff26effZZ07lzZ1dINebs3os6\nduxoxo4da1atWmWeeeYZExcXZ5566imf93rKlCmmV69eZt68eWbr1q3m+eefNxEREW6/jJ9pnMOH\nD5uePXuaadOmuXp54i8TJzpTiG1sbDTdunUzTz/9tNv2q666yvz85z83xhhTX19vBgwYYMaOHWuW\nLFli1q9fb+677z4TFRVlqqqqjDH/F2L79u1rXnzxRbN27Vozbtw4t/eTU72HPfTQQ2bQoEHm008/\nNbt37zYrV640b7/99ilrRuggxMLntmzZYiwWi5kzZ84Z9/U0xNrtdlNSUuLalpmZaWw2m9ssyg9/\n+EPzX//1Xy0a+0xvwMfH/fOf/+z6ftSoUa7ZwROdGGIbGhpMcnKy+d3vfue6/bnnnjNdu3Z1zT6N\nHj3a3HTTTW5jHA87J87+nOx0IXbKlCkmISHB9f2JPaiqqjLh4eHmgw8+aPa++/btc5tZPu7xxx83\n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\nvRUREaEvv/yy2bqtVqv69u0rq9Wqd95555TjREVFNXn9Tpw4UcYY/e1vf2v2PiUlJZKOPe8fffSR\n221Lly5VWlqa+vXr16LH05yvvvrK7TX98ccfa9CgQerSpYvPet2/f3/XzOTJPezZs6fH40iev895\natKkSXr77be1adMmbdy40e0vEZmZmTpw4ICKi4ub1N2lSxePj3G697Dw8HBNnDhRixcv1h//+Ef9\n6U9/ajLJgdBDiIVfzJw5UykpKUpPT9evfvUrrVy5Uv/+9781d+5cZWRkaOfOnZKkMWPGaPPmzZo5\nc6Zyc3N1zz336NChQz45RYo3Y2dlZemjjz7Sxx9/rE8++UQ/+9nP5HA43O4zYsQIrVmzRv/+979V\nXFx82jfCiRMn6s0339Sbb77pNgsrSc8884x27Nihn//851qyZIl27Nihjz76SLfddptqampOOaYx\nRuXl5Tp48KB2796tVatW6bHHHtOVV16pq666Svfcc4/bvsdr37Fjhx566CF9+eWX+v777/XRRx/p\ns88+05VXXinp2Oxe//79lZOTo3379nm81OBE4eHheuCBB/Tuu+/qnXfe0ZQpU5SVlaXo6GhXfx0O\nh6ZNm6b169fr6aef1rJly9zG+PGPf6ywsDDNnz9fhYWFrl94TjZhwgQtWbJEDzzwgNauXav7779f\n//znP/XTn/7U7fG3VGpqqvr3768bbrhBixYt0nvvvadf/OIXGjJkiNvskjdeffVVFRUVafjw4c3e\nnpWVpZ07d+r111/Xhg0bdP/992vLli1NHocxRmFhYXrnnXc0aNAgZWVl6fvvv5ckPffcc/rXv/6l\n2267TcuXL9e3336r999/X3feeafr/p7+fE6YMEFz5szR9OnTtXr1ak2aNEmbN29263FzTnzdHf/+\ndNq1a6ff/va3WrBgge6//359+eWX2rp1q95++209/PDDkqTzzjtPd9xxh5599lk99NBD2rRpk3Jz\nc/XCCy+4xhkxYoQ+/PBD7dq1S8XFxZKkkSNHasqUKXrwwQc1fPhwzZ07V999950+/PBDTZgwQTNm\nzJAkXX311SopKdG1116rzz//XM8995x++9vferV8oTkdOnTQddddp88//1x/+MMfNGfOHF199dWu\n233R6+7du+v+++/Xs88+q0ceeUTr16/Xpk2bNG/ePP3+97/3eBzpWC9Xrlypbdu2qbi4+LTPYUND\ngwoLC5ucZuvEGdIbbrhBR44c0S233KJ+/fqpb9++rtuuv/56DR48WLfeeqtmzpypb7/9VmvWrNHT\nTz+tJUuWnLbuE534HrZ3717Xe9i9996rpUuXaseOHfrqq6/07rvvauTIkbLZbB6PjeBEiIVfdOrU\nSVu2bNHUqVO1ZcsWXXvttRozZowWLlyo3/zmN/rBD34gSfrRj36kOXPmaOHChZowYYJiYmI0depU\nt1kBi8XSZJbAk23ejD1lyhRlZ2dr0qRJmjJlikaNGqVrr73WbZ/x48frsssu0zXXXKPExMQmM7Un\nuvHGG3XkyBEVFRXpxhtvdLtt4MCBys3NVWVlpe688071799fv/71rxUdHS273X7KMS0Wi373u9+p\na9eu6tu3r+6++25t3rxZb7/9tv7+97+fsieRkZHasWOHrr/+emVkZOipp57Srbfe6hZ6p0+frr17\n9+rCCy90naC/uV43t91isahr1676zW9+oxkzZuiOO+5Qenq627rgDh06aMmSJTp06JDGjh2rjRs3\natasWW7jxMXF6emnn9a8efOUnJysKVOmNHu8q6++WrNmzdKKFSt02WWX6dNPP9VLL72k0aNHu9V0\nprqb8/e//13nn3++7r77bt1777264IILmqzN88TJx3I4HE2WEZx4+8iRIzV9+nT9/ve/1zXXXKOa\nmho9/fTTp3zNhoWF6c0339SwYcNcATg7O1vLly/Xrl27dNNNN+niiy/WE0884RbAPf35vPfee/Xg\ngw/q7bff1uWXX65t27ZpyZIl6tWrV4setyfPw5QpU/Taa69p7dq1uuqqq/SjH/1Is2bNcptBnD17\nth5++GH985//1CWXXKLrrrtOu3fvdt3+61//WmFhYcrMzFTnzp1d22fNmqUPPvhADodDTzzxhDIz\nM/Xwww+rV69erj8rx8fH65NPPlFxcbHGjRunl156SZMmTdL06dNPWbOn2ywWi8aPH69LL71UkyZN\n0h//+EfddNNNbn/S9lWvn332WT355JNatmyZhg8frlGjRmnBggU6//zzWzTOr371K51//vkaPny4\nOnfurH379p3yfrt371ZSUpK6du3q+kpOTnZbS9yxY0ddddVV2rx5c5P14FarVStWrNAVV1yhOXPm\nqH///ho/frzWrVunHj16uB3rTI6/hx3/S9hxU6dOVb9+/XT77bfrwgsv1MyZM884FoKfxfhiyusM\n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\ntqiioqJNXehAOsNygu7du0s6doWH4/8tHQu1xcXFevDBB/1bHQAAAM7akSNHXBeQaitOG2IXLFgg\nSbriiiu0cOFC14xsWFiY+vXr1+SDVAAAAAg+paWlbe60YacNscOHD5d07DytbW0KGgAA4FxRXFys\nnj17BroMn/Lo7ATt2rXTihUr9PHHHys/P9+13WKx6I033vBbcQAAADh7Bw4ccF0gqq3wKMTOmDFD\n8+fP15gxY5SWluZaVmCxWPxaHAAAAM7evn371LVr10CX4VMehdh58+ZpxYoVritqAQAAIDQYY1RY\nWKjOnTsHuhSf8ugUW8nJySorK/N3LQAAAPCxnTt3KjIyUpGRkYEuxac8momdNGmSJk+erIkTJ6p/\n//5ut1122WV+KQwAAABnr7S0VOedd56sVo/mLkOGRyH2mWeekcVi0ezZs5vc9v333/u8KAAAAPhG\nQUGBunTpEugyfM6jELt7924/lwEAAAB/OHz4sBISEgJdhs+1aF750KFDeu+99yQdu3xZZWWlX4oC\nAACAb+zZs6fNnZlA8jDE7t27V0OHDlWfPn10yy23SJJWrVqlW2+91Z+1AQAA4CyVlpaeuzOxs2bN\n0rhx41RQUCC73S7p2NW8Pv/8c78WBwAAgLNTVVXVJq+86tGa2HfffVdbtmxRWFiY23YudgAAABDc\nysvLFR0dHegyfM6jmdgrr7xSK1eudNv28ccfa8KECX4pCgAAAL5RVFSkjh07BroMn/NoJvbuu+/W\n8OHDNWHCBNXW1uquu+5STk6Oli1b5u/6AAAAcBbKysraZIj1aCa2b9++2r59uwYPHqxx48apf//+\n+vbbb5tc+AAAAADBY8eOHTp48OC5uya2uLhY8fHxmjx5siZPnuzvmgAAAHAWjDGqq6vT3Xffrf/3\n//6fYmJiAl2Sz3k0E3veeefpyiuv1MKFCzk3LAAAQBCaNWuWkpOTlZaWpvPOO0/p6enauXNnm52A\n9CjE7tmzR1dddZVeeuklde7cWTfccIM++OAD1dfX+7s+AAAAeGDLli2aMWOGNm/erO+//1579uzR\nzp07m5xdqq3wKMQmJCTonnvu0ZdffqktW7aob9++euSRR9rkdXgBAABCUVFRkS644AKFh4fLZvNo\nxWhIa9FlZ6Vjl549dOiQiouLFRcX54+aAAAA0EIHDx5UYmJioMtoNR6F2K1bt+qxxx5TWlqafvKT\n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\nY49p5cqV2rNnj8nRjdi8ebM++OAD02MAAAAYY4kSG0xTU5PKysrkdrtVVlampqam4dsLCwuVkZGh\n/Px8STdOORVLlixZoo0bN5oeAwAAwBhLHE4gSa+//royMjJUVlam2bNnq7m5WVlZWZKkrKys4RLb\n2Nio7Ozs4XVTp05VU1OTsrKy1N3dPeI+r127puTk5LDN7HK5FBcXF7b7H0tDQ4NmzZo15mO73e4R\nH63EVGa3Y+XMJHILlRVzI7PQkFtorJwbmYWG3G55zIg90jgef/xxpaamqq2tTVu3bpXX61UgELij\n+6isrNShQ4dG3LZ06VI98MADkzmqcc3NzWpsbFRZWdltf4gzMzMjNFX0ILPQkNudI7PQkFtoyO3O\nkVloIpmbJUpsamqqJCk7O1vFxcWqqamR1+tVe3u78vLy1N7ePnxeVJ/Pp88++2x4bXt7u7xer7Ky\nslRcXDzifq9du6a2trawze3xeCJ+KMPTTz+twsJCXb58ecxt3G63MjMz1dnZqevXr0dwutszkdlE\nWDkzidxCZcXcyCw05BYaK+dGZqGxc263/iV9Uh5zUu8tBNeuXVMgEJDH45Hf71ddXZ2WLFmi3t5e\nVVVVKSsrS1VVVfL5fJIkr9erffv26fLly+rs7JTD4ZDH45HH41FaWtqI+25ubtbAwEDYZne73WG9\n/2B27Nihb37zmxN63OvXr0d8vtsxkdmdsGJmErmFysq5kVloyC00VsyNzEJDbv9jvMT6/X698cYb\nkqSkpCQtWbJE6enpWrBggbZv366XXnpJeXl5Wr58uSQpJSVFCxYs0Ouvvy6Xy6VVq1aZHD/i5s6d\nq0ceecT0GAAAAEYZL7GZmZlB32nv8Xi0du3aoGsWL16sxYsXh3s0Szp37pxmzpxpegwAAACjLHuK\nLYzW2dmpoaEhDjYHAAAxjxJrIzU1NcrPz5fD4TA9CgAAgFGUWBv517/+pblz55oeAwAAwDhKrE1c\nvXpVr7zyipYuXWp6FAAAAOMosTaxd+9e+Xw+rVixwvQoAAAAxhk/OwEm5vnnn9crr7zC8bAAAABi\nT6wt9PX1SRJ7YQEAAP6LEmsDFy9eVFZWFnthAQAA/osSawM1NTVKSUkxPQYAAIBlUGJtYMuWLaqp\nqTE9BgAAgGVQYm1g+vTp+tnPfmZ6DAAAAMugxNpAfX29CgsLTY8BAABgGZRYG+js7FRmZqbpMQAA\n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\nZctGfY3cbu/UqVMj9sKS2djC9ZyjObObKioq9Oyzz8rr9Wr//v2SyG08169fV29vr7797W9r9uzZ\n2r17tyRrZ0aJtaDMzEx97Wtf04YNGzRr1iwVFBSM2sbr9aq9vX3487a2tuHjZm/9Wnt7e9A36tzt\neisYHBzUX//6V5WWlmr27NnDt1dVVamurk6rV68Oui5Wsxtv7rtZG82ZScFnz8jI0OXLl/X73/9e\nv/nNb3TlyhVt3rxZ3d3dt10bC7mNN/fg4KCqq6uHf8G8k7XRnNlYIvGcoy2zW8XHx6usrGz4L5q3\nIreRfD6fSkpKFBcXp+LiYrW3t2tgYGDENlbLjBJrQX6/X9KNXfDHjh1TYWHhqG1uvfxuZ2en6urq\nhv+c7vV6VVVVpYGBAVVVVQUtKne73rRAIKCdO3cqJydHS5YsGb69trZWhw8f1tq1a4O+yUaK3ezG\nm/tu1kZzZlLw2UtKSvT888/rmWee0TPPPKO0tDR997vfVUpKym3XxkJu48392WefKTs7e8zLhMdq\nZmOJxHOOtswkDZ8FY3BwUB9//LHmzJkzahtyG8nn86m2tlaBQECNjY2aMmXKqNdRq2XG2QkM27Zt\nm9599111dXWpsrJSHo9HLS0t2rFjh06ePKmioiLdf//9km6U2m3btqm0tFTSjWNGdu3apZMnT2rh\nwoWaNWuWpBunEzl58qTeeecdxcfHq6KiQm63+67XW8n58+e1d+9eDQwMqLKyUsePH1d6err27Nmj\n69ev69NPP9Xx48d14cIFFRUVkd1/BZu7urpaf/rTn3Tp0iV9+umn+s9//qPS0lIyu8VYs9905MiR\n4bMTkNsNY839/vvvq7CwcMReFjK74ebrwZUrV1RZWamEhATdd999YXnO0ZKZFPx19Pjx43rvvff0\n0UcfKT09XYsXL+bf5y2C/ayVlJSopqZGb7/9ttrb21VeXq60tDRLZ8bFDgAAAGA7HE4AAAAA26HE\nAgAAwHYosQAAALAdSiwAAABshxILAAAA26HEAgAAwHYosQBgESUlJXrvvfdMjwEAtmCdM+8CQJRL\nSUmRw+GQdOPKfAkJCXK5XJKkP/zhDzp16pTJ8QDAVrjYAQAYMHPmTG3ZskXl5eWmRwEAW+JwAgCw\niPz8fB04cECStGnTJq1du1ZPPfWUcnJy9OUvf1ktLS16+eWXVVhYqPLych09enR4bW9vr7Zs2aKF\nCxfqS1/6kt58802xjwJANKPEAoBF3DzU4Kbt27dr4cKFqq6uVmZmpioqKnT27Fl9+OGHKi8v1w9/\n+MPhbV944QXt379ff/vb3/Tyyy/rxRdf1P79+yP9FAAgYiixAGBRs2fP1vr16zV16lR94xvfUG1t\nrX7yk59o6tSp+ta3vqXDhw+rv79fgUBAO3bs0C9/+Uvl5+dr7ty5evzxx/XWW2+ZfgoAEDa8sQsA\nLKq0tHT4/3Nzc+Xz+ZSRkTH8eX9/vy5duqSuri6dP39+xPZDQ0OaOXNmxGcGgEihxAKAzRUXF8vn\n8+nIkSPKy8szPQ4ARASHEwCAzTmdTq1Zs0Y/+MEPVF1draGhIdXV1XHOWQBRjRILABbkcDhGvdFr\nvM83bdqkBx54QBs3btSUKVP08MMP68KFCxGZFQBM4DyxAAAAsB32xAIAAMB2KLEAAACwHUosAAAA\nbIcSCwAAANuhxAIAAMB2KLEAAACwHUosAAAAbIcSCwAAANv5P6EZp+WLbbacAAAAAElFTkSuQmCC\n", "text": [ "" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n" ] }, { "output_type": "stream", "stream": "stderr", "text": [ "Saving 11.0 x 8.0 in image.\n" ] } ], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "This plot has a number of interesting features. Easily the most salient feature is the giant flat-line in the center. It looks like there were effectively no `MakeConnectComponent` events between between 2000 hrs on the first day and 1400 hrs on the second day. And that seems entirely reasonable: the game likely would have been shut off during the night, then fired up again for testing the next day. \n", "\n", "The challenge is that on either side of the flatline the curves are quite steep. That means there could be a fair amount of information hiding in the areas of the plot where there was activity, but it's up to us to extract out that long, boring middle portion where nothing is happening. How can we do that?\n", "\n", "Well, suppose what we wanted was to create two new plots, call them Day 1 and Day 2, that have just the interesting parts: the parts where the slope of the cumulative distribution is nonzero. (Note that when the slope is nonzero, that's when action is happening and we're registering events over time.) If we wanted two separate plots, all we have to is figure out when, exactly, that boring stretch of time starts and when, exactly, it ends. And, one way to do that would be if we could somehow generate the time that elapses between each successive event in our dataset. So let's do that.\n", "\n", "### Time Deltas\n", "\n", "We're going to compute the time difference between successive events, which I'm calling *time deltas*. It's worth taking a second to think about how the delta is defined:\n", "\n", "For the $i$th event, the $\\Delta$ value is given by the simple equation below, where $t_i$ is the timestamp of the $i$th event:\n", "\n", "$\\Delta = t_i - t_{i-1}$\n", "\n", "As a result, the very first event $(i = 0)$ in a series will have a diff value of `NaN` or `NaT` (Not a Time), because the -1st event is undefined. But the second event will have a diff value of (Time of Second event - Time of First event). The very last event will also have a value: (Time of Last event - Time of Penultimate event).\n", "\n", "The handy thing about pandas is that every data series (and a column counts as data series) has a `diff()` method, which does exactly what we want: it computes successive pairwise differences between events. If we apply the `.diff()` function to our timestamps, we'll have exactly what we want: a column of numbers where each number represents the time elapsed since the event that came before." ] }, { "cell_type": "code", "collapsed": false, "input": [ "connectionEvents['delta1'] = connectionEvents.timestamp1.diff()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 9 }, { "cell_type": "markdown", "metadata": {}, "source": [ "And, now that we have our column of deltas, how can we figure out where the big boring part starts? Well, the big boring part lasts a long time: multiple hours. So, what we're looking for is a huge time delta. Say a delta of more than five hours." ] }, { "cell_type": "code", "collapsed": false, "input": [ "connectionEvents[connectionEvents.delta1 > np.timedelta64(5, 'h')]['timestamp']" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 10, "text": [ "4443 1400077592798\n", "Name: timestamp, dtype: int64" ] } ], "prompt_number": 10 }, { "cell_type": "code", "collapsed": false, "input": [ "whenBoringPartEnds = 1400077592798 \n", "day1 = connectionEvents[connectionEvents.timestamp < whenBoringPartEnds]\n", "day2 = connectionEvents[connectionEvents.timestamp >= whenBoringPartEnds]\n", "\n", "# Creating the day1 plot\n", "p = ggplot(aes(x='timestamp1',\n", " y='cumulativeCount'),\n", " data=day1)\n", "p = p + geom_line()\n", "p = p + ggtitle('Cumulative Distribution of MakeConnectComponent Events\\nDay1')\n", "p = p + xlab('Time')\n", "p = p + ylab('Event Count')\n", "\n", "# Showing the plot\n", "print(p)\n", "\n", "# Saving the plot\n", "ggsave(plot=p,\n", " filename='cumulativeDistributionDay1.png')\n", "\n", "# Creating the day2 plot\n", "p = ggplot(aes(x='timestamp1',\n", " y='cumulativeCount'),\n", " data=day2)\n", "p = p + geom_line()\n", "p = p + ggtitle('Cumulative Distribution of MakeConnectComponent Events\\nDay2')\n", "p = p + xlab('Time')\n", "p = p + ylab('Event Count')\n", "\n", "# Showing the plot\n", "print(p)\n", "\n", "# Saving the plot\n", "ggsave(plot=p,\n", " filename='cumulativeDistributionDay2.png')\n" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nic0oETUZrVu3xjfffIOVK1eiZcuWUschIqo3kp3AdOHCBdjY2KB169Za01UqFRwdHTWPW7RoAZVK\nBVtbW1haWmqmOzo64ty5c+jVq1eDZSYikkr5dUmJiIyNJM2oWq3GiRMn8PLLL1eaV9dDWO/evat1\nTT4AsLKygo2NTZ3WR0RERET6J0kzmpOTg9zcXM1lTe7evYvVq1cjLCwMrq6uuHLlimbZrKwsuLi4\nwMzMTKvZzMzMhKurq+bxmTNnEBUVpbWdwMBA9O/fX8+vhoiIiIjqSpJmtFWrVpg7d67mcXh4OKZO\nnYpmzZrBxcUFBw8eRG5uLnJyciCTyTSXL3FwcMC5c+fg7u6OpKQkDB06VLMOPz8/eHl5aW1HrVYj\nMzOzygxmZmaaY1GNkVKphL29PXJyclBSUiJ1HL0x5jqyhsaBdTR8rKFxaCp1bMwqHoZZUYM0ozt2\n7EBqaioKCgrw1VdfoX///vD19a1yWSsrK/j7+2Pjxo1QKBQICQnRzBs8eDAiIyNx+PBheHt7w8XF\nRTPPxsam0lfyaWlpKC4urnI7SqWy2nnGpKSkxKhfZ1OoI2toHFhHw8caGgdjr6MhMuqL3qelpVU7\nz8LCAgUFBQ2YpmGZmJjA0dERmZmZRv1LZ8x1ZA2NA+to+FhD49BU6tiYOTs7Vzm9QS7tRERERERU\nFTajRERERCQZNqNEREREJBk2o0REREQkGTajRERERCQZNqNEREREJBk2o0REREQkGTajRERERCQZ\nNqNEREREJBk2o0REREQkGTajRERERCQZNqNEREREJBk2o0REREQkGTajRERERCQZNqNEREREJBk2\no0REREQkGTajRERERCQZNqNEREREJBk2o0REREQkGTajRERERCQZNqNEREREJBk2o0REREQkGTaj\nRERERCQZNqNEREREJBk2o0REREQkGTajRERERCQZNqNEREREJBk2o0REREQkGZkQQkgdQl+ys7Mh\nl1fdb8vlcpSVlTVwooYjk8lgamoKtVoNIy6xUdeRNTQOrKPhYw2NQ1OpY2Nmb29f5XRlA+doUEVF\nRdXOs7CwQEFBQQOmaVgmJiaws7NDfn4+iouLpY6jN8ZcR9bQOLCOho81NA5NpY6NWXXNKL+mJyIi\nIiLJsBklIiIiIsmwGSUiIiIiybAZJSIiIiLJsBklIiIiIsmwGSUiIiIiybAZJSIiIiLJsBklIiIi\n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\n8/8AJt8N9RZDDJYAAAAASUVORK5CYII=\n", "text": [ "" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n" ] }, { "output_type": "stream", "stream": "stderr", "text": [ "Saving 11.0 x 8.0 in image.\n" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nSy+95Dhz5oyjsrLS8ctf/tL5Pnv37nX86U9/cjQ3Nzu2b9/u2LdvX78/p7v1p0eHw+HYv3+/Y9Om\nTY4NGzY4l/3xj390HD161OFwOBx//vOfHa+//nqXz/WXHrvqcNeuXY79+/df87lf7KCmpsbhcLAu\ntnO1x+7W40BbFx2O/vXItvFz/enR4WDb6HB03eHFixcdr776qnPdat/mfRHbxs/1p0dv2jZyzGwX\nurr0riRlZWV1+beTqwUHB0u6csGGtrY250mD2/9W0draqubm5i5PJtzQ0CBJGjlypKKiojR69Gjn\nFc6Ki4uVmpoqm82m1NRUn7iMb396vHz5sgoKCjp9STA0NFT19fVqa2tTXV1dl6/vTz121+G1dNVB\n+2dlXTTmuYG2Lkr965Ft4+f60yPbxiu66vDUqVNKTU1VTEyMJHV50SS2jR31tcfuniuZsy4yzLro\n5MmTioyM1NChQzssr66u1oYNG5y329ra9NJLL+n555/XlClTdN111znvy87O1s9+9jOdPXtWX/3q\nVzs9v7i4WIMGDXI+/urL9ZaUlDjvGzRokE/8kHTF1R6zsrI0Z84cWSyWDo+bPXu2cnNz9dOf/lR5\neXnOoTjQenz//ff16quvat++fWpsbJTkegcS62K7a/XYE9bFz7nSI9vGa3OlR7aN3SssLFRpaanW\nrFmjbdu2qbS0VBLbxt5ypceemLEuMsy6oKmpSXv37tWMGTM63RcZGal77rnHedtqterBBx/UihUr\nlJeXpwsXLjjvmzVrlr73ve8pLi5O7777bpfP747DDw5tdrXH/Px8hYeHa9iwYZ0+97Zt2zR16lQ9\n9thjuvHGG7Vt27ZOz++JP/R44403auXKlfrud7+rS5cu6YMPPpDkegcS66LU/x5ZF69wtUe2jT1z\npUe2jT1raWlRfX29lixZovHjx+utt96SxLaxt/rboxnrIsOsCyorK1VVVaWXX35ZL774oqqrq7Vm\nzZoer24RHR2tsWPHdvgbn3Tln9pSU1N17ty5Ts+Ji4tTeXm58/bVl+u9+r7y8nJ9+ctfNuKjeZSr\nPZ47d075+fl68cUXtXnzZp05c0aZmZmSpLNnzyo1NVVBQUFKTU3VX/7yl07v4+89RkREyGKxKDQ0\nVFOmTNHJkyc7PaanDtoF8rooudZjT1gXr+htj2wbu+ZKj2wbexYfH6/k5GTZ7XYlJSWpvLxczc3N\nHR7DtvHaXOmxJ2asiwyzLhgyZIgeffRRrVy5UitXrlRkZKT+4R/+QRERER0eV1tbq/r6eklSXV2d\nCgsLNX78eElSRUWFpCvH4hw9elQTJkzo9D7tx5UUFRWpsrJShYWFziucxcXF6ciRI2pubtaRI0c6\n/fD5Ald7vPXWW/Uv//IvWrlypRYsWKDExETdcccdkqTExETnt03z8/M1evToTu/j7z1+9tlnkj5f\nl7r6xnNPHbAuXuFKjz1hXbzClR7ZNl6bKz2ybexZfHy8CgoK5HA4dP78eQ0cOFB2u73DY9g2Xpsr\nPfbEjHWR88x2YdOmTdq1a5eqq6t16NAhhYaGatiwYc77c3NzlZaWJrvdrurqam3atEkTJ07UpUuX\n9NprrykvL0+FhYW68cYblZCQIEl68803tWfPHn300Ue67rrrlJ6e3un50pXjQ7Zv364PP/xQU6ZM\n0ahRoyRdGQQ//PBDZWdnKzg4WLNmzery4HRv0tcer1ZVVaVz584pJSVF0pV+Dh06pJycHDU2Nmra\ntGkKDw/32x7bO7x8+bIOHTqkkJAQHT58WLt27dKHH36oyMhI3XTTTb1alwJ5XexLj92tx4G2Lkp9\n75FtY0f9WR/bsW3s/HOZnJysTz75RO+8847Ky8s1c+ZMRUZGsm3sQX969KZtI+eZBQAAgM/iMAMA\nAAD4LIZZAAAA+CyGWQAAAPgshlkAAAD4LIZZAAAA+CyGWQAAAPgshlkA8BLJycnas2eP2TEAwKd4\n99l8AcCPtF+yVLpyVazQ0FAFBQVJkl555RUdO3bMzHgA4JO4aAIAmCAxMVFr167VzJkzzY4CAD6N\nwwwAwEuMHDlSO3fulCQ99dRTWrhwoZYvX67Bgwdr2rRpunDhglatWqUxY8Zo5syZOnjwoPO59fX1\nWrt2raZMmaKbb75Zr7/+uthXASAQMMwCgJdoPwShXWZmpqZMmaITJ04oOjpas2bN0qlTp/T+++9r\n5syZevzxx52P/cEPfqB3331Xf/zjH7Vq1Sr9+7//u959911PfwQA8DiGWQDwUuPHj9e9996rmJgY\n3XXXXSooKNAPf/hDxcTE6L777tOBAwfU2Ngoh8OhLVu26LnnntPIkSM1adIk3X///dq6davZHwEA\n3I4vgAGAl5o4caLzz0OGDFF8fLyioqKctxsbG1VRUaHLly/r7NmzHR7f1tamxMREj2cGAE9jmAUA\nH5eUlKT4+Hjl5uZq2LBhZscBAI/iMAMA8HFWq1V/+7d/q+9///s6ceKE2traVFhYyDlrAQQEhlkA\n8EIWi6XTF8J6uv3UU08pIyNDDz74oAYOHKhvf/vbunjxokeyAoCZOM8sAAAAfBZ7ZgEAAOCzGGYB\nAADgsxhmAQAA4LMYZgEAAOCzGGYBAADgsxhmAQAA4LMYZgEAAOCzGGYBAADgsxhmAQAA4LP+D4hB\nvuKPTwetAAAAAElFTkSuQmCC\n", "text": [ "" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n" ] }, { "output_type": "stream", "stream": "stderr", "text": [ "Saving 11.0 x 8.0 in image.\n" ] } ], "prompt_number": 11 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Higher Order Deltas\n", "\n", "We can also compute second- and third-order deltas to explore the successive rates at which time deltas are changing: \n", "\n", "$\\Delta_2 = \\Delta_{1_{n}} - \\Delta_{1_{n-1}}$\n", "\n", "$\\Delta_3 = \\Delta_{2_{n}} - \\Delta_{2_{n-1}}$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Looking for zeroes\n", "\n", "For each subsequent event where the timestamp is the same, we get a zero delta. So, if four successive events all share the same timestamp, they culminate in a fourth event whose `delta3` is zero.\n", "\n", "Let's do a little inspection and find events whose third and fourth order deltas are zero. We'll use the pandas method `diff()`, which takes an array of data and computes the difference between contiguous pairwise elements.\n", "\n", "Our code below computes successive deltas (up to fourth-order), and assigns each array of deltas to its own column in the dataframe." ] }, { "cell_type": "code", "collapsed": false, "input": [ "ms['delta1'] = ms.timestamp.diff()\n", "ms['delta2'] = ms.delta1.diff()\n", "ms['delta3'] = ms.delta2.diff()\n", "ms['delta4'] = ms.delta3.diff()\n", "\n", "# A boolean expression to select events where deltas 1\u20133 are all zero\n", "thirdOrderZeroes = (ms.delta3 == 0) & (ms.delta2 == 0) & (ms.delta1 == 0) \n", "\n", "# The columns we'll want to view\n", "columns = ['key', 'timestamp', 'delta1', 'delta2', 'delta3', 'delta4']\n", "\n", "ms[thirdOrderZeroes][columns]" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
keytimestampdelta1delta2delta3delta4
2482 MakeDisconnectComponent 1400006485499 0 0 0-2102
2506 MakeDisconnectComponent 1400006510313 0 0 0-1886
2526 MakeDisconnectComponent 1400006521978 0 0 0-3534
2572 MakeDisconnectComponent 1400006562692 0 0 0-4151
2623 MakeDisconnectComponent 1400006622320 0 0 0 -1
2646 MakeDisconnectComponent 1400006634386 0 0 0 -685
2647 MakeDisconnectComponent 1400006634386 0 0 0 0
2672 MakeDisconnectComponent 1400006645003 0 0 0 -1
2958 MakeDisconnectComponent 1400006866421 0 0 0-2335
3018 MakeDisconnectComponent 1400006896668 0 0 0-2534
3200 MakeDisconnectComponent 1400006993361 0 0 0-1301
3351 MakeDisconnectComponent 1400007068806 0 0 0 -850
3480 MakeDisconnectComponent 1400007157316 0 0 0 -781
3512 MakeDisconnectComponent 1400007196213 0 0 0-1518
3570 MakeCaptureFish 1400007234810 0 0 0 -51
3667 MakeDisconnectComponent 1400007308155 0 0 0-3251
3785 MakeSnapshot 1400007410096 0 0 0-1783
4199 MakeDisconnectComponent 1400007951843 0 0 0 -768
7955 MakeCircuitCreated 1400083772689 0 0 0-1300
8022 MakeDisconnectComponent 1400083848640 0 0 0 -785
8088 MakeCaptureFish 1400083893390 0 0 0 -152
8123 MakeCaptureFish 1400083924105 0 0 0-1085
\n", "

22 rows \u00d7 6 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 12, "text": [ " key timestamp delta1 delta2 delta3 delta4\n", "2482 MakeDisconnectComponent 1400006485499 0 0 0 -2102\n", "2506 MakeDisconnectComponent 1400006510313 0 0 0 -1886\n", "2526 MakeDisconnectComponent 1400006521978 0 0 0 -3534\n", "2572 MakeDisconnectComponent 1400006562692 0 0 0 -4151\n", "2623 MakeDisconnectComponent 1400006622320 0 0 0 -1\n", "2646 MakeDisconnectComponent 1400006634386 0 0 0 -685\n", "2647 MakeDisconnectComponent 1400006634386 0 0 0 0\n", "2672 MakeDisconnectComponent 1400006645003 0 0 0 -1\n", "2958 MakeDisconnectComponent 1400006866421 0 0 0 -2335\n", "3018 MakeDisconnectComponent 1400006896668 0 0 0 -2534\n", "3200 MakeDisconnectComponent 1400006993361 0 0 0 -1301\n", "3351 MakeDisconnectComponent 1400007068806 0 0 0 -850\n", "3480 MakeDisconnectComponent 1400007157316 0 0 0 -781\n", "3512 MakeDisconnectComponent 1400007196213 0 0 0 -1518\n", "3570 MakeCaptureFish 1400007234810 0 0 0 -51\n", "3667 MakeDisconnectComponent 1400007308155 0 0 0 -3251\n", "3785 MakeSnapshot 1400007410096 0 0 0 -1783\n", "4199 MakeDisconnectComponent 1400007951843 0 0 0 -768\n", "7955 MakeCircuitCreated 1400083772689 0 0 0 -1300\n", "8022 MakeDisconnectComponent 1400083848640 0 0 0 -785\n", "8088 MakeCaptureFish 1400083893390 0 0 0 -152\n", "8123 MakeCaptureFish 1400083924105 0 0 0 -1085\n", "\n", "[22 rows x 6 columns]" ] } ], "prompt_number": 12 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Inspecting chains of subsequent events\n", "\n", "Event 2482 had a `delta3` of zero. Let's look in its neighborhood (namely the 15 events that bracket it) and see what the timestamps of the preceding/subsequent events were." ] }, { "cell_type": "code", "collapsed": false, "input": [ "ms[2470:2485][columns]" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
keytimestampdelta1delta2delta3delta4
2470 MakeConnectComponent 1400006472299 0 -401 -307 -490
2471 MakeConnectComponent 1400006472730 431 431 832 1139
2472 MakeCircuitCreated 1400006472730 0 -431 -862-1694
2473 MakeConnectComponent 1400006472730 0 0 431 1293
2474 MakeSnapshot 1400006473382 652 652 652 221
2475 MakeSpawnFish 1400006473483 101 -551-1203-1855
2476 MakeSpawnFish 1400006473484 1 -100 451 1654
2477 MakeSnapshot 1400006478397 4913 4912 5012 4561
2478 MakeSnapshot 1400006483397 5000 87-4825-9837
2479 MakeCaptureFish 1400006485499 2102-2898-2985 1840
2480 MakeDisconnectComponent 1400006485499 0-2102 796 3781
2481 MakeDisconnectComponent 1400006485499 0 0 2102 1306
2482 MakeDisconnectComponent 1400006485499 0 0 0-2102
2483 MakeDisconnectComponent 1400006485514 15 15 15 15
2484 MakeDisconnectComponent 1400006485514 0 -15 -30 -45
\n", "

15 rows \u00d7 6 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 13, "text": [ " key timestamp delta1 delta2 delta3 delta4\n", "2470 MakeConnectComponent 1400006472299 0 -401 -307 -490\n", "2471 MakeConnectComponent 1400006472730 431 431 832 1139\n", "2472 MakeCircuitCreated 1400006472730 0 -431 -862 -1694\n", "2473 MakeConnectComponent 1400006472730 0 0 431 1293\n", "2474 MakeSnapshot 1400006473382 652 652 652 221\n", "2475 MakeSpawnFish 1400006473483 101 -551 -1203 -1855\n", "2476 MakeSpawnFish 1400006473484 1 -100 451 1654\n", "2477 MakeSnapshot 1400006478397 4913 4912 5012 4561\n", "2478 MakeSnapshot 1400006483397 5000 87 -4825 -9837\n", "2479 MakeCaptureFish 1400006485499 2102 -2898 -2985 1840\n", "2480 MakeDisconnectComponent 1400006485499 0 -2102 796 3781\n", "2481 MakeDisconnectComponent 1400006485499 0 0 2102 1306\n", "2482 MakeDisconnectComponent 1400006485499 0 0 0 -2102\n", "2483 MakeDisconnectComponent 1400006485514 15 15 15 15\n", "2484 MakeDisconnectComponent 1400006485514 0 -15 -30 -45\n", "\n", "[15 rows x 6 columns]" ] } ], "prompt_number": 13 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## `FishCapture` events are followed by `DisconnectComponent` events that *almost* all share the same timestamp\n", "\n", "It looks like event 2482 is part of a sequence: a fish was captured at 2479, and (because when a fish gets captured it blows out a circuit) a number of components got disconnected in events 2480-2484. \n", "\n", "*Note that not all the disconnect events share the same timestamp.*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Viewing a histogram of time deltas" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "I mentioned in the last section that there's a huge problem with our data. Let's take a look again at the counts of different types of events, but this time we'll focus on the top five most frequent events:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "topFiveMostFrequentEvents = ms.groupby('key').count().sort(columns=['timestamp'], ascending=False)[:5]\n", "topFiveMostFrequentEvents['timestamp']" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 14, "text": [ "key\n", "MakeConnectComponent 2609\n", "MakeSnapshot 2086\n", "MakeDisconnectComponent 943\n", "MakeAddComponent 891\n", "MakeRemoveComponent 840\n", "Name: timestamp, dtype: int64" ] } ], "prompt_number": 14 }, { "cell_type": "markdown", "metadata": {}, "source": [ "In our implementation of events, `MakeConnectComponent` should be triggered once the system detects that two circuit elements have become connected (say, when a player bumps a resistor and a battery together). `MakeDisconnectComponent` should be triggered once the system detects that two connected elements have become disconnected (say, when a player swipes a finger across a wire to cut it.)\n", "\n", "That leads to Problem 1\n", "\n", "### Problem 1 - There are more connect events than there are disconnect events\n", "\n", "And not just more, *way* more. Almost three times more. If you think about it, this doesn't make sense at all. \n", "\n", "In our game, each block has a lone positive terminal and a lone negative terminal. And, each terminal only accepts a maximum of one connection for simplicity. When players add blocks to the table, the blocks don't start as being not connected to anything. The first `MakeConnectComponent` event *should* happen when two free terminals from two different blocks get bumped together. And, if two terminals are connected, they can't get connected to other things without getting disconnected first. So, we should expect at least something close to parity: there should be about as many disconnect events as there are connect events. Otherwise, how can a bunch of connected terminals keep connecting to other things? (Again, remember that each terminal should accept a maximum of one connection.)\n", "\n", "So, that's pretty weird. And also possibly very bad. But, it gets even worse when you consider Problem 2.\n", "\n", "### Problem 2 - There are more connect events than there are snapshot events\n", "\n", "In our game, we built an event that takes a snapshot of the entire state of the board at regular intervals. We did that because we knew not all actions in the game should generate events. For example, if we recorded every single time any block changed its position, that would be *way* too much data. On the other hand, we need to know when players move blocks even if those movements don't generate big game events (like completing a circuit). So, we compromised. Every second, the game stores a snapshot of information about the state of the board, and that event is called `MakeSnapshot`.\n", "\n", "If you look at the table above (or the bar chart in our previous section), you'll notice that `MakeSnapshot` comes in second in our Top 5 Most Frequent Events. And, it's not a small margin, either. `MakeConnectComponent` is beating it by 25%. That is a Very Weird Thing.\n", "\n", "If we assume that the snapshots are reliably firing every second, that means that *On average, the system is registering block-to-block connections more than once per second.* If all that data were user-generated, that means that over a period of about 44 total minutes of gameplay, kids were connecting blocks at a rate of *more than one block per second, every second* for the entirety of the 44 minutes. \n", "\n", "To put that in perspective one more way: \n", "\n", "- if you played [The Lion Sleeps Tonight](https://www.youtube.com/watch?v=cU-eAzNp5Hw) by The Tokens \n", "- on repeat, \n", "- 20 consecutive times, \n", "- and you snapped your fingers to the beat (60bpm) the entire time\n", "- each snap would represent two circuit elements being connected\n", "\n", "Rather than assuming children are connecting circuit elements at a ludicrously high rate (Problem 2), which also would seem physically impossible (Problem 1), it seems more likely that there's a problem with the game's data logging that's revealed by our data. So, let's go to the next section and explore a method for checking it out." ] }, { "cell_type": "code", "collapsed": false, "input": [ "topFive = loadDataSortedByTimestamp(filepath)\n", "topFiveMostFrequentEvents = list(ms.groupby('key').count().sort(columns=['timestamp']).index)[-5:]\n", "frequencyFilter = topFive.key.apply(lambda x: x in topFiveMostFrequentEvents)\n", "topFive = topFive[frequencyFilter]\n", "topFive['delta1'] = topFive.timestamp.diff()\n", "binBreaks = [-1, 1, 50, 100, 200, 300, 500, 1000]\n", "# binBreaks = [1000, 2000, 3000, 4000, 5000]\n", "\n", "p = ggplot(aes(x='delta1',\n", " fill='key'),\n", " data=topFive) + \\\n", " geom_histogram(breaks=binBreaks) + \\\n", " scale_x_continuous(breaks=binBreaks) + \\\n", " ggtitle('Distribution of Time Deltas Between Successive Events') + \\\n", " ylab('Number of Events') + \\\n", " xlab('Time Between Events (ms)')\n", "# print(p)\n", "# ggsave(p, \"histogram.png\")\n", "# topFive.head(n = 20)[['timestamp', 'delta1', 'key']]\n", "print(p)\n" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAwIAAAIACAYAAAAxA9sHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XdUFNfbB/Dv7C4oVXpdpAiClSaK0rESW8SGIFiJMcZY\nEtAQA2hULMSSRGPyiwWxYAPFGIwiIGIFxY4JaBRFUFFQmoDsff/wMC9LsSCKyvM5hxPn3jtzn7nM\nknlm7sxyjDEGQgghhBBCSIsiaO4ACCGEEEIIIe8eJQKEEEIIIYS0QJQIEEIIIYQQ0gJRIkAIIYQQ\nQkgLRIkAIYQQQgghLRAlAoQQQgghhLRAlAgQQgghhBDSAlEi8BEIDQ2FmZnZW9l2UlISBAIB7t69\nW+9yU9u0aRNkZGTeyrYb4/79+/jss8+gq6sLoVDY6O0YGxtj8eLFTRhZ83nffkfk4/cxfX7I2+Hq\n6gqBQIDVq1cDAEpKSuDs7AyBQABnZ2eUlJQ0c4SEvJ8oEXhPjR8/HgKBAAKBAHJycjAzM4O7uzt+\n/vlnlJeXS7UNCAjA6dOnX3nbpqammD9//iu1dXBwQF5eHnR1dV8r/pe5c+cOBAIBkpOTpcq9vLze\nWpLRGNu2bUNCQgIOHjyI3NzcOvU1f08N/SQnJyMtLQ0zZ85shj14fuJeHYtIJIKBgQEcHBwQGBiI\ne/fuvfH2t2zZAoHg3fwpqT3eJiYmmDhxIo4dO/ba2xKJRNi8efNbiPLdyczMRHBwMHr27Al5eXmI\nxWIMHjwY58+fb+7QmlRaWhpmzZr11vupPpms/dO1a9e33ndt7/Jz9THhOA4lJSX45JNPkJKSgl69\neiEuLg4KCgrNHRoh7yX6K/Mec3Z2Rl5eHq5fv46tW7di5MiRCA8PR/v27XH//n2+nYKCAtTU1F55\nuxzHvVK7yspKyMjIQEtL65XXeV21v9i6devW0NTUfCt9Ncbff/8NZ2dnWFpaQktLq079Tz/9hLy8\nPOTl5SE3NxdGRkb45ptv+LK8vDz07NkT6urqkJeXb4Y9eE4oFCIvLw85OTk4cOAAZs2ahZSUFJiY\nmCAhIaHZ4mqM6s9FXl4eNm/ejLKyMowdOxaVlZWvtR2O4+ocfx+acePG4cyZMwgKCsLVq1exc+dO\n2Nra4tGjR80dWpNSV1eHnJzcW++H4zj4+PhIfX7z8vJw9OjRt943aRolJSUYNGgQjh07Bnt7exw8\neJBPAp48eYJNmzahf//+aNu2LQIDA3Ht2jUAzy/6CAQC9O/fn9/Wjh076pQR8tFh5L00btw41qdP\nnzrljx49Ytra2uzTTz/ly0JCQpipqSm//ODBAzZz5kzWpUsXJicnx0xMTNjy5csZY4y5uLgwjuP4\nH4FAwG7dusUSExMZx3EsJSWFDRgwgKmqqrI1a9bw5Tk5OYwxxi8fPXqU9e7dm6moqDA7Ozt28uRJ\nvv/a61QTCoUsIiKCMcakYuA4jhkbGzPGGNu4cSMTiURS6yUnJzMHBwfWpk0b1q5dOxYQEMCePn1a\nZ6y2b9/OLC0tmZGREVu4cCErKCh44RiXlpayWbNmMWNjY9amTRvm5OQktR+1Y5wwYcILt8cYY6am\npmz+/Pl1yg0NDdnChQullhcsWMACAgJY27ZtWadOndi2bdtYVVUVmzNnDjMxMWFOTk7sr7/+ktpO\nWVkZ+/bbb5m5uTnT0tJiX375JTt79uwLY6pvTKv17duXGRgYsKKiIr7s2rVrbPDgwUxbW5tZWlqy\nVatWsfz8/Hq3V/27rm+cDh06xFxcXJiamhozMTFh8+bNY//++69U/7t372ZDhgxhqqqqTE1NjTk7\nO7M7d+40uC/jxo1jffv2lSq7efMm4ziOJSQk8GVVVVUsPDycde7cmampqbHx48ezpKQkvt7Q0LDO\n54AxxgwMDNj//vc/vp2fnx/jOI5lZmZKrbt27Vp++cCBA6xnz55MRUWF9e/fn0VFRbHy8nKpGCMi\nIpi1tTVTUVFhI0aMYH/++SerqqqS2uYPP/zAgoKCmJGREevWrRvbuHEjk0gkDY5FSkoK4ziO3bp1\nq8E2jD0/jrdu3SpV1rt3bzZ+/Hip8VqxYgXr0qULk5eXZ/r6+mz69Ol8fVlZGfvuu++YhYUFk5OT\nY0ZGRmzx4sV8fWFhIZs6dSozMTFhYrGYzZ07l/3zzz9SfS5evJg5OTkxeXl5pqury7y8vPi669ev\nsylTpjAzMzOmoKDAOnTowCIjI6XGp/rzExQUxNq3b19nPz///HNmb2/PL7/sOK6Pq6sr8/f3b7C+\nqfqu/pudkJDAunfvznR1ddmcOXPq/J2t73N17tw5Nm7cOGZgYMCUlJSYpaUl+/vvv1+4Xy1B9f/b\n5OXlGcdxrEePHuzJkydSbcaPH884jmNOTk7Mx8eHKSgoMFVVVVZeXs6ePn3K1NTUmIyMDMvNzWWM\n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\n7rpLn376qVmzYMECdenSRQ0bNtTkyZOVlZUl6X97ZL788kvVqVNH1atX16xZs7R9+3a1bt1a1atX\n1/vvv2/OM3XqVLVu3VqvvvqqwsLC1KtXL23fvt28//fff9c//vEP1apVSz179tSqVavM+0aNGqXe\nvXvr8ccfV5UqVfTAAw+4LJuWlqb33ntP9evX1913362lS5e6tWz//v114MABdevWTf7+/ho3btxV\nXxfedEsHAQAAAG/p27evPv/8czmdTv3yyy/KyMhQ8+bNXWqioqKUmJioQ4cOqUmTJurTp88V8zid\nTg0dOlTbtm3TsmXL5O/vr1dffVXLly/X7NmzNXHiRL3xxhtavnz5FcuePn1aEydOVEhIiGrXri1J\nmjRpkv7zn/9owoQJ+uqrr/Tpp5+6BJbjx4/rl19+0caNG9WnTx/17dtX77//vj7//HNNmjRJDz/8\nsM6fPy/pYrgZO3as/vWvf2nixIkaN26c+Wa9T58+mjVrljnvkiVLVKlSJd1xxx3Kzc1Vq1atVK9e\nPW3btk1t2rRR165dJUlHjhzR3r179X//939X3bYrVqzQX/7yF7344ouaO3euvvzyS7399tsuNfPm\nzVNCQoJGjhypoUOH6vnnn9fEiRP19ddfa8SIETp48KBZu2HDBp07d04//fSTGjdurM6dO5v3Pf30\n09q8ebNWrFihPn36qEePHtq/f795/9y5cxUTE6Pt27erfPnyeuutt8z7Bg8erF9//VUJCQl65ZVX\nNGjQIO3Zs+e6y86YMUNVq1bVokWLlJ6erueee+6q28KbCAIAAAA3ISIiQtHR0Vq2bJmmT5+u+Pj4\nK2p69uypKlWqqHTp0nrqqadkGIY2bdpk3n/+/Hk9+OCDOnXqlBYuXKhSpUrJ6XRq3rx5evvttxUZ\nGamYmBgNHjxY8+fPN5dbt26dAgMDFRwcrPfee0+JiYnmIVizZ8/W3/72N9WvX181a9bUk08+6bKs\nw+HQyJEjFRQUpEGDBunYsWMaOHCgatasqQ4dOigsLEw//PCDJGn+/PkaPny4mjRposaNG2v48OGa\nN2+eJKl3795asGCBzp07J+nioVG9e/eWJCUkJCgmJkYDBw6Uv7+/4uPjFRwcrKSkJPMNeqtWra66\nbefPn6++ffuqc+fOqlWrll566SVzvXmee+45hYWFqV+/fnI6neratatiYmLUqFEjNW/e3OW8CZvN\npr///e8KCQnRiy++KEnavHmzcnNztXjxYv3tb39TRESEevToobvvvttlXdHR0Ro6dKgCAwM1ePBg\nM5Clp6dr3bp1GjNmjCpXrqw2bdro/vvvd2vZooIgAAAAcBMMw1B8fLw++eQTff755+rfv/8Vx3wv\nWLBAPXr0UFhYmCpWrKgjR45oy5Yt5v179uzRwoULNWLECPn5XTx1c8eOHTpw4IAaNWqkwMBABQYG\nauTIkfr+++/N5Vq0aKG0tDQdOHBA7dq10yuvvCJJyszM1A8//KB77rnHXHbgwIHmG3tJCg0NVVBQ\nkCSpcuXKkqSYmBjz/sqVKyslJUWS9MMPPyguLs68Ly4uzjy8KSoqSnXr1tWCBQuUlZWlhQsXmns8\nli9frjVr1pg9BAYGas+ePVq9erWqVq1qzn01+a1369atSk9PN8fyevbz81PFihWveAyHDx82b9eq\nVUulSpUyb8fGxmrt2rXavn27srOzzb0plz/Gy7dNlSpVdOzYMTkcDiUmJurEiRMKCwszH+PHH3+s\nxMTE6y5bVNzSJwsDAIBb3/7D6UpLv/mTLgP9DUWG+d/Usj169NDjjz+uJk2aKCIiwjxOX7r4pnzo\n0KH64IMPNHXqVPn7+6t69eouYaFu3boaPny47r77biUkJKh27dqKjo5WRESE1q1bp9DQ0GuuPzQ0\nVB9//LF5sm2bNm3UvHlzvf/++2rWrNlNPaZL3Xnnndq4caP5pnzjxo1q27ateX/v3r01a9Ys5ebm\nql69eqpRo4YkqWPHjtqyZYu++eabfOeNiorSggULdM8991xzvX/+85/N9TZs2FD+/v46efLkDT+O\n3bt36+zZsypdurQkKTk5WW+88Ybq1KmjkiVLaufOnYqOjs73MV5Ny5YtFRISov3796tEiRJX3H+9\nk+HtdjsnCwMAABREWrpTn60KuOl/BQkRZcuW1YoVK/TRRx9dcV96eroyMjIUGhoqh8Oh0aNHu3xK\nnefBBx/UW2+9pc6dO2vfvn2y2Wzq1auXXnzxRW3fvl0Oh0N79+7V6tWr8+2hUqVKGjp0qHn8ef/+\n/TVixAht3rxZDodDKSkpLiex3oj77rtPkydP1qZNm5ScnKzJkyere/fuLr0vWbJEkydPVt++fc3x\nzp07a+vWrZo+fbrS0tJ07tw5rVy50tzTMGHCBH3++ef6y1/+oi1btujs2bP67rvv1L9/f3O9s2bN\nUkJCgvbs2aOxY8fqT3/60w31fumb7LzDoU6cOKGxY8dKkho3biw/Pz/dc889GjlypFJSUjR//nx9\n++23Lo/xaipUqKDWrVvrlVde0W+//abc3Fxt27ZNGzduvGL9+YmLi3M5TMwXCAIAAAA36NJPexs3\nbuzy3QF591WpUkWjR49W//79FRMTo5ycHLVu3dqlLq82Pj5eI0aMUMeOHXXgwAGNGjVKHTp00LBh\nw1SxYkXdf//9Onr06BXL5Xnqqae0YsUKbdmyRUOHDtVDDz2kESNGqGLFiurSpYvLpUUvX/Zan1z3\n69dPTz/9tB577DENGzZMTz31lMsb/ipVqqhVq1Zau3atevXqZY7b7XatXLlSO3fuVFxcnKpWrap3\n3nnHPCyma9euWrZsmXbt2qW77rpLt99+u958803z0KL27dvr3Xff1VtvvaXu3bvrvvvu0/PPP+9W\nz/nVNG/eXLfddptiYmKUlJTkEozGjx+vmJgYtWvXTtOnT9ecOXMUGRl51W196e3JkyerWrVq6tmz\np0JCQvTwww/rzJkzbi376KOPatGiRapYsaLGjx9/3cfjDYbT1/skvCgtLU02m+2KY7EuH6Mm/xrD\nMMxLdZUpU8Yl2d7supxOp0qUKKGcnBw5nU6P9GwYhux2u3Jzc80ePbV9CvJYC6tHT9Tk158v+ymu\nNXa7XX5+fubr29f9UENNUa8xDEMVKlRQQSXvPKPPVgXc9PJ9251RbPTNL4+iberUqZoyZco1L91q\nVewRAAAAACyIk4UBAECxFuhvqG+7MwVaHreu/A7RwUUEAQAAUKxFhvkr0tdNoMgaMGCABgwY4Os2\niiQODQIAAAAsiCAAAAAAWBBBAAAAALAgggAAAABgQQQBAAAAwIIIAgAAAIAFEQQAAAAACyIIAAAA\nABZEEAAAAAAsiCAAAAAAWBBBAAAAALAgggAAAABgQQQBAAAAwIIIAgAAAIAFEQQAAAAACyIIAAAA\nABZEEAAAAAAsiCAAAAAAWBBBAAAAALAgggAAAABgQQQBAAAAwIIIAgAAAIAFEQQAAAAACyIIAAAA\nABbkVhD4+eefdfToUUlSVlaWJk6cqOnTp8vhcHi1OQAAAADe4VYQ6N27t06fPi1JGjNmjGbMmKEP\nPvhAzz33nFebAwAAAOAdbgWB3377TdHR0XI4HPrwww/1xRdfaO7cuVqyZIm3+wMAALglTZ06VW3a\n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\n/vrrSk1NNWttNps+++wz3XHHHYqKitK7774rSdq+fbuGDRumtWvXmnta8ua6++67VbFiRUVEROid\nd97Jt6+ff/5ZDodD1apVM8fat2+v0aNHq0uXLgoJCdGAAQN0/vx5PfroowoLC9OgQYN05MgRs37M\nmDG64447VL58eTVq1Mjl+WzRokWR34sDAChcBAGgCDEMw+X23Llz1axZM23fvl2BgYHq1KmT9uzZ\no/Xr16tjx456+eWXzdq//vWvWr58uWbPnq2JEyfqjTfecOtwn3Pnzumjjz5S2bJlVa9ePUnSyZMn\n1b59e919993atm2bgoOD1bt3b0nSjBkzVLVqVS1atEjp6el6/vnn1a5dO61cuVKStGrVKtWoUcM8\n12HVqlXm4U7XmleSBg8erF9//VUJCQl65ZVXNGjQIO3Zs8dle8TExGj79u0qX7683nrrrWs+tvyC\nUFhYmFq2bKmvvvrKHJs5c6buv/9+2e12bdmyRb1799agQYO0efNmnTx5Uk8++aTLHB9//LE+//xz\nzZ49WyNHjtTevXtVt25dTZ48WS1btlR6erp+//13SdLTTz+tRx55xAxaV9sDtGPHDtWsWfOK8f/8\n5z969dVXtX79eq1Zs0axsbFq1aqVtm7dqt9//10fffSRpItBYurUqfrvf/+r06dPa86cOS4BLCoq\nSr/88ss1txcAwFoIAkARVqdOHQ0cOFBBQUF64IEHtHv3bo0cOVJBQUEaNGiQfvjhB2VnZ8vpdGre\nvHl6++23FRkZqZiYGA0ePFjz58+/6tyzZ89WYGCgKlasqMcff1wff/yx7Ha7pItvuHv27Kn77rtP\nAQEBeuGFF7Rnzx4dP34837natm2rxMREOZ1OrVmzRi+88IK+//57SReDQLt27a47b3p6utatW6cx\nY8aocuXKatOmje6//37NmzfPXE90dLSGDh2qwMBADR48+LpBp3HjxgoMDDT/LVu2TJLUp08fzZo1\nS9LFsPDFF1+oT58+kqQvvvhCw4YNU+fOnRUYGKiRI0dq6dKl5t4C6eIx93Xq1FHjxo3VqlUrc978\ngofD4dDevXt15swZlS9fXrGxsfn2evDgQYWFhbmMGYah++67T+3atVONGjXUuXNnlSxZUvHx8QoK\nClKvXr303XffSZJyc3N17tw57d69Ww6HQ9HR0apSpYo5V3h4uH777bdrbi8AgLUQBIAirFGjRub/\nV65cWREREapQoYJ5Ozs7WydPntSOHTt04MABNWrUyHzTO3LkSPPNeH569eqltLQ0ZWbTD4SUAAAE\ngUlEQVRm6ocfftCwYcM0d+5cSdLy5cv12WefmXMFBwcrMzPzqlc0qlmzpsqWLasff/xRa9as0b33\n3quwsDDt2rVLq1evNoPAteZNTEzUiRMnFBYWZt7/8ccfKzEx0VxPTEyM+f9VqlTRsWPH5HA4rvoY\nk5OTlZaWZv7r0qWLJKlHjx5au3atjh49qtWrV8tms6l169Zmj6NHjzZ7iIqKUlbW/2vv3kGSe+M4\ngH/tBg2FHVCxpBt0UyzBqKGL6RANESGZUNFSSOVUi9EQ79LQ1mBUW0oNFl2Ggmpp7WKRIDVUkFAR\nLZV0oST6D/Ee8lX7x5/g/76v38+kx3N+z3OODuf3+Hue84j9/X0xrk6nE18rlUpcXFzE7IPb7YbP\n50N+fj4sFgt8Pl/U/XJzc3F5eRmx/eM5KxSKsN+EXC4X2y4tLcXIyAgGBweRlZWF4eFhPD4+ivue\nn5+HlR0RERFxsjDRX6CoqAgqlQpbW1tQKpX/uv/Hyb4SiQTl5eVoaGjA0tISzGYzTCYTBEHAxMRE\n1OMTExMjRr8NBgPm5+cRCoWQmZkJg8GA6elp3NzciDfOn8W9vb2FTCbD2dkZUlJSovb5u2RkZKC+\nvh4ejweHh4dh5UkmkwlmsxkOh+PL8X72Ldp10Wg0cLvdeH5+xujoKLq7u7G7uxsRo7i4GKenp//x\njN61t7ejvb0dgUAAVqsVCoUCdrsdAHByciKWfhEREQH8R4Dor5CQkACr1QqHw4GjoyOxHCXWCP7H\nm9W3tzccHBxgbW0NjY2NAIDW1lYsLi5ieXkZDw8PeHh4wOrqqrjqkV6vx97eXlhMg8EAp9Mpzgeo\nq6uD0+lETU2NeKNstVpjxpVKpaiursbQ0BACgQBeX1/h9/vh9Xoj+vxVnx3T1tYGl8uFhYUFsSwI\neJ8MPTU1hY2NDby8vIj19p+18bMdvV6P4+Nj8TqFQiHMzs7i7u4OAMTlYqMpKSlBYmJiRPnOr99V\nLF6vF9vb2wiFQkhNTUVSUlJYWzs7O//LClVERPT7YiJA9JuSSCQRo+Cfvf/x4weMRiN6e3shCAIs\nFguurq5ixvZ4PEhLS0N6ejr6+vrQ1dUFi8UC4H3EfH19HZubmygsLERBQQHcbrd4fE9PD1ZWViAI\ngrhaUG1tLe7v78VEoKqqCk9PT2HPRZBKpZ/GnZycRE5ODlpaWiCTyWCz2RAMBr98PX5VVlYW9hyB\ngYEB8bOmpiacnJxAqVRCq9WK29VqNVwuF+bm5qBSqaDVarG+vh6zzY/9UqvVaG5uhkajgVwuBwDM\nzMwgLy8P2dnZ2N7extjYWNS+Jicno7+/H+Pj4zHP8bNrEAwGYbPZIAgCjEYjKioq0NHRAQA4PDzE\n9fU1lw4lIqIwkrc/YTFwIqI4cH9/D51OB7/f/60PFbPb7aisrERnZ+e3xSQioj8fEwEiIiIiojjE\n0iAiIiIiojjERICIiIiIKA4xESAiIiIiikNMBIiIiIiI4hATASIiIiKiOMREgIiIiIgoDjERICIi\nIiKKQ0wEiIiIiIji0D/LgJmzjlsv0QAAAABJRU5ErkJggg==\n", "text": [ "" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n" ] } ], "prompt_number": 15 }, { "cell_type": "markdown", "metadata": {}, "source": [ "So, we know the *distribution* of `MakeConnectComponent` events is uneven. We know that because in the last section we plotted the cumulative distribution function and saw it had a widely variable slope. What I'd like to do now is get an idea of just what that distribution of elapsed event times looks like.\n", "\n", "To do that, we're going to use a visualization called a [kernel density estimate](http://en.wikipedia.org/wiki/Kernel_density_estimate). Essentially, what we're doing is creating a smoothed empirical approximation of what the distributions of events look like. \n", "\n", "We're also going to use another powerful feature of graphical analysis: what statistician [Bill Cleveland][http://cm.bell-labs.com/cm/ms/departments/sia/wsc/] and [Edward Tufte](http://www.amazon.com/The-Visual-Display-Quantitative-Information/dp/0961392142/ref=sr_1_1?ie=UTF8&qid=1401770677&sr=8-1&keywords=visual+display+of+quantitative+information) call \"[small multiples](http://www.juiceanalytics.com/writing/better-know-visualization-small-multiples).\" We're actually going to take a look at the distributions of time deltas for the top 5 most frequent kinds of events and graphically compare them. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "topFive = loadDataSortedByTimestamp(filepath)\n", "topFiveMostFrequentEvents = list(ms.groupby('key').count().sort(columns=['timestamp']).index)[-5:]\n", "frequencyFilter = topFive.key.apply(lambda x: x in topFiveMostFrequentEvents)\n", "topFive['delta1'] = topFive.timestamp.diff()\n", "topFive = topFive[frequencyFilter]\n", "\n", "\n", "p = ggplot(aes(x = 'delta1', \n", " group='key'), \n", " data=topFive)\n", "p = p + geom_density() # a Kernel Density Estimate\n", "p = p + scale_x_continuous(limits=[-1000, 20000])\n", "p = p + facet_wrap(y='key', \n", " ncol=1, \n", " scales='fixed')\n", "p = p + xlab('Time Between Successive Events (ms)')\n", "p = p + ggtitle('Smoothed Kernel Density Estimates')\n", "\n", "print(p)\n", "ggsave(plot=p,\n", " filename='kernelDensityEstimate.png')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nrKOycX9UfqylshXVUkXgVeRERFo2ZcoUbTeBiEhWvMiHiIiIiGTFgElEREREsmLAJCIiIiJZMWAS\nERERkawYMImIiIhIVgyYRERERCQrBkwiIiIikhUDJhERERHJigGTiIiIiGTFgElEREREsmLAJCIi\nIiJZMWASERERkawYMImIiIhIVgyYRERERCQrBkwiIiIikhUDJhERERHJigGTiIiIiGTFgElERERE\nsmLAJCIiIiJZMWASERERkawYMImIiIhIVgyYRERERCQrBkwiIiIikhUDJhERERHJigGTiIiIiGTF\ngElEREREsmLAJCIiIiJZMWASERERkawYMImIiIhIVgyYRERERCQrBkwiIiIikhUDJhERERHJigGT\niIiIiGTFgElEREREsmLAJCIiIiJZMWASERERkawYMImIiIhIVgyYRERERCQrBkwiIiIikhUDJhER\nERHJigGTiIiIiGTFgElEREREsmLAJCIiIiJZMWASERERkawYMImIiIhIVgyYRERERCQrBkwiIiIi\nkhUDJhERERHJigGTiIiIiGTFgElEREREsmLAJCIiIiJZMWASERERkax0XzTCmjVrkJSUBAAwMDDA\njBkzio3z9ddfo7CwEADQpk0b9OrVS+ZmEhEREdHr4oVHMJOSklCvXj34+voiNzcXcXFxGsM3btyI\nwsJCDB48GObm5oiOjq6wxhIRERFR1VdmwLx27RoAYMyYMejcuTMUCgWioqI0xklKSoK+vj5cXV0x\nZcqUimspEREREb0WyjxFHhERodFtYGCA1NRUjX65ubmoVauWRr8DBw6gW7duMjXx1URERGDv3r3I\nycmRTuNTcbq6uigoKNB2MwAACoWiyi1LqVTC0NDwleroVddLju1S0W3Q0dGBWq3W2vLlWs6rzK+s\ncZVKJYyMjJCdnQ0hhKzLlnM8ucYpj5Lm8/z+qDLb/KrjlDbs30xTGh0dHZiYmCArK6vEv7d/uyy5\n2y7nOv/b+enp6ZX6v60y16sqbIuS+uvo6ODLL7986eWXxwu/g1kez+8olcqnB0ZPnjyJxMREjWHN\nmjWDk5OTHIstl8aNGyM/Px95eXnl3qG/iZRKZZUI4JX5O3qZZSkUCujr6//rOnrV9ZJju1TGtlUo\nFKUup7K2gbbGK++4+vr6yM3NlXXZco5XFcZ5to6qQnvKO86/qf1/uz/R09ODnp6ebMuSu+2VvazS\n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\nyImIiIhIVgyYRERERCQrBkwiIiIikhUDJhERERHJigGTiIiIiGTFgElEREREsmLAJCIiIiJZMWAS\nERERkawYMImIiIhIVgyYRERERCQrBkwiIiIikhUDJhERERHJigGTiIiIiGTFgElEREREsmLAJCIi\nIiJZMWASERERkawYMImIiIhIVgyYRERERCQrBkwiIiIikhUDJhERERHJigGTiIiIiGTFgElERERE\nsmLAJCIiIiJZMWASERERkawYMImIiIhIVgyYRERERCQrBkwiIiIikhUDJhERERHJigGTiIiIiGTF\ngElEREREsmLAJCIiIiJZMWASERERkawYMImIiIhIVgyYRERERCQrBkwiIiIikhUDJhERERHJigGT\niIiIiGSlq+0GVLbCwkI8fPgQycnJ0NfXh6mpKUxNTWFkZASlknmbiIiI6FVV+4B59OhRbN++HTdu\n3MCdO3dw//59mJiYwNbWFrm5ucjMzERmZiZycnJgZGQEe3t7uLm5abwsLCy0vRpEREREr41qHzCt\nra3Rs2dPmJmZwdbWFjVr1oSRkVGx8dRqNbKysnDz5k1cvHgRFy9exB9//IH4+HjY2tqiS5cu6Nat\nG9q2bQt9fX0trAkRERHR66HaB0w3Nzf4+voiOTkZ+fn5pY6no6MDMzMz6ahlEbVajX/++QcRERH4\n7rvvkJCQAG9vb3Tr1g3dunWDubl5ZawGERER0WuDXzp8AR0dHTRr1gwfffQR9uzZgyNHjqBz584I\nCwuDp6cn3n//fURERKCgoEDbTSUiIiKqEhgwX5KdnR2GDh2KtWvX4sSJE2jbti2WLl2KNm3aYM6c\nOfj777+13UQiIiIirWLAfAU1atTAyJEjERYWhm3btsHIyAgjR45Ez549sX79ejx58kTbTSQiIiKq\ndAyYMnFycsK0adNw8uRJTJs2DVFRUfDy8sLHH3+MU6dOQQih7SYSERERVYpqf5FPZdPR0YGPjw98\nfHyQmpqKbdu24fPPP0dBQQEGDRqEgQMHwt7eXtvNJCIiIqowPIJZgaytrTFhwgQcPnwY//3vf3Hv\n3j10794dQ4cOxfbt25Gdna3tJhIRERHJjgGzEigUCrRs2RILFizAmTNnMHToUOzYsQMeHh748MMP\nER4ejpycHG03k4iIiEgWDJiVzNDQEL1798b69esRGRkJT09PBAcHo1WrVpg8eTL279/PI5tERET0\n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\nvnw5kyZNok6dOvTr149evXoZ8957772YzWbq1atHy5YtiY2NpU2bNjetb/v27cyZMweLxcLdd9/N\ntGnTMJvNmM1mlixZQlxcHAMHDqRWrVr86U9/IiQkhNGjR+Pr68uzzz6Ln58fL7zwAh07drSp++fv\n+VbD1z93cnIiNjaWtWvX8s9//pO8vDzatm3LK6+8AsCkSZNISEjgL3/5C+np6cYWT09PT0aPHs2o\nUaO4ePEi69atw8/Pj1WrVjF37lz+9re/kZWVRePGjXn44Ydxd3fHbDbz4Ycf8vHHHzN//nwGDBjA\n7Nmzb/8P+rN/x+sNGDCAP/7xj3h5eTFr1iyaNWsGXPujwMnJiZkzZ2IymRg+fDj9+vW75edzvUcf\nfRQfHx/ef/999u7di7+/P0OGDDEOIyht3p49e/L1118TGRlJ+/btefvtt8v8/kSk6jBZK/ho6+ef\nf77aXVBZRKSyKbnA/b59+2rEBdxF5NdZsmQJc+bMsfty9a0jIiIiInZV4bvInZycWLBgQYWtLygo\niBdeeIE333yTU6dOVdh6q5qBAweydu1aR5dRaamPykZ9VLqK7KOSC8UvXLiwyp21rT4qnb6Pyk69\nVLqgoCC8vLzKZdkVvov8zJkzFbk6nJ2d8ff3JyMjw7jThNzIzc2NvLw8R5dRaamPykZ9VDr1Udmo\nj0qnPio79VLpSnqpPGgXuYiIiIjYlQKmiIiIiNiVAqaIiIiI2JUCpoiIiIjYlQKmiIiIiNiVAqaI\niIiI2JUCpoiIiIjYVbUPmEePHiUiIoLmzZsza9YsiouLHV2SiIiISLVW7QPmqVOneOKJJ9i+fTu7\ndu1i7ty5ji5JREREpFqr8FtFVrT777/fuOPB//zP/9CnTx8GDBhA69atHV2aiIiISLVU7bdgXq9B\ngwZMnDiRt956y9GliIiIiFRbNSpgAowYMYLk5GSOHz/u6FJEREREqqUaFzDd3d0ZMmQIH3/8saNL\nEREREamWalzABHj88cdZuXIlV69edXQpIiIiItVOjQyYd9xxBy1btuTzzz93dCkiIiIi1U6NDJgA\nDz30EPHx8Y4uQ0RERKTaqbEB88EHH+SLL74gLy/P0aWIiIiIVCs1NmD6+fnRtm1bkpKSHF2KiIiI\nSLVSYwMmQFRUFAkJCY4uQ0RERKRaqdEBs3///iQlJWk3uYiIiIgd1eiA6efnR5s2bdi6daujSxER\n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\nY9mzZw8Wi4ULFy7csGu9hMlkYvz48Xz00Ufk5eURHR1NXFwc27dvp7CwkCtXrrBx48ZS678+9F7/\nvGfPnnz99dd8/vnnnD17lvfff58ePXoYW2Fbt26Nj48P06ZNo2vXrsYJOt7e3rRv35533nmHM2fO\nYLFYOHr0KAcPHgTgqaee4tKlSzz77LN8/fXXFBYWcuTIEZ5++mmys7Pp0qULx48fZ82aNWRmZjJv\n3jzatGmDj49P6f8Qpfjoo484ffo0X3zxBdu3b6dHjx4A9OrVi7i4OA4ePMihQ4f45JNPbLa8liY6\nOpr333+f77//nuLiYs6ePWtzMlNpQkNDOXr0qM0JVSJSMylgishNBQUFERoaagybTCZMJhPPP/88\nGzdu5IEHHmDDhg0MHjzYZr6SXaQhISG89957TJ8+na+//ppu3boxceJEli9fTvfu3Rk2bJjNlsSf\n71rt3r07fn5+rF69mhYtWjBz5kw2btxI7969eeSRR2xCz812y14/7vrnQUFB/OMf/yA+Pp7Ro0fT\nqlUrXnzxRZt5+/fvz65du4yTe0r85S9/oWHDhjz33HN0796dGTNmkJ2dDVzbdbxq1Src3Nz429/+\nRrdu3Xj55Ze55557cHd3x93dnQ8//JBvvvmG3//+99SuXfuGE5VKU/L5X2/AgAH88Y9/ZMGCBcya\nNYtmzZoB18L88OHDmTlzJn/7298YPnw4AwYMKPXzKvHoo48ycOBA3n//fe677z7Gjx9Pampqmebt\n2bMnJpOJyMhInnnmmTK/NxGpfkzWCj4i+/nnn9edfEREfgPdMUlE7GXJkiXMmTPH7sut8GMwnZyc\nWLBgQYWtLygoiBdeeIE333zTuJyI3GjgwIGsXbvW0WVUWuqjslEflc5efXT58mWsVisLFy6slifV\nqI9Kp++jslMvlS4oKAgvL69yWXaFb8E8c+ZMRa4OZ2dn/P39ycjIMC4WLDdyc3MjLy/P0WVUWuqj\nslEflc5efXTq1Cnuvfde4wSl6kZ9VDp9H5Wdeql0Jb1UHnQWuYhIFRMUFKQtVyJSqVW/P31FRERE\nxKEUMEVERETErhQwRURERMSuFDBFRERExK4UMEVERETErhQwRURERMSuFDBFRERExK4UMEVERETE\nrhQwRURERMSuFDBFRERExK4UMEVERETErhQwRURERMSuFDBFRERExK4UMEVERETErhQwRURERMSu\n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\nVFrqo7JRH5VOfVQ26qPSqY/KTr1UupJeKg/aRS4iIiIidqWAKSIiIiJ2pYApIiIiInalgCkiIiIi\ndqWAKSIiIiJ2pYApIiIiInalgCkiIiIidqWAKSIiIiJ2pYApIiIiInalgCkiIiIidqWAKSIiIiJ2\npYApIiIiInalgCkiIiIidqWAKSIiIiJ2pYApIiIiInalgCkiIiIidqWAKSIiIiJ2pYApIiIiInal\ngCkiIiIidqWAKSIiIiJ2pYApIiIiInalgCkiIiIidqWAKSIiIiJ2pYApIiIiInalgCkiIiIidqWA\nKSIiIiJ2pYApIiIiInalgCkiIiIidqWAKSIiIiJ2pYApIiIiInalgCkiIiIidqWAKSIiIiJ2pYAp\nIiIiInalgCkiIiIidqWAKSIiIiJ2pYApIiIiInalgCkiIiIidqWAKSIiIiJ2pYApIiIiInalgCki\nIiIidqWAKSIiIiJ2pYApIiIiInalgCkiIiIidqWAKSIiIiJ2pYApIiIiInalgCkiIiIidqWAKSIi\nIiJ2pYApIiIiInalgCkiIiIidqWAKSIiIiJ2pYApIiIiInalgCkiIiIidqWAKSIiIiJ2Vet2L1i8\neDFpaWkAuLq6MmXKlBte89e//pXi4mIAOnXqxIABA+xcpoiIiIhUFbfdgpmWlkaTJk3o1asXBQUF\nHDhwwGb6Rx99RHFxMY899hje3t6kpKSUW7EiIiIiUvmVGjCPHTsGwJgxY+jRowcmk4mvvvrK5jVp\naWm4uLgQGhrKc889V36VioiIiEiVUOou8s2bN9sMu7q6kpmZaTOuoKCABg0a2IzbtGkTffr0YefO\nnaSmptpMa9OmDS1atPgNJf8yJpMJAE9PT6xWa4Wtt6oxm824uro6uoxKS31UNuqj0qmPykZ9VDr1\nUdmpl0pX0kvl4bbHYJbFzxvcbL62YXTTpk1YLBabaQEBAbRt29Yeqy2z8vwARURERKqq8vojpdSA\nGRkZyb///W9juKCgAD8/P5vXuLq6kpWVdcN8AH369LlhC6afnx+5ubm/peZfxGQyYbVaycvL0196\npTCbzcaJWnIjk8mEm5ub+ug21EelUx+VjfqodOqjslMvlc5hWzCDg4OBa2eSN2/eHKvVSrdu3Wxe\n06RJE44ePcrBgwfZuHGjzbTOnTvTuXNnm3Fnzpzh4sWL9qi9TJydnXFzcyM7O5vCwsIKW29VU/Jl\n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\naDsNnpeXR05ODhcuXGDNmjXaaeD2GG+55RYeffRRNm/erMWXnp5OZGQkBoOhxz7tTGcfPLy9vZkw\nYQLbt2/X5qWlpREbG4tOp+P48eMkJCSwcOFCvvnmGyorK1m2bJlNGx9++CFbtmwhPT2dpKQkCgsL\nGTVqFO+99x4TJkygurqaCxcuAPDMM8/w05/+VPtgEx0d3Wmsp0+fZvjw4R3mr1mzhhdeeIHc3FwO\nHjzI2LFjmThxIidOnODChQusXbsWaCtQ169fz65du/jxxx/Ztm2bzQeegIAATp061W1/CSGukRJC\nXHf+/v7qiy++6HJeUlKSCg0N1ZZt2rRJ9evXT1VVVSmllCotLVUDBw5UDQ0NqrW1Vfn7+6uSkhJt\n/dWrV6vExMRO952UlKQGDBig9Hq9GjRokOrfv7/auXOntvz9999XTz/9tDZ9+fJlZTQaVXl5eaex\nFxQUKDc3N9Xa2qqWLFmi1qxZo3x8fJRSSj3++ONq9erVPbZ76dIl5eXlperq6rTly5YtU3/605+0\nmENCQrRlhw4dUkOGDOmyf/Pz81ViYqLy8PBQBoNBvfjii6q+vl4ppdSCBQvUCy+8oK2bmZmpxXvx\n4kXl5OSkrFZrhzZ/9atfqWXLlnWY31PsMTEx6rnnnlNlZWU22+3YsUONGzdOffXVVx3ajIyMVOvW\nrVNKKbV37141fPhwbdnEiRPVxo0blVJd9+m/76udg4ODuvXWW5Ver9d+9uzZo5RSau3atSo6Olop\npVRra6saOnSoOnjwoFJKqRUrVqhXXnlFa8dqtSqDwaAuX76stbt9+3Zt+f3336/effddpZRSH330\nkQoPD7eJY9y4cer111/X8rkrr732mnrsscc69M0vfvELbfrpp59W48aN06ZTU1NVRESEUkqpY8eO\nKT8/P5WVlaVaWlo6tL9r1y41YsSIbmMQQlwbGcEUoo8KDQ3Vfvf09MTHxwe9Xq9NNzY2UllZyenT\npykpKSE0NBQ3Nzfc3NxISkoiJyeny7bj4+OpqqqitraWL7/8kqVLl5KRkQHA3r17SU1N1doyGAzU\n1tZ2eYf78OHDcXZ25ujRoxw8eJCZM2fi7e3Nd999x4EDB4iIiOix3ezsbCoqKvD29taWf/jhh2Rn\nZ2v7GT16tPb7kCFDKC8v7/K60ZEjR5KcnMz58+dJS0vjgw8+IC0trcc+z8nJwc/Pz2aUq11WVhaT\n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\nE4iJJ0TvHZzUAAAAAElFTkSuQmCC\n", "text": [ "" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n" ] }, { "output_type": "stream", "stream": "stderr", "text": [ "Saving 11.0 x 8.0 in image.\n" ] } ], "prompt_number": 16 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 16 }, { "cell_type": "code", "collapsed": false, "input": [ "connections = loadDataSortedByTimestamp(filepath)\n", "connections = connections[connections.key == 'MakeConnectComponent']\n", "connections['delta1'] = connections.timestamp.diff()\n", "\n", "binBreaks = [0, 50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000]\n", "p = ggplot(aes(x='delta1',\n", " fill='key'),\n", " data=connections) + \\\n", " geom_histogram(breaks=binBreaks) + \\\n", " scale_x_continuous(breaks=binBreaks) + \\\n", " ggtitle('Distribution of Time Deltas Between Successive Events') + \\\n", " ylab('Number of Events') + \\\n", " xlab('Time Between Events (ms)')\n", "print(p)\n", "ggsave(plot=p, \n", " filename='histogram2.png')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAvEAAAH+CAYAAAAVhlGpAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XdYFFf7N/DvLEvvCioCUkSJXUQUJSJii1HsGluwYU9s\niSUmsSVGo2gs0ccniVHU2MWSGGyxEkUBscSKGhtFxU5R2nn/8GV+rhR3VxZYn+/nuryuzJmZc+57\nmCE3Z2dmJSGEABERERER6Q1FaQdARERERESaYRFPRERERKRnWMQTEREREekZFvFERERERHqGRTwR\nERERkZ5hEU9EREREpGdYxL8Dpk+fjmrVqumk70OHDkGhUCAxMbHA5eK2atUqGBoa6qRvbdy7dw9D\nhw6Fg4MDDAwMtO7Hzc0N3333XTFGVnrK2s+I3n3v0vVDRFRcWMSXUQMGDIBCoYBCoYCpqSmqVauG\nwMBALFmyBC9evFDZdsKECThx4oTafXt4eGDGjBlqbevn54fk5GQ4ODhoFP+b3LlzBwqFAkeOHFFp\n79Wrl87+QNDGunXrcODAAezevRtJSUn51r/6cyrs35EjRxATE4OxY8eWQgYvi+68WJRKJZydneHn\n54eJEyfi7t27b93/2rVroVCUzK+S14+3u7s7Bg0ahKNHj2rcl1KpxOrVq3UQZcmJj4/H1KlT0aRJ\nE5iZmcHJyQlBQUE4ffp0aYdWrGJiYjBu3DidjxMQEFDgNVy3bl2dj/26kryuiEg/8TdEGebv74/k\n5GRcu3YNv/32G3r06IHQ0FBUr14d9+7dk7czNzdHuXLl1O5XkiS1tsvKyoKhoSEqVKig9j6aev27\nxkxMTGBvb6+TsbSxZ88e+Pv7o169eqhQoUK+9YsXL0ZycjKSk5ORlJQEV1dXfP7553JbcnIymjRp\ngvLly8PMzKwUMnjJwMAAycnJSEhIwK5duzBu3DhERkbC3d0dBw4cKLW4tJF3XSQnJ2P16tXIyMhA\nv379kJWVpVE/kiTlO//0Tf/+/XHy5ElMmTIFFy5cwKZNm+Dt7Y2HDx+WdmjFqnz58jA1NdX5OJIk\noW/fvirXb3JyMg4fPqzzsYmINCaoTOrfv79o1apVvvaHDx+KihUris6dO8tt06ZNEx4eHvLy/fv3\nxdixY0WdOnWEqampcHd3F/PmzRNCCNG8eXMhSZL8T6FQiJs3b4qDBw8KSZJEZGSk+OCDD4Stra1Y\nunSp3J6QkCCEEPLy4cOHRcuWLYWNjY3w8fERx48fl8d/fZ88BgYGIiwsTAghVGKQJEm4ubkJIYRY\nuXKlUCqVKvsdOXJE+Pn5CWtra1G1alUxYcIE8fz583zHav369aJevXrC1dVVfPvtt+LRo0dFHuP0\n9HQxbtw44ebmJqytrUWzZs1U8ng9xoEDBxbZnxBCeHh4iBkzZuRrd3FxEd9++63K8syZM8WECRNE\nlSpVRK1atcS6detETk6OmDRpknB3dxfNmjUTf/75p0o/GRkZ4osvvhCenp6iQoUK4pNPPhGxsbFF\nxlTQMc3TunVr4ezsLJ49eya3Xbp0SQQFBYmKFSuKevXqiYULF4qUlJQC+8v7WRd0nPbu3SuaN28u\nypUrJ9zd3cVXX30lrly5ojL+li1bRMeOHYWtra0oV66c8Pf3F3fu3Ck0l/79+4vWrVurtN24cUNI\nkiQOHDggt+Xk5IjQ0FBRu3ZtUa5cOTFgwABx6NAheb2Li0u+60AIIZydncXPP/8sbxccHCwkSRLx\n8fEq+y5btkxe3rVrl2jSpImwsbERbdu2FRs2bBAvXrxQiTEsLEx4eXkJGxsb0b17d/HHH3+InJwc\nlT6/+eYbMWXKFOHq6ioaNmwoVq5cKXJzcws9FpGRkUKSJHHz5s1CtxHi5Xn822+/qbS1bNlSDBgw\nQOV4LViwQNSpU0eYmZkJR0dH8emnn8rrMzIyxJdffinee+89YWpqKlxdXcV3330nr3/8+LEYMWKE\ncHd3F05OTmLy5Mni8uXLKmN+9913olmzZsLMzEw4ODiIXr16yeuuXbsmhg0bJqpVqybMzc1FjRo1\nxJo1a1SOT971M2XKFFG9evV8eQ4fPlz4+vrKy286jwsSEBAghgwZUuj64ho773f2gQMHRKNGjYSD\ng4OYNGlSvt+zBV1Xp06dEv379xfOzs7C0tJS1KtXT+zZs6fIvIjo3cSZeD1ja2uLTz/9FLt27UJ2\ndnaB24SGhiIyMhJLlizBxYsXsWLFCjg5OQEAtm3bpjJbnJSUJK8DgMGDByMgIADR0dHo1KlToXEM\nHjwYbdu2xY4dO2BjY4M2bdrku83nda/O5p86dQoAEB4ejuTkZERHRxe4T0pKCgIDA1GhQgX88ccf\nGDFiBFavXo3p06erbBcbG4vVq1cjNDQUc+fOxbJly7B06dIi45kyZQrWr1+PTz/9FH/88QdsbW3R\n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\n4OrqCuD/Hux58OABateuDTMzM9SoUYNFPBERERH9TyoTD7aeOnVKfoAsISFB5X3f5cuXR0JCAqyt\nrVUeirO3t8e5c+fkb2l8+vSpyjdbAi/fgGJlZVUCGRARERERlZxSL+IPHToEIyMj1KpVC4B2b2kA\ngNjYWBw+fFilrXnz5mjRosVbx0hEREREVJaUahEfFxeHa9euITg4WG5zcnLC9evX5eW8b/kzNjZW\nmWm/f/++yruxvb294enpqdK/hYUFHj16JL8f/U2MjY0LfCdvQZRKJWxtbTXqvyTG0KR/bTGH4u1f\nW2XtfNUGcyj+MbShaf9l8ZpgDmUjB03HyMuBiDRXakV8fHw8jh07hoEDB8pvpQFefsvh3r178fjx\nYzx69AiSJMHY2BgAYGdnh3PnzsHd3R0XL17M97X1Bd06c//+fbW+yh14+ctE3W3zZGdna7SPrsfQ\npn9NMQfd9K+psnq+aoI56G4MTWjbf1m6JphD2cihpMYgohIq4rds2YIbN24gPT0dCxYsQEBAACIj\nI5GTk4PVq1cDeDkD36FDB1hYWMDHxwdhYWEwMDBAUFCQ3E+bNm0QHh6Ov/76C7Vr14ajo2NJhE9E\nREREVKaUSBFf0NfY5z3IWhBfX1/4+vrma69QoQKGDx9erLEREREREembEnnFJBERERERFR8W8URE\nREREeoZFPBERERGRnmERT0RERESkZ1jEExERERHpGRbxRERERER6hkU8EREREZGeYRFPRERERKRn\nWMQTEREREekZFvFERERERHqGRTwRERERkZ5hEU9EREREpGdYxBMRERER6RkW8UREREREeoZFPBER\nERGRnmERT0RERESkZ1jEExERERHpGRbxRERERER6hkU8EREREZGeYRFPRERERKRnWMQTEREREekZ\nFvFERERERHqGRTwRERERkZ5hEU9EREREpGdYxBMRERER6RkW8UREREREeoZFPBERERGRnmERT0RE\nRESkZ1jEExERERHpGRbxRERERER6hkU8EREREZGeYRFPRERERKRnWMQTEREREekZSQghSjsIXXn+\n/DmeP38OdVNUKBTIzc1Va1tJkmBkZITMzEy1+y+JMTTpX1vMoXj711ZZO1+1wRyKfwxtaNp/Wbwm\nmEPZyEHTMSRJgo2NjU7jIXpXKUs7AF0yMTHBs2fPkJWVpdb2pqamyMjIUGtbQ0ND2NjYIC0tTe3+\nS2IMTfrXFnMo3v61VdbOV20wh+IfQxua9l8WrwnmUDZy0HQMQ0NDncZC9C7j7TRERERERHqGRTwR\nERERkZ5hEU9EREREpGdYxBMRERER6RkW8UREREREeoZFPBERERGRnmERT0RERESkZ1jEExERERHp\nGRbxRERERER6hkU8EREREZGeYRFPRERERKRnWMQTEREREekZFvFERERERHqGRTwRERERkZ5hEU9E\nREREpGdYxBMRERER6Zl3uohPSriDrKwstbfPyMhQe9usrCwkJdzRJiwiIiIioreiLO0AdElIClRe\n0Eln/SeO36GzvomIiIiICvNOz8QTEREREb2LWMQTEREREekZFvFERERERHqGRTwRERERkZ5hEU9E\nREREpGdYxBMRERER6RkW8UREREREeoZFPBEREem1gIAAKBQKLFq0CACQlpYGf39/KBQK+Pv7Iy0t\nrZQjJCp+LOKJiIjonSBJEtLS0vDhhx8iMjISTZs2RUREBMzNzUs7NKJixyKeiIiI3glpaWno0KED\njh49Cl9fX+zevVsu4J8+fYpVq1ahbdu2qFKlCiZOnIhLly4BANatWweFQoG2bdvKfW3cuDFfG1FZ\nwiKeiIiI3gnffvstDh8+jEaNGmHPnj2wsLCQ140ZMwaDBg1CRkYG/P39sWzZMjRt2hSZmZno1q0b\nbG1tcfDgQSQnJwMAduzYAQDo27dvqeRC9CYs4omIiOidkJGRAQAYMmQILC0t5fa0tDRs2bIFJiYm\naNCgAezs7ODi4oLHjx9j27ZtMDY2Rt++fZGdnY3169cjJycHERERMDU1RdeuXUsrHaIisYgnIiKi\nd0K1atUAACNGjMC2bdvk9qNHjyItLQ3Pnz/H4sWLsXjxYly6dAmSJGHnzp0AgJCQEADA2rVrcfjw\nYTx58gQdOnRQmc0nKkuUJTHI9u3bER8fD3Nzc4wcORIA8OLFC4SHhyMpKQkODg7o2rUrjI2NAQBR\nUVE4efIkFAoFgoKC4OLiAgC4f/8+tm7diufPn6NOnTpo2bJlSYRPREREemDUqFFITEzE3Llz0atX\nL2zduhUdOnSAv78/zM3NoVQqcevWLXmW/vnz53jy5AkAoG7duvD29kZsbCzmzJkDAOjTp0+p5UL0\nJiUyE+/l5YV+/fqptEVHR8Pa2hqjR4+GlZUVYmJiAACpqamIjo5GcHAwOnTogIiICHmfPXv24P33\n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\nj5Jh9dsErfd/2nceoEURDwBdu3bFJ598goYNG8LJyUmliE9LS8OQIUPw008/YdWqVbC0tISbm5vK\njHSNGjUwatQotGvXDgcOHED16tXh6ekJJycnREVFwcHBId+Y/v7++P7775GVlVXgLTXvv/8+vvvu\nO5W22NhYTJ8+XascXxUYGIguXbqo3Iry6rpJkyYVuJ+BgYFK3rVr14atrS127txZaBHv5+eHmJgY\n+Q+emJgY+T5ybZw5c0b+79TUVFy7dk2+/en69etIS0uTC/no6GhMmPB/51RhD5+2aNECVatWxYUL\nFwodt6gHVxUKBR9sJSIiIipp5ubmOHjwIH755Zd86549e4bU1FQ4ODggNzcXs2fPRmJiYr7tevXq\nhe+++w6tWrXC9evXoVAo8NFHH2HSpEm4ePEicnNzce3aNfke6vHjx6NixYr44IMPsGXLFrx48QLx\n8fEYOnQozp07h/r168PIyAizZ89GSkoK5s6dC6VSqTIjrG3h+PHHH2Pu3LmIjIxETk4O7t+/j507\ndwIAWrVqhcTERISGhuLhw4d48OCBXDh7e3vj7Nmz8oOplpaW+P777zF//nxMmTIF165dw9OnT7Ft\n2zaMGTMGANCpUycsX74csbGxiIuLw/Lly9G5c2et4gaA5ORk/PDDD7h//z6mTp0KLy8v2NnZwc7O\nDj4+PpgyZQru3buHVatW4fz582jbtu0bj9V7770HCwsLhIaGIjk5GVlZWYiOjpb/mHvTcfb29kZM\nTIxW+bCIJyIiItLQq6+RbNCggcq74fPWVapUCbNnz8bHH3+MevXqITMzE++//77KdnnbBgcHY+rU\nqQgMDMStW7cwffp0tGjRAiNGjEC5cuXQo0cPJCe/vGXIxMQEMTExqFGjBr766ivY2dmhY8eOcHZ2\nhoeHBwBg9+7dSEhIgJeXF27fvo3du3cXGv+rcby+7nXt2rXDzJkz8eOPP8Le3h5NmjTByZMnAQBK\npRJHjx5FQkICatWqBS8vL5w9exYA0LFjRygUCvkefAAICQnB2rVr8ffff6Nx48aoXr06fv31V/Tu\n3RsA0K9fP4wbNw4jR47EiBEjMHbsWPTt27fQOIuKW5IkdOvWDRcuXEDt2rWRmpqKDRs2yOt/++03\nmJmZwcfHB4cOHcJff/0FU1PTAo/P62Nt374dWVlZaNmypfycQGZmplr7fv755wgNDYWtrS22bNlS\naPwF5iS0/VNMDyQmJqLygk6663/8DhgaGqo8+fwmpqamyMjIUGtbQ0ND2Nvb4/79+2qPoUn/2mIO\nxdu/tnSdg6ZjaIM5FP8Y2tC0/7J4TTCHspGDpmPk5fC2nsYdeuvbaay8At46Diq7ZsyYgatXr2LN\nmjWlHUqx4T3xREREpNck20ov72t/i/3p3fYuzlmziCciIiK9Zun6ntYPptL/hoJua9F3LOKJiIiI\n6J02bdq00g6h2PHBViIiIiIiPcMinoiIiIhIz7CIJyIiIiLSMyziiYiIiIj0DIt4IiIiIiI9w7fT\nvCVDQ0MoleofRoVCIX8D2JtIkoT09HSNxtCkf20xh+LtX1u6zkHTMbTBHIp/DG1o2n9ZvCaYQ9nI\nQdMx3rVX/hGVJBbxbykrK0un39hqY2ODtLQ0vf42PuagG7rOQdMxtMEcin8MbWjzTaFl7ZpgDmUj\nB03HMDQ01GksRO8y3k5DRERERKRnWMQTEREREekZFvFERERERHqGRTwRERERkZ5hEU9EREREpGdY\nxBMRERER6RkW8UREREREeoZFPBERERGRnmERT0RERESkZ1jEExERERHpGRbxRERERER6hkU8ERER\nEZGeYRFPRERERKRnWMQTEREREekZFvFERERERHqGRTwRERERkZ5hEU9EREREpGdYxBMRERER6RkW\n8UREREREeoZFPBERERGRnmERT0RERESkZ1jEExERERHpGRbxRERERER6hkU8EREREZGeYRFPRERE\nRKRnWMQTEREREekZFvFERERERHqGRTwRERERkZ5hEU9EREREpGdYxBMRERER6RkW8UREREREekZZ\n2gHExsYiLi4OOTk5qFKlCtq1a4cXL14gPDwcSUlJcHBwQNeuXWFsbAwAiIqKwsmTJ6FQKBAUFAQX\nF5dSzoCIiIiIqGSV6kx8eno6jh49iuDgYAwZMgQPHjzA1atXER0dDWtra4wePRpWVlaIiYkBAKSm\npiI6OhrBwcHo0KEDIiIiSjN8IiIiIqJSUapFvKGhIYQQeP78ObKzs5GVlQUTExMkJCTAy8sLSqUS\nXl5eSEhIAAAkJCTAw8MDNjY2cHV1BQC8ePGiFDMgIiIiIip5pXo7jaGhITp06ICFCxdCqVSicePG\ncHJyQmJiIuzs7AAAdnZ2chF/584d2Nvby/uXL18eCQkJcHd3x9OnT5GamlriOSiVmh1CAwMDGBoa\n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\nffpoxIgRrd4LEM7aZIgHAAAA2rI2t5wGAAAAaOsI8QAAAIBhCPEAAACAYQjxAAAAgGEI8QAAAIBh\nCPEAAACAYQjxQBjp06ePPvnkk1BPAyFy8uRJZWdnq66uLqB1Z8yYoYULFwa0JgAgtAjxQCvq0KGD\nYmNjFRsbK7vdrvbt23tuv/nmm9qxY4euvfbaoM9j5syZioyMVGxsrBITE3XLLbfoww8/9Pr+mZmZ\nWr16dRBneOHsdnuzxzs2NlZPPvlkUMdcsGCBrrnmGr/v/8ILL+gXv/iF5y9PB8qMGTP0xBNPBLQm\nACC0HKGeAPBjcuZPqEtS9+7d9corr2j48OGtPg+bzaYJEybo1Vdf1alTp7Ro0SLdeeed2rt3r+z2\n87+2t9lsMuHvxG3btk1ZWVmhnoZXTp06pWeeeUafffZZwGv37t1bycnJeu+99zRmzJiA1wcAtD7O\nxANh5LtnuGfOnKkJEybo7rvvVqdOnXTttdfq0KFDmj17trKzszV8+HBt2rTJc9/a2lq98soruuKK\nK3T11Vfr7bffPmfQtizL87V27drp9ttvV3l5ub766ivPPtu2bdNdd92lrl276ne/+50OHDggSfrl\nL3+pAwcOaMyYMYqNjdUTTzyhO+64Q0899ZQkyel0ym6364UXXpAkFRcXKykp6bx1JamiokJPP/20\nLr30Uo0aNUqrVq3yfO3M43HPPfeoS5cuGjdunHbt2uXzY1xWVqb27duroqLCs62wsFApKSlqbGyU\nJK1bt06TJk1S9+7d9de//lXl5eWefe12uxYtWqQBAwYoOztbs2bNkiTt2rVL06dP12effeZ5h+NM\nrVGjRikxMVEZGRn617/+ddZ5ffXVV2pqavL8yXlJuu666/TYY4/phhtuUEpKim6//Xa53W7ddddd\nSktL05QpU3To0CHP/o8//rgGDBigjh07ql+/fs2+n4MHDw77d08AAN4jxANhxGazNbudn5+vK664\nQrt27VJCQoKuv/567dmzRxs3btTw4cP1xz/+0bPvn/70J3344YdasmSJZs+erb/97W9eLZGpq6vT\nyy+/rJiYGPXu3VuSdPz4cV133XUaNWqUduzYoeTkZE2YMEGS9Nprr6lr164qKCjQyZMn9fvf/15D\nhw7Vxx9/LElas2aNsrKyPGv716xZ41ki1FJdSZo6dar27dun1atX6+GHH9aUKVO0Z8+eZo9H//79\ntWvXLnXs2FF///vfW+ztbC9i0tLSNGTIEC1btsyz7Y033tDYsWMVERGhbdu2acKECZoyZYo+//xz\nHT9+XL/97W+b1Zg/f77eeustLVmyRI8++qiKi4t1ySWXaO7cuRoyZIhOnjypb7/9VpJ0//336ze/\n+Y3nRdK53nn5+uuv1aNHjx9sf/HFF/XnP/9ZGzdu1Nq1a5WTk6Mrr7xS27dv17fffquXX35Z0ukX\nAQsWLNB//vMfVVZW6u2332724ik7O1s7d+5s8fECAJiDEA+EsV69eumOO+5QUlKSxo0bp6KiIj36\n6KNKSkrSlClTtH79etXX18uyLC1fvlz//Oc/lZmZqf79+2vq1Kl65513zll7yZIlSkhIUGJiou65\n5x7Nnz9fERERkk6H5VtvvVU33XST4uLi9OCDD2rPnj06evToWWtde+21WrdunSzL0tq1a/Xggw/q\n008/lXQ6xA8dOvS8dU+ePKkNGzbo8ccfV+fOnXXNNddo7NixWr58uWecnj176te//rUSEhI0derU\n875IGThwoBISEjz//vvf/0qSJk6cqDfffFPS6aC/ePFiTZw4UZK0ePFiTZ8+XSNGjFBCQoIeffRR\nrVq1ynOWXjq9xrxXr14aOHCgrrzySk/ds71oaGpqUnFxsaqqqtSxY0fl5OScda4HDx5UWlpas202\nm0033XSThg4dqqysLI0YMUJRUVGaPHmykpKSNH78eH300UeSpMbGRtXV1amoqEhNTU3q2bOnunTp\n4qmVnp6u/fv3t/h4AQDMQYgHwli/fv08/+/cubMyMjIUHx/vuV1fX6/jx4/r66+/1oEDB9SvXz9P\nYH300Uc9Qfpsxo8fr4qKCrlcLq1fv17Tp09Xfn6+JOnDDz/UokWLPLWSk5PlcrnOeeWcHj16KCYm\nRl988YXWrl2r0aNHKy0tTd98840++eQTT4hvqe66det07NgxpaWleb4+f/58rVu3zjNO//79Pf/v\n0qWLjhw5oqampnP2WFhYqIqKCs+/G264QZKUl5enzz77TIcPH9Ynn3wiu92uq6++2jPHxx57zDOH\n7Oxs1dTU6PPPP/fUHTBggOf/qampcjqd55zDq6++qi+//FJZWVkaO3asvvzyy7Pul5mZqbKysh9s\n/27PnTt3bvac6NSpk2fsfv366f/+7//0hz/8Qenp6XrkkUdUU1Pj2be0tLTZUh0AgNn4YCvQBvTs\n2VMZGRnasGGDUlNTz7v/dz+YarPZdNlll2nkyJFavny58vLyNHz4cCUmJmrOnDlnvX9ERMQPqQHd\nUgAAAylJREFUzjoPHTpUb7/9ttxut9LS0jR06FAtWLBAFRUVntDbUt0TJ04oJSVFJSUlateu3Vnn\nHCgJCQm68cYbtXjxYu3cubPZkp7hw4crLy9PDz30kNf1zsztbI/LpZdeqldffVX19fX6xz/+oTvv\nvFObN2/+QY1evXqpuLjYz45OmzRpkiZNmqT9+/dr/Pjx6ty5s2bMmCFJ2rNnj2e5FADAfJyJB9oA\nu92u8ePH66GHHtKuXbs8SzjOdeb8u0HTsix98cUX+uCDDzR69GhJ0rhx45Sfn6933nlHLpdLLpdL\nK1as8FxdJzc3V1u3bm1Wc+jQoXr++ec969+vu+46Pf/887rmmms8IXf8+PHnrBsfH6+rr75aDz/8\nsPbv36/Gxkbt2LFDW7Zs+cGcvdXSfSZOnKiFCxdq2bJlnqU00ukP7r744otatWqVTp065Vlf3tIY\nZ8bJzc1VUVGR53Fyu91atGiRKisrJclzSdGzueSSSxQREfGDJS/f/16dy5YtW7Rx40a53W5FR0fL\n4XA0G2vTpk0huRISACA4CPFAmLLZbD84+9zS7ZkzZ2rYsGGaPn26EhMTNXbsWB0+fPictRcvXqzY\n2FjFxcXp7rvv1tSpUzV27FhJp89Ur1y5Uv/73//0k5/8RBdffLFeffVVz/3vuusuFRQUKDEx0XNV\nmmuvvVbV1dWeEH/VVVeptra22XXv4+PjW6w7d+5cdevWTbfeeqtSUlI0bdo0VVVVef14fF///v2b\nXSf+gQce8Hzt5z//ufbs2aPU1FT17dvXs713795auHChlixZooyMDPXt21crV64855jfnVfv3r11\n880369JLL1WnTp0kSa+//rq6d++url27auPGjXr66afPOtfIyEjdf//9mj179jl7bOkxqKqq0rRp\n05SYmKhhw4bpiiuu0G233SZJ2rlzp44ePcrlJQGgDbFZJlzsGQB+BKqrqzVgwADt2LEjoH/wacaM\nGRo0aJAmT54csJoAgNAixAMAAACGYTkNAAAAYBhCPAAAAGAYQjwAAABgGEI8AAAAYBhCPAAAAGAY\nQjwAAABgGEI8AAAAYJj/B4DI5UjuCWVeAAAAAElFTkSuQmCC\n", "text": [ "" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n" ] }, { "output_type": "stream", "stream": "stderr", "text": [ "Saving 11.0 x 8.0 in image.\n" ] } ], "prompt_number": 17 }, { "cell_type": "code", "collapsed": false, "input": [ "topFive[topFive.key == 'MakeDisconnectComponent'][['key', 'delta1']].head()\n", "print(topFive[topFive.key == 'MakeDisconnectComponent']['delta1'].describe())\n", "topFive[topFive.key == 'MakeDisconnectComponent']['delta1'].plot(kind='kde')\n", "\n", "# print(p)\n", "# ggsave(p, \"histogram.png\")\n", "# topFive.head(n = 20)[['timestamp', 'delta1', 'key']]" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "count 943.000000\n", "mean 516.357370\n", "std 981.573755\n", "min 0.000000\n", "25% 0.000000\n", "50% 16.000000\n", "75% 566.500000\n", "max 9866.000000\n", "Name: delta1, dtype: float64\n" ] }, { "metadata": {}, "output_type": "pyout", "prompt_number": 18, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 18 }, { "cell_type": "code", "collapsed": false, "input": [ "connects = loadDataSortedByTimestamp(filepath)\n", "connects = connects[connects.key == 'MakeConnectComponent']\n", "connects['delta1'] = connects.timestamp.diff()\n", "p = ggplot(aes(x='delta1',\n", " fill='key'),\n", " data=connects) + \\\n", " geom_histogram(breaks=binBreaks) + \\\n", " scale_x_continuous(breaks=binBreaks) + \\\n", " ggtitle('Distribution of Time Deltas Between Successive Events') + \\\n", " ylab('Number of Events') + \\\n", " xlab('Time Between Events (ms)')\n", " \n", "print(p)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAvEAAAH+CAYAAAAVhlGpAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XdYFFf7N/DvLEvvCioCUkSJXUQUJSJii1HsGluwYU9s\niSUmsSVGo2gs0ccniVHU2MWSGGyxEkUBscSKGhtFxU5R2nn/8GV+rhR3VxZYn+/nuryuzJmZc+57\nmCE3Z2dmJSGEABERERER6Q1FaQdARERERESaYRFPRERERKRnWMQTEREREekZFvFERERERHqGRTwR\nERERkZ5hEU9EREREpGdYxL8Dpk+fjmrVqumk70OHDkGhUCAxMbHA5eK2atUqGBoa6qRvbdy7dw9D\nhw6Fg4MDDAwMtO7Hzc0N3333XTFGVnrK2s+I3n3v0vVDRFRcWMSXUQMGDIBCoYBCoYCpqSmqVauG\nwMBALFmyBC9evFDZdsKECThx4oTafXt4eGDGjBlqbevn54fk5GQ4ODhoFP+b3LlzBwqFAkeOHFFp\n79Wrl87+QNDGunXrcODAAezevRtJSUn51r/6cyrs35EjRxATE4OxY8eWQgYvi+68WJRKJZydneHn\n54eJEyfi7t27b93/2rVroVCUzK+S14+3u7s7Bg0ahKNHj2rcl1KpxOrVq3UQZcmJj4/H1KlT0aRJ\nE5iZmcHJyQlBQUE4ffp0aYdWrGJiYjBu3DidjxMQEFDgNVy3bl2dj/26kryuiEg/8TdEGebv74/k\n5GRcu3YNv/32G3r06IHQ0FBUr14d9+7dk7czNzdHuXLl1O5XkiS1tsvKyoKhoSEqVKig9j6aev27\nxkxMTGBvb6+TsbSxZ88e+Pv7o169eqhQoUK+9YsXL0ZycjKSk5ORlJQEV1dXfP7553JbcnIymjRp\ngvLly8PMzKwUMnjJwMAAycnJSEhIwK5duzBu3DhERkbC3d0dBw4cKLW4tJF3XSQnJ2P16tXIyMhA\nv379kJWVpVE/kiTlO//0Tf/+/XHy5ElMmTIFFy5cwKZNm+Dt7Y2HDx+WdmjFqnz58jA1NdX5OJIk\noW/fvirXb3JyMg4fPqzzsYmINCaoTOrfv79o1apVvvaHDx+KihUris6dO8tt06ZNEx4eHvLy/fv3\nxdixY0WdOnWEqampcHd3F/PmzRNCCNG8eXMhSZL8T6FQiJs3b4qDBw8KSZJEZGSk+OCDD4Stra1Y\nunSp3J6QkCCEEPLy4cOHRcuWLYWNjY3w8fERx48fl8d/fZ88BgYGIiwsTAghVGKQJEm4ubkJIYRY\nuXKlUCqVKvsdOXJE+Pn5CWtra1G1alUxYcIE8fz583zHav369aJevXrC1dVVfPvtt+LRo0dFHuP0\n9HQxbtw44ebmJqytrUWzZs1U8ng9xoEDBxbZnxBCeHh4iBkzZuRrd3FxEd9++63K8syZM8WECRNE\nlSpVRK1atcS6detETk6OmDRpknB3dxfNmjUTf/75p0o/GRkZ4osvvhCenp6iQoUK4pNPPhGxsbFF\nxlTQMc3TunVr4ezsLJ49eya3Xbp0SQQFBYmKFSuKevXqiYULF4qUlJQC+8v7WRd0nPbu3SuaN28u\nypUrJ9zd3cVXX30lrly5ojL+li1bRMeOHYWtra0oV66c8Pf3F3fu3Ck0l/79+4vWrVurtN24cUNI\nkiQOHDggt+Xk5IjQ0FBRu3ZtUa5cOTFgwABx6NAheb2Li0u+60AIIZydncXPP/8sbxccHCwkSRLx\n8fEq+y5btkxe3rVrl2jSpImwsbERbdu2FRs2bBAvXrxQiTEsLEx4eXkJGxsb0b17d/HHH3+InJwc\nlT6/+eYbMWXKFOHq6ioaNmwoVq5cKXJzcws9FpGRkUKSJHHz5s1CtxHi5Xn822+/qbS1bNlSDBgw\nQOV4LViwQNSpU0eYmZkJR0dH8emnn8rrMzIyxJdffinee+89YWpqKlxdXcV3330nr3/8+LEYMWKE\ncHd3F05OTmLy5Mni8uXLKmN+9913olmzZsLMzEw4ODiIXr16yeuuXbsmhg0bJqpVqybMzc1FjRo1\nxJo1a1SOT971M2XKFFG9evV8eQ4fPlz4+vrKy286jwsSEBAghgwZUuj64ho773f2gQMHRKNGjYSD\ng4OYNGlSvt+zBV1Xp06dEv379xfOzs7C0tJS1KtXT+zZs6fIvIjo3cSZeD1ja2uLTz/9FLt27UJ2\ndnaB24SGhiIyMhJLlizBxYsXsWLFCjg5OQEAtm3bpjJbnJSUJK8DgMGDByMgIADR0dHo1KlToXEM\nHjwYbdu2xY4dO2BjY4M2bdrku83nda/O5p86dQoAEB4ejuTkZERHRxe4T0pKCgIDA1GhQgX88ccf\nGDFiBFavXo3p06erbBcbG4vVq1cjNDQUc+fOxbJly7B06dIi45kyZQrWr1+PTz/9FH/88QdsbW3R\n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\n4OrqCuD/Hux58OABateuDTMzM9SoUYNFPBERERH9TyoTD7aeOnVKfoAsISFB5X3f5cuXR0JCAqyt\nrVUeirO3t8e5c+fkb2l8+vSpyjdbAi/fgGJlZVUCGRARERERlZxSL+IPHToEIyMj1KpVC4B2b2kA\ngNjYWBw+fFilrXnz5mjRosVbx0hEREREVJaUahEfFxeHa9euITg4WG5zcnLC9evX5eW8b/kzNjZW\nmWm/f/++yruxvb294enpqdK/hYUFHj16JL8f/U2MjY0LfCdvQZRKJWxtbTXqvyTG0KR/bTGH4u1f\nW2XtfNUGcyj+MbShaf9l8ZpgDmUjB03HyMuBiDRXakV8fHw8jh07hoEDB8pvpQFefsvh3r178fjx\nYzx69AiSJMHY2BgAYGdnh3PnzsHd3R0XL17M97X1Bd06c//+fbW+yh14+ctE3W3zZGdna7SPrsfQ\npn9NMQfd9K+psnq+aoI56G4MTWjbf1m6JphD2cihpMYgohIq4rds2YIbN24gPT0dCxYsQEBAACIj\nI5GTk4PVq1cDeDkD36FDB1hYWMDHxwdhYWEwMDBAUFCQ3E+bNm0QHh6Ov/76C7Vr14ajo2NJhE9E\nREREVKaUSBFf0NfY5z3IWhBfX1/4+vrma69QoQKGDx9erLEREREREembEnnFJBERERERFR8W8URE\nREREeoZFPBERERGRnmERT0RERESkZ1jEExERERHpGRbxRERERER6hkU8EREREZGeYRFPRERERKRn\nWMQTEREREekZFvFERERERHqGRTwRERERkZ5hEU9EREREpGdYxBMRERER6RkW8UREREREeoZFPBER\nERGRnmERT0RERESkZ1jEExERERHpGRbxRERERER6hkU8EREREZGeYRFPRERERKRnWMQTEREREekZ\nFvFERERERHqGRTwRERERkZ5hEU9EREREpGdYxBMRERER6RkW8UREREREeoZFPBERERGRnmERT0RE\nRESkZ1jEExERERHpGRbxRERERER6hkU8EREREZGeYRFPRERERKRnWMQTEREREekZSQghSjsIXXn+\n/DmeP38OdVNUKBTIzc1Va1tJkmBkZITMzEy1+y+JMTTpX1vMoXj711ZZO1+1wRyKfwxtaNp/Wbwm\nmEPZyEHTMSRJgo2NjU7jIXpXKUs7AF0yMTHBs2fPkJWVpdb2pqamyMjIUGtbQ0ND2NjYIC0tTe3+\nS2IMTfrXFnMo3v61VdbOV20wh+IfQxua9l8WrwnmUDZy0HQMQ0NDncZC9C7j7TRERERERHqGRTwR\nERERkZ5hEU9EREREpGdYxBMRERER6RkW8UREREREeoZFPBERERGRnmERT0RERESkZ1jEExERERHp\nGRbxRERERER6hkU8EREREZGeYRFPRERERKRnWMQTEREREekZFvFERERERHqGRTwRERERkZ5hEU9E\nREREpGdYxBMRERER6Zl3uohPSriDrKwstbfPyMhQe9usrCwkJdzRJiwiIiIioreiLO0AdElIClRe\n0Eln/SeO36GzvomIiIiICvNOz8QTEREREb2LWMQTEREREekZFvFERERERHqGRTwRERERkZ5hEU9E\nREREpGdYxBMRERER6RkW8UREREREeoZFPBEREem1gIAAKBQKLFq0CACQlpYGf39/KBQK+Pv7Iy0t\nrZQjJCp+LOKJiIjonSBJEtLS0vDhhx8iMjISTZs2RUREBMzNzUs7NKJixyKeiIiI3glpaWno0KED\njh49Cl9fX+zevVsu4J8+fYpVq1ahbdu2qFKlCiZOnIhLly4BANatWweFQoG2bdvKfW3cuDFfG1FZ\nwiKeiIiI3gnffvstDh8+jEaNGmHPnj2wsLCQ140ZMwaDBg1CRkYG/P39sWzZMjRt2hSZmZno1q0b\nbG1tcfDgQSQnJwMAduzYAQDo27dvqeRC9CYs4omIiOidkJGRAQAYMmQILC0t5fa0tDRs2bIFJiYm\naNCgAezs7ODi4oLHjx9j27ZtMDY2Rt++fZGdnY3169cjJycHERERMDU1RdeuXUsrHaIisYgnIiKi\nd0K1atUAACNGjMC2bdvk9qNHjyItLQ3Pnz/H4sWLsXjxYly6dAmSJGHnzp0AgJCQEADA2rVrcfjw\nYTx58gQdOnRQmc0nKkuUJTHI9u3bER8fD3Nzc4wcORIA8OLFC4SHhyMpKQkODg7o2rUrjI2NAQBR\nUVE4efIkFAoFgoKC4OLiAgC4f/8+tm7diufPn6NOnTpo2bJlSYRPREREemDUqFFITEzE3Llz0atX\nL2zduhUdOnSAv78/zM3NoVQqcevWLXmW/vnz53jy5AkAoG7duvD29kZsbCzmzJkDAOjTp0+p5UL0\nJiUyE+/l5YV+/fqptEVHR8Pa2hqjR4+GlZUVYmJiAACpqamIjo5GcHAwOnTogIiICHmfPXv24P33\n38fQoUNx48YNJCQklET4REREpCfmzJmD8ePHIysrC927d8fu3bthZmaGnj174smTJ6hfvz4GDRqE\nzp07o3KW6PSIAAAgAElEQVTlyti9e7e8b95s/P79+2Fra4sPP/ywtNIgeqMSKeJdXFxgYmKi0paQ\nkAAvLy8olUp4eXnJBXlCQgI8PDxgY2MDV1dXAC9n7QHgwYMHqF27NszMzFCjRg0W8URERARJkiBJ\nkrwcGhqK0aNHIzMzE127dsX+/fuxYMECrFixAu+99x42b96MM2fOoEOHDmjSpIm8X58+fWBmZgYA\n6Nq1KwwNDUs8FyJ1lcjtNAVJTEyEnZ0dAMDOzk4uyO/cuQN7e3t5u/LlyyMhIQHW1tYq73m1t7fH\nuXPn0KhRIwAvXx2Vmppaghm8pFRqdggNDAzU/qWQ17cmY2jSv7aYQ/H2ry1d56DpGNpgDsU/hjY0\n7b8sXhPMQTdjaEOba+JtHTx4MF/bwoULsXDhQpW2gQMHYuDAgYX2Y2lpCT8/P+zbt49vpaEyr9SK\neCFEsfYXGxuLw4cPq7QNHTq0WMcoiK2t7Tsxhq4xh7KBOZQN70IOwLuRB3OgPFFRUdixYwcOHjyI\n5s2bIyAgoLRDIipSqRXxjo6OSElJgYODA1JSUlC5cmUAgJOTE65fvy5vl5KSAkdHRxgbG6vMtN+/\nfx9OTk7ysre3Nzw9PUsugf/v0aNHyM7OVnt7Y2Nj+fagN1EqlbC1tdVoDE361xZzKN7+taXrHDQd\nQxvMofjH0Iam/ZfFa4I5lI0cNB0jL4eyYM+ePQgNDUVAQAAWL15c2uEQvVGpFvFxcXGws7NDXFyc\nXJA7Ojpi7969ePz4MR49egRJkuS31tjZ2eHcuXNwd3fHxYsX8cEHH8j9WVlZwcrKSmWMxMREneeR\nnZ2NrKwstbdXKpUaba/pGNr0rynmoJv+NaXrHLQdQxPMQXdjaELb/svSNcEcykYOJTWGLkybNg3T\npk0r7TCI1FYiRfyWLVtw48YNZGRkYMGCBWjRogV8fHwQHh6OJUuWwMHBAa1atQIAWFhYwMfHB2Fh\nYTAwMEBQUJDcT5s2bRAeHo6//voLtWvXhqOjY0mET0RERERUppRIEd+9e/cC23v37l1gu6+vL3x9\nffO1V6hQAcOHDy/W2IiIiIiI9A2/sZWIiIiISM+wiCciIiIi0jMs4omIiIiI9AyLeCIiIiIiPcMi\nnoiIiIhIz7CIJyIiIiLSMyziiYiIiIj0DIt4IiIiIiI9wyKeiIiIiEjPsIgnIiIiItIzLOKJiIiI\niPQMi3giIiIiIj3DIp6IiIiISM+wiCciIiIqBatWrUKzZs1KOwzSUyziiYiIiDRw48YNKBQKNGjQ\nQKU9JSUFRkZGcHNz03kMT548wahRo1CjRg1YWVmhRo0amD59OtLT03U+tjYGDBiAr7/+Ol97REQE\nmjdvDnt7e1SqVAkffvgh/v7771KIsHQoFApcv35du32LORYiIiKi/wkZGRk4f/68vLxu3Tq4u7tD\nkiSdj9uwYUNcuHABM2bMQEpKCrZv345bt27h6tWrOh27OP3888/o27cvfH19ERUVhfj4eAwaNAgb\nN24s7dBKlBBCq/1YxBMRERFp4eOPP0ZYWJi8vGbNGgQHB6sUZXPmzIGHhwfKly+Pvn374ujRo4X2\nN2HCBDRr1gzPnj1Deno6VqxYgUaNGuH999/H5s2b5X4XLFiAe/fuYe/evejZsyeMjIzg6emJX3/9\nFXXr1gUAXLlyBaNHj0aVKlUwZswYxMfHy+MEBARgzpw5aNu2LRwcHDB+/Hg8fvwYwP99yhAeHo4a\nNWqgbt26WLt2rUqcERER6NixIzw9PfHDDz8gNTVVXnf58mVMmDABTk5OqFKlCsLCwvDzzz9j3bp1\nmDt3LiwtLdGpUyekpqZi0qRJmDBhAr7//ntUrVoVlpaW6N69OxYvXgwAyM7Oxtq1a+Hr64smTZrg\nt99+Q3Z2NgDg0KFDcHJywvLly+Hm5oaaNWviwIEDOHLkCHx8fFCjRg2sW7dOjmv69Ono1asXhgwZ\ngkqVKmHYsGG4ffu2vD4hIQFfffUVXF1dMXDgQMTFxcnrBgwYgPHjx+Ojjz5CxYoVERISgoSEBHl9\nUlISvvnmG3h4eOCjjz7CiRMn1NrX398fAFCvXj1YWlpi8+bNhZ4bBWERT0RERKSFvn37YsOGDRBC\n4MKFC0hNTUXjxo1VtvHw8EBkZCTu3LmDhg0bok+fPvn6EUJgyJAh+Oeff7Bv3z5YWlriq6++wv79\n+7Fp0yYsXboUM2fOxP79+wEAR44cQZs2bWBoaFhobG3atEHFihURFxcHBwcHtGnTRmX9smXLMHHi\nRMTExCAyMhJbt25VWb9p0ybs3bsXoaGhCAkJwfPnzwEAO3fuxOTJkzFlyhQcOnQIUVFRmD17NoCX\nRbefnx/s7e1x7tw5nD59GvXr18eQIUPQt29fTJo0Cc+ePcOOHTtw7tw5PH78GB07diw0hzVr1mDe\nvHn48ccfsXTpUoSGhqr8QXHv3j1cuHABMTEx6NOnD/r27YtFixZhw4YNWLZsGYYOHYqsrCx5+/Dw\ncLz33ns4d+4cTE1N0bNnT3ldnz598OTJE0RHR6NZs2YICAiQcwaAFStWoFevXjh//jzu3r2L5cuX\ny+vat28PpVKJmJgYBAcHo127dkhLS3vjvkeOHAEAnD17Fs+ePUOPHj0KPRYFYRFPREREpAUnJyd4\nenpi3759WL16NYKDg/Nt0717d1SqVAmmpqYYO3YsJElCbGysvD4rKwu9evXC48eP8fvvv8PExARC\nCGzbtg1z586Fq6sr6tWrh8GDB2P79u0AgDt37qBp06aFxhUXF4fMzEx8+eWXKF++PCZPnoysrCx5\ndlmSJHTu3BktW7aEo6Mjunbtin379qn0MXHiRDg7O6NNmzZwdXXF4cOHAQAbN27EpEmT4OvrCwcH\nB3zxxRdyXPv27YOTkxMmTpwIW1tblCtXDvXq1ZP7fPUTitu3b8PS0hK1atUqNI/t27dj1KhRaNiw\nIRo0aIBRo0Zh27Zt8vrc3FxMmzYN5cuXx8CBA3H37l0MGDAAVatWRYsWLVC5cmUcO3ZM3t7BwQGf\nffYZ7O3tMWvWLJw+fRopKSlISUlBdHQ05syZA3t7ewwaNAh16tRBRESEvG/z5s3RpUsX2NnZoW/f\nvvLxio+PR3p6Or744gvY2Nigffv2aN68Of7888837vu2lMXSCxEREVEpeXbjEsSjZK33l2wrwdL1\nPc33kyQEBwdj5cqVOH78OCIjI3Hp0iWVbXbu3IlVq1YhKioKGRkZSE1NxdmzZ+Ht7Q0AuHr1Ks6e\nPYsTJ05AqXxZll26dAm3bt2Sb40BXhaseQ/MOjs749ixYxg3blyBcf3999/5Hrpt2LAhIiMj4eXl\nBQCoX7++vK5SpUoqt4e8vt7BwUFev3//fvzxxx8YNWqUvD4zMxN3797FwYMHi/zj4lXOzs549uwZ\nzp8/X2ghf+zYMUydOlVe9vb2xsSJE1XiKl++PACgYsWKAKDyR0PFihVV8nr1eJqbm6Nq1ao4ceIE\nhBBwd3eHubm5vD7veHXp0gWSJBV6vPbv349///0Xtra28vqcnBw4OzujR48eRe77tljEExERkV4T\nj5Jh9dsErfd/2nceoEURDwBdu3bFJ598goYNG8LJyUmliE9LS8OQIUPw008/YdWqVbC0tISbm5vK\njHSNGjUwatQotGvXDgcOHED16tXh6ekJJycnREVFwcHBId+Y/v7++P7775GVlVXgLTXvv/8+vvvu\nO5W22NhYTJ8+XascXxUYGIguXbqo3Iry6rpJkyYVuJ+BgYFK3rVr14atrS127txZaBHv5+eHmJgY\n+Q+emJgY+T5ybZw5c0b+79TUVFy7dk2+/en69etIS0uTC/no6GhMmPB/51RhD5+2aNECVatWxYUL\nFwodt6gHVxUKBR9sJSIiIipp5ubmOHjwIH755Zd86549e4bU1FQ4ODggNzcXs2fPRmJiYr7tevXq\nhe+++w6tWrXC9evXoVAo8NFHH2HSpEm4ePEicnNzce3aNfke6vHjx6NixYr44IMPsGXLFrx48QLx\n8fEYOnQozp07h/r168PIyAizZ89GSkoK5s6dC6VSqTIjrG3h+PHHH2Pu3LmIjIxETk4O7t+/j507\ndwIAWrVqhcTERISGhuLhw4d48OCBXDh7e3vj7Nmz8oOplpaW+P777zF//nxMmTIF165dw9OnT7Ft\n2zaMGTMGANCpUycsX74csbGxiIuLw/Lly9G5c2et4gaA5ORk/PDDD7h//z6mTp0KLy8v2NnZwc7O\nDj4+PpgyZQru3buHVatW4fz582jbtu0bj9V7770HCwsLhIaGIjk5GVlZWYiOjpb/mHvTcfb29kZM\nTIxW+bCIJyIiItLQq6+RbNCggcq74fPWVapUCbNnz8bHH3+MevXqITMzE++//77KdnnbBgcHY+rU\nqQgMDMStW7cwffp0tGjRAiNGjEC5cuXQo0cPJCe/vGXIxMQEMTExqFGjBr766ivY2dmhY8eOcHZ2\nhoeHBwBg9+7dSEhIgJeXF27fvo3du3cXGv+rcby+7nXt2rXDzJkz8eOPP8Le3h5NmjTByZMnAQBK\npRJHjx5FQkICatWqBS8vL5w9exYA0LFjRygUCvkefAAICQnB2rVr8ffff6Nx48aoXr06fv31V/Tu\n3RsA0K9fP4wbNw4jR47EiBEjMHbsWPTt27fQOIuKW5IkdOvWDRcuXEDt2rWRmpqKDRs2yOt/++03\nmJmZwcfHB4cOHcJff/0FU1PTAo/P62Nt374dWVlZaNmypfycQGZmplr7fv755wgNDYWtrS22bNlS\naPwF5iS0/VNMDyQmJqLygk6663/8DhgaGqo8+fwmpqamyMjIUGtbQ0ND2Nvb4/79+2qPoUn/2mIO\nxdu/tnSdg6ZjaIM5FP8Y2tC0/7J4TTCHspGDpmPk5fC2nsYdeuvbaay8At46Diq7ZsyYgatXr2LN\nmjWlHUqx4T3xREREpNck20ov72t/i/3p3fYuzlmziCciIiK9Zun6ntYPptL/hoJua9F3LOKJiIiI\n6J02bdq00g6h2PHBViIiIiIiPcMinoiIiIhIz7CIJyIiIiLSMyziiYiIiIj0DIt4IiIiIiI9w7fT\nvCVDQ0MoleofRoVCIX8D2JtIkoT09HSNxtCkf20xh+LtX1u6zkHTMbTBHIp/DG1o2n9ZvCaYQ9nI\nQdMx3rVX/hGVJBbxbykrK0un39hqY2ODtLQ0vf42PuagG7rOQdMxtMEcin8MbWjzTaFl7ZpgDmUj\nB03HMDQ01GksRO8y3k5DRERERKRnWMQTEREREekZFvFERERERHqGRTwRERERkZ5hEU9EREREpGdY\nxBMRERER6RkW8UREREREeoZFPBERERGRnmERT0RERESkZ1jEExERERHpGRbxRERERER6hkU8ERER\nEZGeYRFPRERERKRnWMQTEREREekZFvFERERERHqGRTwRERERkZ5hEU9EREREpGdYxBMRERER6RkW\n8UREREREeoZFPBERERGRnmERT0RERESkZ1jEExERERHpGRbxRERERER6hkU8EREREZGeYRFPRERE\nRKRnWMQTEREREekZFvFERERERHqGRTwRERERkZ5hEU9EREREpGdYxBMRERER6RkW8UREREREekZZ\n2gHExsYiLi4OOTk5qFKlCtq1a4cXL14gPDwcSUlJcHBwQNeuXWFsbAwAiIqKwsmTJ6FQKBAUFAQX\nF5dSzoCIiIiIqGSV6kx8eno6jh49iuDgYAwZMgQPHjzA1atXER0dDWtra4wePRpWVlaIiYkBAKSm\npiI6OhrBwcHo0KEDIiIiSjN8IiIiIqJSUapFvKGhIYQQeP78ObKzs5GVlQUTExMkJCTAy8sLSqUS\nXl5eSEhIAAAkJCTAw8MDNjY2cHV1BQC8ePGiFDMgIiIiIip5pXo7jaGhITp06ICFCxdCqVSicePG\ncHJyQmJiIuzs7AAAdnZ2chF/584d2Nvby/uXL18eCQkJcHd3x9OnT5GamlriOSiVmh1CAwMDGBoa\n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\nffpoxIgRrd4LEM7aZIgHAAAA2rI2t5wGAAAAaOsI8QAAAIBhCPEAAACAYQjxAAAAgGEI8QAAAIBh\nCPEAAACAYQjxQBjp06ePPvnkk1BPAyFy8uRJZWdnq66uLqB1Z8yYoYULFwa0JgAgtAjxQCvq0KGD\nYmNjFRsbK7vdrvbt23tuv/nmm9qxY4euvfbaoM9j5syZioyMVGxsrBITE3XLLbfoww8/9Pr+mZmZ\nWr16dRBneOHsdnuzxzs2NlZPPvlkUMdcsGCBrrnmGr/v/8ILL+gXv/iF5y9PB8qMGTP0xBNPBLQm\nACC0HKGeAPBjcuZPqEtS9+7d9corr2j48OGtPg+bzaYJEybo1Vdf1alTp7Ro0SLdeeed2rt3r+z2\n87+2t9lsMuHvxG3btk1ZWVmhnoZXTp06pWeeeUafffZZwGv37t1bycnJeu+99zRmzJiA1wcAtD7O\nxANh5LtnuGfOnKkJEybo7rvvVqdOnXTttdfq0KFDmj17trKzszV8+HBt2rTJc9/a2lq98soruuKK\nK3T11Vfr7bffPmfQtizL87V27drp9ttvV3l5ub766ivPPtu2bdNdd92lrl276ne/+50OHDggSfrl\nL3+pAwcOaMyYMYqNjdUTTzyhO+64Q0899ZQkyel0ym6364UXXpAkFRcXKykp6bx1JamiokJPP/20\nLr30Uo0aNUqrVq3yfO3M43HPPfeoS5cuGjdunHbt2uXzY1xWVqb27duroqLCs62wsFApKSlqbGyU\nJK1bt06TJk1S9+7d9de//lXl5eWefe12uxYtWqQBAwYoOztbs2bNkiTt2rVL06dP12effeZ5h+NM\nrVGjRikxMVEZGRn617/+ddZ5ffXVV2pqavL8yXlJuu666/TYY4/phhtuUEpKim6//Xa53W7ddddd\nSktL05QpU3To0CHP/o8//rgGDBigjh07ql+/fs2+n4MHDw77d08AAN4jxANhxGazNbudn5+vK664\nQrt27VJCQoKuv/567dmzRxs3btTw4cP1xz/+0bPvn/70J3344YdasmSJZs+erb/97W9eLZGpq6vT\nyy+/rJiYGPXu3VuSdPz4cV133XUaNWqUduzYoeTkZE2YMEGS9Nprr6lr164qKCjQyZMn9fvf/15D\nhw7Vxx9/LElas2aNsrKyPGv716xZ41ki1FJdSZo6dar27dun1atX6+GHH9aUKVO0Z8+eZo9H//79\ntWvXLnXs2FF///vfW+ztbC9i0tLSNGTIEC1btsyz7Y033tDYsWMVERGhbdu2acKECZoyZYo+//xz\nHT9+XL/97W+b1Zg/f77eeustLVmyRI8++qiKi4t1ySWXaO7cuRoyZIhOnjypb7/9VpJ0//336ze/\n+Y3nRdK53nn5+uuv1aNHjx9sf/HFF/XnP/9ZGzdu1Nq1a5WTk6Mrr7xS27dv17fffquXX35Z0ukX\nAQsWLNB//vMfVVZW6u2332724ik7O1s7d+5s8fECAJiDEA+EsV69eumOO+5QUlKSxo0bp6KiIj36\n6KNKSkrSlClTtH79etXX18uyLC1fvlz//Oc/lZmZqf79+2vq1Kl65513zll7yZIlSkhIUGJiou65\n5x7Nnz9fERERkk6H5VtvvVU33XST4uLi9OCDD2rPnj06evToWWtde+21WrdunSzL0tq1a/Xggw/q\n008/lXQ6xA8dOvS8dU+ePKkNGzbo8ccfV+fOnXXNNddo7NixWr58uWecnj176te//rUSEhI0derU\n875IGThwoBISEjz//vvf/0qSJk6cqDfffFPS6aC/ePFiTZw4UZK0ePFiTZ8+XSNGjFBCQoIeffRR\nrVq1ynOWXjq9xrxXr14aOHCgrrzySk/ds71oaGpqUnFxsaqqqtSxY0fl5OScda4HDx5UWlpas202\nm0033XSThg4dqqysLI0YMUJRUVGaPHmykpKSNH78eH300UeSpMbGRtXV1amoqEhNTU3q2bOnunTp\n4qmVnp6u/fv3t/h4AQDMQYgHwli/fv08/+/cubMyMjIUHx/vuV1fX6/jx4/r66+/1oEDB9SvXz9P\nYH300Uc9Qfpsxo8fr4qKCrlcLq1fv17Tp09Xfn6+JOnDDz/UokWLPLWSk5PlcrnOeeWcHj16KCYm\nRl988YXWrl2r0aNHKy0tTd98840++eQTT4hvqe66det07NgxpaWleb4+f/58rVu3zjNO//79Pf/v\n0qWLjhw5oqampnP2WFhYqIqKCs+/G264QZKUl5enzz77TIcPH9Ynn3wiu92uq6++2jPHxx57zDOH\n7Oxs1dTU6PPPP/fUHTBggOf/qampcjqd55zDq6++qi+//FJZWVkaO3asvvzyy7Pul5mZqbKysh9s\n/27PnTt3bvac6NSpk2fsfv366f/+7//0hz/8Qenp6XrkkUdUU1Pj2be0tLTZUh0AgNn4YCvQBvTs\n2VMZGRnasGGDUlNTz7v/dz+YarPZdNlll2nkyJFavny58vLyNHz4cCUmJmrOnDlnvX9ERMQPqQHd\nUgAAAylJREFUzjoPHTpUb7/9ttxut9LS0jR06FAtWLBAFRUVntDbUt0TJ04oJSVFJSUlateu3Vnn\nHCgJCQm68cYbtXjxYu3cubPZkp7hw4crLy9PDz30kNf1zsztbI/LpZdeqldffVX19fX6xz/+oTvv\nvFObN2/+QY1evXqpuLjYz45OmzRpkiZNmqT9+/dr/Pjx6ty5s2bMmCFJ2rNnj2e5FADAfJyJB9oA\nu92u8ePH66GHHtKuXbs8SzjOdeb8u0HTsix98cUX+uCDDzR69GhJ0rhx45Sfn6933nlHLpdLLpdL\nK1as8FxdJzc3V1u3bm1Wc+jQoXr++ec969+vu+46Pf/887rmmms8IXf8+PHnrBsfH6+rr75aDz/8\nsPbv36/Gxkbt2LFDW7Zs+cGcvdXSfSZOnKiFCxdq2bJlnqU00ukP7r744otatWqVTp065Vlf3tIY\nZ8bJzc1VUVGR53Fyu91atGiRKisrJclzSdGzueSSSxQREfGDJS/f/16dy5YtW7Rx40a53W5FR0fL\n4XA0G2vTpk0huRISACA4CPFAmLLZbD84+9zS7ZkzZ2rYsGGaPn26EhMTNXbsWB0+fPictRcvXqzY\n2FjFxcXp7rvv1tSpUzV27FhJp89Ur1y5Uv/73//0k5/8RBdffLFeffVVz/3vuusuFRQUKDEx0XNV\nmmuvvVbV1dWeEH/VVVeptra22XXv4+PjW6w7d+5cdevWTbfeeqtSUlI0bdo0VVVVef14fF///v2b\nXSf+gQce8Hzt5z//ufbs2aPU1FT17dvXs713795auHChlixZooyMDPXt21crV64855jfnVfv3r11\n880369JLL1WnTp0kSa+//rq6d++url27auPGjXr66afPOtfIyEjdf//9mj179jl7bOkxqKqq0rRp\n05SYmKhhw4bpiiuu0G233SZJ2rlzp44ePcrlJQGgDbFZJlzsGQB+BKqrqzVgwADt2LEjoH/wacaM\nGRo0aJAmT54csJoAgNAixAMAAACGYTkNAAAAYBhCPAAAAGAYQjwAAABgGEI8AAAAYBhCPAAAAGAY\nQjwAAABgGEI8AAAAYJj/B4DI5UjuCWVeAAAAAElFTkSuQmCC\n", "text": [ "" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n" ] } ], "prompt_number": 19 }, { "cell_type": "code", "collapsed": false, "input": [ "len(connections[connections.delta1 <= 1000]) # 1744 events" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 20, "text": [ "1744" ] } ], "prompt_number": 20 }, { "cell_type": "code", "collapsed": false, "input": [ "columns = ['timestamp', 'key']\n", "ms.groupby('key').count().sort(columns=['timestamp'], ascending=False)[columns]" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
timestampkey
key
MakeConnectComponent 2609 2609
MakeSnapshot 2086 2086
MakeDisconnectComponent 943 943
MakeAddComponent 891 891
MakeRemoveComponent 840 840
MakeCircuitCreated 229 229
MakeResetBoard 211 211
MakeSpawnFish 161 161
MakeCaptureFish 136 136
MakeEndGame 100 100
MakeSummonBoard 96 96
MakeStartGame 92 92
MakeModeChange 45 45
MakeVisabilityChange 43 43
ADAGEStartSession 23 23
\n", "

15 rows \u00d7 2 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 21, "text": [ " timestamp key\n", "key \n", "MakeConnectComponent 2609 2609\n", "MakeSnapshot 2086 2086\n", "MakeDisconnectComponent 943 943\n", "MakeAddComponent 891 891\n", "MakeRemoveComponent 840 840\n", "MakeCircuitCreated 229 229\n", "MakeResetBoard 211 211\n", "MakeSpawnFish 161 161\n", "MakeCaptureFish 136 136\n", "MakeEndGame 100 100\n", "MakeSummonBoard 96 96\n", "MakeStartGame 92 92\n", "MakeModeChange 45 45\n", "MakeVisabilityChange 43 43\n", "ADAGEStartSession 23 23\n", "\n", "[15 rows x 2 columns]" ] } ], "prompt_number": 21 }, { "cell_type": "code", "collapsed": false, "input": [ "# We can also see what this looks like as a plot\n", "msdata = ms.groupby('key').count().sort(columns=['timestamp', 'key'], ascending=False)\n", "p = msdata['timestamp'].plot(kind='bar')\n", "print(p)\n", "pl.savefig(\"barChart.jpg\", \n", " dpi=300, \n", " figsize=(8, 11),\n", " bbox_inches='tight')\n", "\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Axes(0.125,0.125;0.775x0.775)\n" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\njEWeOowuc5rMZa7OuSzyREQ+jEWeOowuc5rMZa7OuSzyREQ+jEWeOowuc5rMZa7Oue3a4/Wdd96B\n1WpFUFAQxo4di7i4OJSXlyM3NxeGYWDy5MmIiYkBgGaPExGRvHZdyVssFsybNw9LlixBXFwcAGDD\nhg2YPn06ZsyYgU2bNrm+t7njRLrMaTKXuTrntutKHgAMw3D93mazISAgAKGhoa5jtbW1cDqdbo8H\nBQW1968lIqI2aFeR79atG1avXo0BAwbg+eefR3V1Nfr27Yvs7GwAQFhYGKxWKwzDcHs8NjZW0fBJ\nZ7rMaTKXuTrntmu6ZubMmVi+fDkee+wxbNu2DVFRUaisrERiYiJ+9atfoaKiAlFRUc0eb0nDtyqF\nhYVK37o0zbt+/bpHedevX+d4G2iax8d8zMfee9wci9Fw3qWNTp8+jf3792PatGlIS0vD7Nmz4XQ6\nkZmZiUWLFgFAs8fdycvLw4gRI+44ftRajQWfftfeYeJPz9yHh6J6M9fLuXdTWFgocjXEXOb6W+6R\nI0cwbtw4t19r13TN+++/jytXriAsLAxTpkwBACQmJiIrKwsWiwXTpk1zfW9zx4mISF67ivzvfve7\nO44NGjQI8+fPb/VxIl3mNJnLXJ1z+WEoIiIfxiJPHUblTV/mMpe57rHIExH5MBZ56jC6zGkyl7k6\n57LIExH5MBZ56jC6zGkyl7k657LIExH5MBZ56jC6zGkyl7k657LIExH5MBZ56jC6zGkyl7k657LI\nExH5MBZ56jC6zGkyl7k657LIExH5MBZ56jC6zGkyl7k657LIExH5MBZ56jC6zGkyl7k657LIExH5\nMBZ5EnPxhh1HrdXN/tp3srzFr1+8YW/X36vLXClzmeuN3HZt/0fUGldu1rZig/Dvm/3Kn565D5F9\ngu84fvGGHVdu1jb755zhsThqrW726xG9gtzmEvkiFnnSjtSLx93oMgfLXOY2xOkaIiIfxiJP1Eq6\nzMEyl7kNcbqG6P/jXD/5IhZ5ov+Pc/3M9cVcFnkiYXd7h3A3fIdAnmCRJxLWuncIzWvvO4TCwkKR\nq03m6pXLIk+kKYl7CK1518F7E3phkSfSlMQ9hNa/62hbbmtePHrf+5DIi4cuc+dSuSzyRCTO0ykr\noP3TVv7Oa33y5eXlyMjIwMqVK1FeXu6tv5aI/Jwu/exSuV67kt+wYQOSkpIAAGvXrsXChQu99VcT\n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\n", "text": [ "" ] } ], "prompt_number": 22 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## How many components are in the component lists of disconnect events\n", "\n", "From our meeting on 2014-05-30 Allison confirmed that `MakeConnectComponet` always generates a `component_list` of the two blocks being connected.\n", "\n", "Matthew also said that every time a connection is established between blocks A and B, it generates two `MakeConnectComponent` events:\n", "\n", "- A connecting to B and\n", "- B connecting to A\n", "\n", "So, I tried investigating whether all `MakeDisconnectComponent` events generate a `component_list` with just two components.\n", "\n", "But, my first query below failed, because it seems some events have null values for `component_list`:\n", "\n", "```\n", "(ms[ms.key == 'MakeDisconnectComponent']['component_list']).apply(lambda x: len(x))\n", "```\n", "\n", "So, let's try another tactic. First, we'll create a filter that returns null values for component_lists." ] }, { "cell_type": "code", "collapsed": false, "input": [ "nullComponentLists = pd.isnull(ms['component_list'])\n", "ms[nullComponentLists][ms.key == 'MakeDisconnectComponent'][['key', 'component_list']]" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stderr", "text": [ "/Users/briandanielak/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/pandas/core/frame.py:1686: UserWarning: Boolean Series key will be reindexed to match DataFrame index.\n", " \"DataFrame index.\", UserWarning)\n" ] }, { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
keycomponent_list
980 MakeDisconnectComponent None
1154 MakeDisconnectComponent None
1252 MakeDisconnectComponent None
1274 MakeDisconnectComponent None
2958 MakeDisconnectComponent None
3018 MakeDisconnectComponent None
3200 MakeDisconnectComponent None
3262 MakeDisconnectComponent None
3304 MakeDisconnectComponent None
4473 MakeDisconnectComponent None
7228 MakeDisconnectComponent None
\n", "

11 rows \u00d7 2 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 23, "text": [ " key component_list\n", "980 MakeDisconnectComponent None\n", "1154 MakeDisconnectComponent None\n", "1252 MakeDisconnectComponent None\n", "1274 MakeDisconnectComponent None\n", "2958 MakeDisconnectComponent None\n", "3018 MakeDisconnectComponent None\n", "3200 MakeDisconnectComponent None\n", "3262 MakeDisconnectComponent None\n", "3304 MakeDisconnectComponent None\n", "4473 MakeDisconnectComponent None\n", "7228 MakeDisconnectComponent None\n", "\n", "[11 rows x 2 columns]" ] } ], "prompt_number": 23 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Event 980 is the first disconnect event where there is no `component_list`, so let's check out what's happening in the neighborhood of that event" ] }, { "cell_type": "code", "collapsed": false, "input": [ "ms[970:986][['key', 'timestamp']]" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
keytimestamp
970 MakeConnectComponent 1400003097166
971 MakeDisconnectComponent 1400003098417
972 MakeCaptureFish 1400003098417
973 MakeDisconnectComponent 1400003098433
974 MakeConnectComponent 1400003098966
975 MakeCircuitCreated 1400003098966
976 MakeConnectComponent 1400003098966
977 MakeConnectComponent 1400003099232
978 MakeSpawnFish 1400003099634
979 MakeSnapshot 1400003100748
980 MakeDisconnectComponent 1400003101299
981 MakeCaptureFish 1400003101299
982 MakeDisconnectComponent 1400003101299
983 MakeDisconnectComponent 1400003101314
984 MakeSnapshot 1400003105748
985 MakeConnectComponent 1400003107948
\n", "

16 rows \u00d7 2 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 24, "text": [ " key timestamp\n", "970 MakeConnectComponent 1400003097166\n", "971 MakeDisconnectComponent 1400003098417\n", "972 MakeCaptureFish 1400003098417\n", "973 MakeDisconnectComponent 1400003098433\n", "974 MakeConnectComponent 1400003098966\n", "975 MakeCircuitCreated 1400003098966\n", "976 MakeConnectComponent 1400003098966\n", "977 MakeConnectComponent 1400003099232\n", "978 MakeSpawnFish 1400003099634\n", "979 MakeSnapshot 1400003100748\n", "980 MakeDisconnectComponent 1400003101299\n", "981 MakeCaptureFish 1400003101299\n", "982 MakeDisconnectComponent 1400003101299\n", "983 MakeDisconnectComponent 1400003101314\n", "984 MakeSnapshot 1400003105748\n", "985 MakeConnectComponent 1400003107948\n", "\n", "[16 rows x 2 columns]" ] } ], "prompt_number": 24 }, { "cell_type": "markdown", "metadata": {}, "source": [ "So, it looks like events 980, 981, and 982 all share the exact same timestamp (down to the millisecond), with one final disconnection event happening only about 15ms later." ] }, { "cell_type": "code", "collapsed": false, "input": [ "ms[980:984][['key', 'timestamp', 'delta1']]" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
keytimestampdelta1
980 MakeDisconnectComponent 1400003101299 551
981 MakeCaptureFish 1400003101299 0
982 MakeDisconnectComponent 1400003101299 0
983 MakeDisconnectComponent 1400003101314 15
\n", "

4 rows \u00d7 3 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 25, "text": [ " key timestamp delta1\n", "980 MakeDisconnectComponent 1400003101299 551\n", "981 MakeCaptureFish 1400003101299 0\n", "982 MakeDisconnectComponent 1400003101299 0\n", "983 MakeDisconnectComponent 1400003101314 15\n", "\n", "[4 rows x 3 columns]" ] } ], "prompt_number": 25 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can try to interrogate what's happening by looking at the component lists. First, let's look inside the circuit that was created at event 975. I'm calling `list()` on it because I kind of don't understand how else to get pandas to get me the output format I need to inspect :-)" ] }, { "cell_type": "code", "collapsed": false, "input": [ "list(ms[975:978].component_list)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 26, "text": [ "[[{u'current_flowing': True,\n", " u'marker_id': 2,\n", " u'negative_terminal': 19,\n", " u'positive_terminal': 27,\n", " u'theta': 30.2151107788086,\n", " u'type': u'BATTERY',\n", " u'x': 376.921844482422,\n", " u'y': 292.583557128906},\n", " {u'current_flowing': True,\n", " u'marker_id': 27,\n", " u'negative_terminal': 2,\n", " u'positive_terminal': 19,\n", " u'theta': 14.361967086792,\n", " u'type': u'LED',\n", " u'x': 505.863616943359,\n", " u'y': 337.244506835938},\n", " {u'current_flowing': True,\n", " u'marker_id': 19,\n", " u'negative_terminal': 27,\n", " u'positive_terminal': 2,\n", " u'theta': 262.492034912109,\n", " u'type': u'RESISTOR',\n", " u'x': 712.927917480469,\n", " u'y': 163.924194335938}],\n", " [{u'current_flowing': True,\n", " u'marker_id': 2,\n", " u'negative_terminal': 19,\n", " u'positive_terminal': 27,\n", " u'theta': 30.2151107788086,\n", " u'type': u'BATTERY',\n", " u'x': 376.921844482422,\n", " u'y': 292.583557128906},\n", " {u'current_flowing': True,\n", " u'marker_id': 27,\n", " u'negative_terminal': 2,\n", " u'positive_terminal': 19,\n", " u'theta': 14.361967086792,\n", " u'type': u'LED',\n", " u'x': 505.863616943359,\n", " u'y': 337.244506835938}],\n", " [{u'current_flowing': True,\n", " u'marker_id': 27,\n", " u'negative_terminal': 2,\n", " u'positive_terminal': 19,\n", " u'theta': 14.1408853530884,\n", " u'type': u'LED',\n", " u'x': 509.764862060547,\n", " u'y': 342.452362060547},\n", " {u'current_flowing': True,\n", " u'marker_id': 2,\n", " u'negative_terminal': 19,\n", " u'positive_terminal': 27,\n", " u'theta': 16.4315128326416,\n", " u'type': u'BATTERY',\n", " u'x': 409.187103271484,\n", " u'y': 336.581115722656}]]" ] } ], "prompt_number": 26 }, { "cell_type": "markdown", "metadata": {}, "source": [ "So, the circuit is a 3-block circuit. It has:\n", "\n", "- A battery (block id 2)\n", "- A resistor (block id 19)\n", "- An LED (block id 27)\n", "\n", "After a fish hits that circuit, it fries all the virtual wires (because the fish are biolectric), so we should expect to see 3 disconnect events:\n", "\n", "- Disconnecting the battery and resistor (2-19)\n", "- Disconnecting the battery and the LED (2-27)\n", "- Disconnecting the battery and the LED (19-27)" ] }, { "cell_type": "code", "collapsed": false, "input": [ "list(ms[980:984].component_list)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 27, "text": [ "[None,\n", " [{u'current_flowing': True,\n", " u'marker_id': 28,\n", " u'negative_terminal': 31,\n", " u'positive_terminal': 6,\n", " u'theta': 222.557052612305,\n", " u'type': u'LED',\n", " u'x': 284.760711669922,\n", " u'y': -138.952453613281}],\n", " [{u'current_flowing': True,\n", " u'marker_id': 6,\n", " u'negative_terminal': -1,\n", " u'positive_terminal': 31,\n", " u'theta': 277.101806640625,\n", " u'type': u'BATTERY',\n", " u'x': 271.590301513672,\n", " u'y': -393.121185302734}],\n", " [{u'current_flowing': True,\n", " u'marker_id': 6,\n", " u'negative_terminal': -1,\n", " u'positive_terminal': 31,\n", " u'theta': 277.101806640625,\n", " u'type': u'BATTERY',\n", " u'x': 271.590301513672,\n", " u'y': -393.123443603516}]]" ] } ], "prompt_number": 27 }, { "cell_type": "code", "collapsed": false, "input": [ "ms[980:984].timestamp" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 28, "text": [ "980 1400003101299\n", "981 1400003101299\n", "982 1400003101299\n", "983 1400003101314\n", "Name: timestamp, dtype: int64" ] } ], "prompt_number": 28 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 28 } ], "metadata": {} } ] }