{ "metadata": { "name": "", "signature": "sha256:39406d93675dfb9918f6ba53457c729af7a29ad794c888cdbab1c37a34f2811a" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### Plotting counting processes with IPython, Pandas and ggplot" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import pandas as pd" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Generate the commit dates from the OpenStack Neutron project in reverse chronological order:\n", "```\n", "$ git clone https://github.com/openstack/neutron.git\n", "$ cd neutron\n", "$ git log --pretty=format:'%cd' > commits.txt\n", "```" ] }, { "cell_type": "code", "collapsed": false, "input": [ "df_raw = pd.read_table('commits.txt', names=[\"Date\"])" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "# The dates aren't strictly reverse chronological order for earlier\n", "# commits for some reason, so we just sort them here\n", "# We keep them in reverse order to demonstrate flipping the data later\n", "dates = sorted(pd.to_datetime(df_raw[\"Date\"]), reverse=True)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "# Create a time series where the indexes are chronological,\n", "# and the values are just 1\n", "# Here we do the flip with the ::-1 indexing\n", "ts = pd.Series(1, index=dates[::-1])" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "# Create a data frame with the cumulative\n", "df = pd.DataFrame(ts.cumsum(), columns=[\"Count\"])\n", "# We want \"Date\" to be a column instead of the index so we can plot it\n", "# See http://stackoverflow.com/a/24374962/742\n", "dt = df.index\n", "df['Date'] = dt\n", "df = df.reset_index(drop=True)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "from ggplot import *\n", "%matplotlib inline\n", "p = ggplot(aes(x='Date',y='Count'), data=df) + \\\n", "geom_point() + ylab(\"Cumulative # of commits\") + \\\n", "ggtitle(\"Neutron commits\")" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "# Show it inline\n", "p" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\noaFBKSkpcjqdamhoCDh+9BOv48ePV05OTsC8Xq/3uKfYhJvD4VBzc7Olc3YmLi5OLpdL9fX1/ue4\nRwvyMoe8zCEvc8jLHPIyJ9ryiuaspN6Z16BBg7o2d5eu6mEDBw7U6tWr1dLSori4OJWXl8vtdis+\nPl4lJSXKy8vTxo0b/Y+AzMnJ0YoVKzRp0iR5PB7V1dXJ7XbLMAw5HA5VVFTI7XarpKREEydOlHRk\nycEXlxRUVVWppaXF0vcaFxdn+Zyham1tjbrayMsc8jKHvMwhL3PIy5xozSsas5LI61hR0cwOHTpU\nY8eO1Z/+9CcZhqGTTz5Z48ePV3Nzs5YtW6b169f7t+aSjjyVJzc3V4sXL5bNZlNhYaF/GUJhYaGK\niorU0tKi7OxsZWdnR/KtAQAAIIyiopmVpLy8POXl5QUc69+/v2bNmnXC8/Pz85Wfn3/c8fT0dM2d\nOzcsNQIAACC6RMXWXAAAAEBX0MwCAAAgZtHMAgAAIGbRzAIAACBm0cwCAAAgZtHMAgAAIGbRzAIA\nACBm0cwCAAAgZtHMAgAAIGbRzAIAACBm0cwCAAAgZtHMAgAAIGbRzAIAACBm0cwCAAAgZtHMAgAA\nIGbRzAIAACBm0cwCAAAgZtHMAgAAIGbRzAIAACBm0cwCAAAgZhk+n88X6SIipba2Vjabtf28zWZT\ne3u7pXN2xjAMJSQkyOv1Ktq+HcjLHPIyh7zMIS9zyMucaMsrmrOSemdeLperS9fFdemqXqK5udny\nORMTE9XU1GT5vMHEx8crNTVVjY2NamlpiXQ5AcjLHPIyh7zMIS9zyMucaMsrmrOSemdeXW1mWWYA\nAACAmEUzCwAAgJhFMwsAAICYRTMLAACAmEUzCwAAgJhFMwsAAICYRTMLAACAmEUzCwAAgJhFMwsA\nAICYRTMLAACAmEUzCwAAgJhFMwsAAICYRTMLAACAmEUzCwAAgJhFMwsAAICYRTMLAACAmEUzCwAA\ngJhFMwsAAICYRTMLAACAmBUX6QIkad++fVq+fLn/6/r6ek2ZMkVnnnmmli9frv379ys1NVVXX321\nEhMTJUlr1qzRhg0bZBiGCgoKlJWVJUmqqqpSUVGRWltblZ2drYKCgoi8JwAAAIRfVNyZHThwoG69\n9VbdeuutuuWWWxQfH6/TTjtNxcXFyszM1MKFC5WZmani4mJJUnV1tUpLSzVv3jxdf/31WrVqlXw+\n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\nzm1zf2NjI2677TY899xzUKvVCAgIgMlk6tAY7rrrLvzwww+t9tFZfn5+Hvl/1BFNTU2SGxvrJQ7r\nJQ7rJQ7rJY5U6yXFWgGs1418LsyqVCpMmTIFa9asgc1mw5AhQ7z+4S8AiI6OxuHDh6HRaPjpfCIi\nIiIX8bkwCwDx8fGIj4/39jCIiIiIyM069lF0IiIiIiIJYJglIiIiItlimCUiIiIi2WKYJSIiIiLZ\nYpglIiIiItlimCUiIiIi2WKYJSIiIiLZYpglIiIiItlimCUiIiIi2WKYJSIiIiLZYpglIiIiItli\nmCUiIiIi2WKYJSIiIiLZYpglIiIiItlimCUiIiIi2WKYJSIiIiLZYpglIiIiItlimCUiIiIi2WKY\nJSIiIiLZYpglIiIiItlSCIIgeHsQ3lJZWQml0rN5XqlUwmazebTPm1EoFPD394fVaoXUpgPrJQ7r\nJQ7rJQ7rJQ7rJY7U6iXlWgG+WS+DwdCh8/w6dJaPsFgsHu9To9GgoaHB4/22R61WIzQ0FPX19Whs\nbPT2cBywXuKwXuKwXuKwXuKwXuJIrV5SrhXgm/XqaJjlYwZEREREJFsMs0REREQkWwyzRERERCRb\nDLNEREREJFsMs0REREQkWwyzRERERCRbDLNEREREJFsMs0REREQkWwyzRERERCRbDLNEREREJFsM\ns0REREQkWwyzRERERCRbDLNEREREJFsMs0REREQkWwyzRERERCRbDLNEREREJFsMs0REREQkWwyz\nRERERCRbDLNEREREJFt+3h7AsWPHsH37dly+fBnz5s1DZGSkfV92djby8vKgUCgwefJkxMXFAQDK\nysqQmpqKpqYmxMfHY/LkyQCApqYmbNq0CRcuXIBGo8GMGTMQGhrqlesiIiIiIvfz+p3Zrl27YubM\nmYiNjXXYXl5ejqNHj2LBggVISUnB5s2bIQgCACA9PR0PPPAAFi1ahMrKShQVFQEADh48CI1Gg0WL\nFuGee+7Bb7/95vHrISIiIiLP8XqYDQ8Px2233dZi+8mTJzFgwACoVCoYDAaEhYXh/PnzqKurg9Vq\nRXR0NABg0KBBKCgosJ9z5513AgD69euH06dPe+5CiIiIiMjjvP6YQVvq6ursgRUA9Ho96urqoFKp\noNfrW2y/fs71fSqVCgEBATCbzQgKCoLJZMKVK1cc+rBardBqtR64mv+nUqmgVqs92ufN+Pn5OfxX\n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\nAABJRU5ErkJggg==\n", "text": [ "" ] }, { "metadata": {}, "output_type": "pyout", "prompt_number": 7, "text": [ "" ] } ], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "# Save it to a file\n", "ggsave(p, \"cumsum.png\")" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stderr", "text": [ "Saving 11.0 x 8.0 in image.\n" ] } ], "prompt_number": 8 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 8 } ], "metadata": {} } ] }