Skip to content

Instantly share code, notes, and snippets.

@sergiobuj
Last active December 26, 2015 02:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sergiobuj/7076810 to your computer and use it in GitHub Desktop.
Save sergiobuj/7076810 to your computer and use it in GitHub Desktop.
Chart cloning 0
Week cat dog fish
2012-01-01 - 2012-01-07 56 92 59
2012-01-08 - 2012-01-14 59 91 56
2012-01-15 - 2012-01-21 55 91 56
2012-01-22 - 2012-01-28 56 89 54
2012-01-29 - 2012-02-04 58 89 55
2012-02-05 - 2012-02-11 60 94 54
2012-02-12 - 2012-02-18 56 98 54
2012-02-19 - 2012-02-25 58 91 58
2012-02-26 - 2012-03-03 59 85 54
2012-03-04 - 2012-03-10 56 86 56
2012-03-11 - 2012-03-17 54 87 54
2012-03-18 - 2012-03-24 54 87 55
2012-03-25 - 2012-03-31 55 86 56
2012-04-01 - 2012-04-07 57 89 59
2012-04-08 - 2012-04-14 54 89 54
2012-04-15 - 2012-04-21 55 91 55
2012-04-22 - 2012-04-28 57 87 56
2012-04-29 - 2012-05-05 61 92 57
2012-05-06 - 2012-05-12 57 91 56
2012-05-13 - 2012-05-19 55 85 57
2012-05-20 - 2012-05-26 54 87 56
2012-05-27 - 2012-06-02 54 88 56
2012-06-03 - 2012-06-09 57 88 56
2012-06-10 - 2012-06-16 55 87 55
2012-06-17 - 2012-06-23 55 88 56
2012-06-24 - 2012-06-30 57 92 57
2012-07-01 - 2012-07-07 55 94 56
2012-07-08 - 2012-07-14 58 94 59
2012-07-15 - 2012-07-21 58 96 57
2012-07-22 - 2012-07-28 58 92 56
2012-07-29 - 2012-08-04 56 93 55
2012-08-05 - 2012-08-11 57 94 55
2012-08-12 - 2012-08-18 58 100 55
2012-08-19 - 2012-08-25 58 99 56
2012-08-26 - 2012-09-01 59 93 54
2012-09-02 - 2012-09-08 59 92 57
2012-09-09 - 2012-09-15 58 93 53
2012-09-16 - 2012-09-22 59 91 52
2012-09-23 - 2012-09-29 61 92 52
2012-09-30 - 2012-10-06 59 91 52
2012-10-07 - 2012-10-13 59 91 51
2012-10-14 - 2012-10-20 58 89 50
2012-10-21 - 2012-10-27 64 88 51
2012-10-28 - 2012-11-03 62 85 47
2012-11-04 - 2012-11-10 57 88 46
2012-11-11 - 2012-11-17 60 89 48
2012-11-18 - 2012-11-24 61 95 48
2012-11-25 - 2012-12-01 64 92 49
2012-12-02 - 2012-12-08 65 89 49
2012-12-09 - 2012-12-15 66 89 48
2012-12-16 - 2012-12-22 63 88 48
2012-12-23 - 2012-12-29 67 97 54
2012-12-30 - 2013-01-05 63 99 58
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": ""
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "heading",
"level": 1,
"metadata": {},
"source": [
"Learning by cloning with matplotlib -3-"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# An article from techpinions.com titled \"When Genuine Data Leads to Disingenuous Conclusions\"\n",
"# shows a graph where they try to show the Android vs iOS market share in the tablet world.\n",
"from IPython.core.display import Image\n",
"Image(url=\"http://techpinions.com/wp-content/uploads/2013/10/Screen-Shot-2013-10-25-at-7.10.08-AM.png\")\n",
"# Image Source: techpinions.com"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<img src=\"http://techpinions.com/wp-content/uploads/2013/10/Screen-Shot-2013-10-25-at-7.10.08-AM.png\"/>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 1,
"text": [
"<IPython.core.display.Image at 0x2d37710>"
]
}
],
"prompt_number": 1
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Source: <a href='http://techpinions.com/when-genuine-data-leads-to-disingenuous-conclusions/24359' target='_blank'>When Genuine Data Leads to Disingenuous Conclusions</a>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Imports are the same as last time\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"\n",
"# I will plot the middle line and then fill the areas above and below with\n",
"# a gradient.\n",
"\n",
"# first! the X and Y axis\n",
"share = [0, 25, 50, 75, 100]\n",
"# I really should start picking graphs without this Quarter in the axis\n",
"# I will be lazy again and compose the quarters like this:\n",
"quarters = ['Q' + qrt + ' \\'' + year for year in ['11','12','13'] for qrt in '1234']\n",
"quarters = quarters[1:-2]\n",
"\n",
"# create the figure\n",
"fig, axis = plt.subplots(figsize=(13.5, 9), dpi=75)\n",
"\n",
"# set the Y ticks and set the limits of the graph\n",
"plt.yticks(share, size=13)\n",
"plt.ylim((0, 100))\n",
"#plt.xlim((0, len(quarters)))\n",
"\n",
"# set the X ticks\n",
"plt.xticks(range(len(quarters)))\n",
"axis.set_xticklabels(quarters, ha='center', size=11)\n",
"from matplotlib.ticker import FormatStrFormatter\n",
"# This is the printf like formatter, I am using it to display the percent sign\n",
"currency_format = FormatStrFormatter('%d%%')\n",
"# ant tell it where to use apply it\n",
"axis.yaxis.set_major_formatter(currency_format)\n",
"\n",
"# clean the spines\n",
"for _spine in axis.spines.values():\n",
" _spine.set_visible(False)\n",
"\n",
"axis.yaxis.set_ticks_position('none') # my good friend ticks position\n",
"axis.xaxis.set_ticks_position('none')\n",
"\n",
"# For this graph I don't have the exact market share value for each quarter,\n",
"# but unlike [Exercise 2], this data could be easily guessed.\n",
"x_range = range(len(quarters))\n",
"ios_share = [60, 68, 53, 56, 58, 38, 35, 37, 29]\n",
"andr_share = [ _ios + 0.5 for _ios in ios_share]\n",
"\n",
"# simple plot with color and label\n",
"plt.plot(x_range, ios_share, color='#247cdf', label='Apple', linewidth=9.5)\n",
"plt.plot(x_range, andr_share, color='#00aa26', label='Android', linewidth=10)\n",
"\n",
"# The linewidth of the plot will be reflected in the legend. In this case, since\n",
"# the graph is filled with color, the width will not be noticeable.\n",
"# This width with the handlelength parameter of the legend will yield squares in the\n",
"# legend.\n",
"\n",
"# The legend\n",
"# using a bbox to set a position and a columnspacing to separate the entries\n",
"# bbox.position, trial and error\n",
"plt.legend(frameon=False, fontsize=13, ncol=2, bbox_to_anchor = (0.75, 1.15),\n",
" columnspacing=14, handlelength=0.5)\n",
"\n",
"# add padding to the x and y\n",
"axis.yaxis.set_tick_params(pad=12)\n",
"axis.xaxis.set_tick_params(pad=10)\n",
"\n",
"# place the copyright mark using LaTeX\n",
"plt.text(7.1, -8, r'$\\copyright$ Tech.pinions', size=10) # position, trial and error\n",
"\n",
"# now the filling, first fill from 0 and second from value to 100\n",
"plt.fill_between(x_range, ios_share, color='#247cdf')\n",
"plt.fill_between(x_range, andr_share, [100 for _100 in x_range], color='#00aa26')\n",
"\n",
"plt.show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAA0AAAAJ1CAYAAADwo5DoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XmYnXV9///XObNlm5kkMwESIAQSFGRJUhYBDYIlQOlX\nY0BbtUUtQorYhUUQ9OcCFETsouJFGxYL/MQv19WCoAaQVovVoghIoVp+qYQACQlLtsk+S+b8/iBM\nGQlbZjkzcz8e1zWXk3Ofc+73OV4z5Jn7/tynVKlUKgEAACiAcrUHAAAAGCwCCAAAKAwBBAAAFIYA\nAgAACkMAAQAAhSGAAACAwhBAAABAYQggAACgMAQQAABQGAIIAAAoDAEEAAAURm21BwDYWX915+o8\ntrLjde+3/+T6/D8ntQzCRK/thhtuyGWXXZbf/OY31R4FBlXpn976hu9b+cDiAZzk1dXW1uZHP/pR\njj766J16/E9+8pO8973vzdq1a1/1PjNmzMjnPve5fPSjH93ZMYF+4AgQMGw9trIjv3iy/XW/3kgk\nvdxll12Wcrmcm266aYAmB/pDf/6slkqlPj1+zpw5rxk/L+2jr/sB+k4AAbxMd3d3rr322syaNSvX\nXHNNtccBXsVg/qx2dLy5f0QBhjYBBPAyP/jBD7J69ep861vfys9+9rP8+te/7tlWLpfzta99LbNn\nz05TU1Pe/e53Z8mSJT3bjznmmJxzzjl5z3vek8bGxhx44IG5++67X3VfXV1dufzyy/PWt741EyZM\nyDvf+c489NBDA/r6YKR4vZ/Vv//7v8/hhx+epqamHHnkkVm8+H9PrduwYUM++tGPpqWlJXvvvXdu\nvPHGXs/9xS9+Me9+97tz/vnnZ7fddsv8+fOTJLfeemtmzpyZ8ePHZ9asWbn99tt7HnPvvfemrq6u\n58+dnZ0599xzs+uuu2by5Mn58pe/PFBvBfAmCSCAl7nmmmty8skn521ve1vmzJmThQsX9tp+7bXX\n5tZbb83zzz+fAw44IO9973tTqVR6tl9//fU5++yz09bWls985jOZP39+nnrqqR3u6wtf+EK+973v\n5Qc/+EHWrFmT0047LSeeeGLWrVs3oK8RRoLX+1m98cYbc9ttt2XVqlXZc8898+d//uc9284+++ws\nWbIkjz32WB555JHccccd2bZtW6/H/+QnP8mUKVOyfPny/PM//3Puu+++/PEf/3GuvPLKrFmzJpdf\nfnk+9KEP5Re/+MUO57viiiuyaNGi/OxnP8vSpUvz1FNPvervAmBwCSCA7VasWJFFixbl1FNPTZKc\neuqp+da3vpX29vae+5x33nnZZ599MmrUqFx55ZVZsmRJ7r///p7t8+fPz+/+7u+mXC7nwx/+cA49\n9NB8+9vffsW+KpVKrrrqqlx55ZWZNm1aSqVSTjvttEyePDmLFi0a+BcLw9gb+Vk9//zzs8cee6S+\nvj4f/ehH8+CDDyZ58dS5b3/727n00kuzyy67pKmpKVdeeeUr9jFt2rScc845qa2tzejRo3PDDTfk\n/e9/f0444YSUy+WcdNJJmT9/fr75zW/ucMabbropF154Yc/vi7/+67+2/geGCAEEsN3111+fSZMm\n5d3vfneS5P3vf3+2bt2aW265pec+06ZN6/l+9OjRmTRpUpYvX57kxQXOL9/+0v2feeaZV+xr1apV\n2bhxY97znvdkwoQJPV9Lly7d4f2B//VGflYnT57c8/3YsWOzYcOGJMkLL7yQ9vb2Xj+rv/1zmyRT\np07t9efly5dn77337nXbPvvsk2XLlu1wxmeeeabX844ZMya77LLLG3p9wMASQAB58V+Fr7/++qxe\nvTq77757Jk+enP322y9dXV29Tq1ZunRpz/ebN2/OCy+8kD322CPJi0d1Xr79pfu/tP3lWltbM3bs\n2Pzwhz/M2rVre742bNiQCy64YIBeJQx/b/Rn9dW0tramvr6+18/qk08++Yr7lcu9/4q05557vuLn\n+4knnnhFKL1k991373X/TZs25YUXXnjd+YCBJ4AAktx9991Zvnx5fvazn+WRRx7p+fr+97+fn//8\n5/nVr36VJPnqV7+aJ554Ilu3bs2FF16Y6dOn5+1vf3vP89x+++350Y9+lG3btuX//t//m4ceeigf\n+tCHXrG/UqmUv/zLv8x5552Xxx9/PEmycePG/OAHP8jKlSsH50XDMPR6P6v/9V//9ZqPr6mpyYc/\n/OF84QtfyPPPP5/169fnwgsvfN39fvSjH82tt96ae+65J9u2bctdd92V73znO/mTP/mTHd7/1FNP\nzVe+8pU88cQT2bJlSy644IJ0d3fv1GsG+pcPQgWGrf0n1/fb/a655prMnz8/s2fP7nX78ccfnyOP\nPLLnX5ZPP/30nHzyyXniiSdyyCGH5I477ug5r79UKuXjH/94/vZv/zbz5s3L1KlTc9ttt2Wvvfbq\n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\nEgEEw8xL64Ke3euv0lX/wuve3/oceHWjtuybyUsvyYp9PptKub3a4wAwCJwCB8NUd6k96yfemQ0T\nfpTu8uYk5dS372F9DuyETeMeyMppX0zKXdUeBaDQrAHqAwEEwJuxsfnf8+zULyWl7mqPAlBYgxFA\nTvQHgCTj2o7OLsv/stpjADDABBAAbNe09sS0rFhQ7TEAGEACCABeZsKqUzLhuQ9XewwABogAAoDf\nMvG5j6R51bxqjwHAABBAAPBbSimldcWZaVxzXLVHAaCfCSAA2IFSytll+bkZ23ZUtUcBoB8JIAB4\nFaXUZLenL8roDbOrPQoA/aRPAfSxj30s9fX1aWxs7Pn6h3/4h173uemmmzJ9+vSMHTs2RxxxRH75\ny1/2bHv22WdzzDHHZPz48Zk/f342b97cs+2+++7LEUcckRH6MUUADBOlSn0mP/WFNGzav9qjANAP\n+hRApVIpH/vYx7Jhw4aerzPPPLNn+09/+tOcddZZWbhwYdatW5dTTjklJ510UjZu3Jgkufzyy3P4\n4Ydn9erVKZfLWbhwYZKkvb09n/jEJ3LdddelVCr1ZUQA6LNy9+hMefLS1G/Zu9qjANBHfQqgSqXy\nmkdorr322pxyyik57rjjUldXl/PPPz+jRo3KbbfdliRZsmRJ5s6dm5qamsydOzePP/54kuTiiy/O\nySefnAMPPLAv4wFAv6nZ1pgpSy9PXfuUao8CQB/0+QjQrbfempaWlrz1rW/NBRdckE2bNvVsf/TR\nR3PIIYf0esysWbPy6KOPJkkOPvjg3HXXXeno6Mg999yTmTNn5uGHH87dd9+dz372s30ZDQD6XW3X\nxEx54orUdrRWexQAdlKfAujP//zPs3jx4qxevTrf+c538uMf/zhnnHFGz/YNGzakubm512PGjx+f\ntra2JMlFF12U1atX59BDD83UqVNz6qmnZsGCBbnmmmuyaNGiHHvssZk7d27uv//+vowJAP2mrnPX\nTFn6pZS7ml//zgAMObV9efDv/M7v9Hz/tre9LV/96lfzrne9KzfeeGPq6urS2NjYEzsvWbt2bfbd\nd98kSVNTU2688caebZdddlmOPfbYzJgxI/Pnz8+jjz6a5557LieeeGKefPLJvowKAP2mvn1qpiy9\nLCv2uSDdNZtf/wEADBkDchnsl9YFzZw5Mw899FCv2x9++OHMnDnzFY957LHHcsstt+TSSy/N//zP\n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\nzAMPPJBRo0Zl7ty5PWt9LrrooqxevTqHHnpopk6dmlNPPTULFizINddck0WLFuXYY4/N3Llzc//9\n9/fXmAAAQIGVKv1wlYF/+qd/yplnnpnbbrst73rXu171fl1dXRk/fny+973v5dhjj33F9ssuuyxt\nbW35zGc+k4MOOiiPPvponnvuuZx44om9jhy9ETMvfSqbO1xAAQAAhovfXDptwPdR29cn+Md//Md8\n6lOfyve///0ceeSRb+gxO2quxx57LLfccksefPDBPPLII9lzzz0zYcKETJgwIe3t7Vm1alVaW1v7\nOi4AAFBgfToF7utf/3rOP//83HPPPTuMn0WLFmX58uWpVCpZs2ZNzjrrrEyaNClHHHFEr/t1d3fn\n9NNPz9VXX52GhobstddeWbx4cZYtW5YHHnggnZ2daWlp6cuoAAAAfTsCdPbZZ6euri7HHHNMz22l\nUinr169Pkvz4xz/OggUL0tbWlqamprzzne/Mv/zLv2TMmDG9nueqq67KrFmzMmfOnCTJrrvumksu\nuSSHHXZYGhoacv3117scNgAA0Gf9sgZoKLIGCAAAhpfBWAPUr5fBBgAAGMoEEAAAUBgCCAAAKAwB\nBAAAFIYAAgAACkMAAQAAhSGAAACAwhBAAABAYQggAACgMAQQAABQGAIIAAAoDAEEAAAUhgACAAAK\nQwABAACFIYAAAIDCEEAAAEBhCCAAAKAwBBAAAFAYAggAACgMAQQAABSGAAIAAApDAAEAAIUhgAAA\ngMIQQAAAQGEIIAAAoDAEEAAAUBgCCAAAKAwBBAAAFIYAAgAACkMAAQAAhSGAAACAwhBAAABAYQgg\nAACgMAQQAABQGAIIAAAoDAEEAAAUhgACAAAKQwABAACFIYAAAIDCEEAAAEBhCCAAAKAwBBAAAFAY\nAggAACgMAQQAABSGAAIAAApDAAEAAIUhgAAAgMIQQAAAQGEIIAAAoDAEEAAAUBgCCAAAKAwBBAAA\nFIYAAgAACkMAAQAAhSGAAACAwhBAAABAYQggAACgMAQQAABQGAIIAAAoDAEEAAAUhgACAAAKQwAB\nAACFIYAAAIDCEEAAAEBhCCAAAKAwBBAAAFAYAggAACgMAQQAABSGAAIAAApDAAEAAIUhgAAAgMIQ\nQAAAQGEIIAAAoDAEEAAAUBgCCAAAKAwBBAAAFIYAAgAACkMAAQAAhSGAAACAwhBAAABAYQggAACg\nMAQQAABQGAIIAAAoDAEEAAAUhgACAAAKQwABAACFIYAAAIDCEEAAAEBhCCAAAKAwBBAAAFAYAggA\nACgMAQQAABSGAAIAAApDAAEAAIUhgAAAgMIQQAAAQGEIIAAAoDAEEAAAUBgCCAAAKAwBBAAAFIYA\nAgAACkMAAQAAhSGAAACAwhBAAABAYQggAACgMAQQAABQGAIIAAAoDAEEAAAUhgACAAAKQwABAACF\nIYAAAIDCEEAAAEBhCCAAAKAwBBAAAFAYAggAACgMAQQAABTGgAfQtm3bcv7552eXXXZJU1NT3v/+\n92f16tVJkv/4j//IW97ylrS2tuZzn/tcr8ddccUVOeeccwZ6PAAAoEAGPICuuOKKfPe7380vfvGL\nLF++PEly6qmnJkk+8YlP5O/+7u/ym9/8JjfffHMefvjhJMnixYvzrW99K1/60pcGejwAAKBAagd6\nB9dcc02++MUvZtq0aUmSK6+8MjNmzMjTTz+dJUuW5Pjjj09dXV3e/va3Z8mSJZk1a1ZOP/30fOMb\n38ioUaMGejwAAKBABvQI0Lp167Js2bIccsghPbfts88+aWpqyiOPPJKDDz44ixYtyurVq/OLX/wi\nBx10UL7xjW/kgAMOyDHHHDOQowEAAAU0oEeANmzYkCRpbm7udfv48eOzYcOGXH/99Tn77LNzySWX\n5NOf/nQaGhpy9dVX5xe/+EUuvfTS/PCHP8ykSZPyjW98I7vuuuub2ndHVyVj6kv99loAAICBU6kM\nzn4GNIAaGxuTJG1tbb1uX7duXZqamvK2t70t99xzT8/txx9/fP7mb/4m9913X+69997827/9W667\n7rqcd955+da3vvWm9v3YxdP6Oj4AADDCDOgpcOPHj8/UqVPz0EMP9dy2ZMmSrF+/PgcffHCv+37z\nm9/MrrvumpNOOimPPPJI3v72t6dUKmXOnDk9F0cAAADoiwG/CtyCBQvy5S9/OU8++WTa2tpywQUX\n5MQTT8zUqVN77rNy5cpceeWV+drXvpYkmTFjRu69995s3bo1d955Z/bdd9+BHhMAACiAAb8K3IUX\nXpi1a9fmsMMOS3t7e44//vhXnM521lln5dJLL83EiROTJO973/vy/e9/P5MnT8706dPz7W9/e6DH\nBAAACqBUqQzWciMAAIDqGvBT4AAAAIYKAQQAABSGAAIAAApDAAEAAIUhgAAAgMIYsgHU3t6e8847\nLzNmzMj++++f3/md38kdd9zRs/2OO+7IoYcemoMOOigHHnhg/vZv//ZVn2vatGk933/qU5/KPvvs\nk3K5nP/+7//udb/X2lYUr/e+/+d//mcOOeSQzJ49OwcccEBOO+20bNmyZYfP5X1/417vfX/J1q1b\nc8ABB+Swww571efyvr9xr/e+r1ixIscee2zGjx//mu958sbe9zVr1uSkk07Kfvvtl4MPPjinnHJK\nVq1a1e+va6gb7N/v3vf/Ndi/4733Lxrs3/He9xcN9u/45MWPcpk1a1Zmz56dd7zjHXnggQf69TUN\nB9X4O/ybft8rQ9Rpp51W+eAHP1hpb2+vVCqVyq9+9avKHnvsUfnJT35SqVQqlfvvv7+ycuXKSqVS\nqbS1tVVmzJjRs+23TZs2ref7n/70p5Vly5ZVpk2bVvn1r3/d636vta0oXu9937JlS6Wzs7NSqVQq\n3d3dlVNOOaXyN3/zNzt8Lu/7G/d67/v/3979h1ZV/3Ecf927r5uuNYYgOJymqfkjz3avmeYvIlf+\nSCyZ5A8cTFOz0EGODZWyUCwMohDKDVSYvyLNYAWCEW6ZU1agTu7U0GnX/TMp2xi4ttjc5/vH2G22\nH/fe6b3nbuf5gMHuvee8z+e+mG/v23N27JCXl2fWrVtnnn/++R5rkXvoguXe0NBgysvLzalTp8y0\nadN6rRVK7nV1debs2bOBxwUFBWbdunWP8y31C9Hu7+T+r2j3eLJvF+0eT+7tot3jO2p2+O6774xl\nWY/r7fQbdnyGDzf3mByA/H6/SUpKMvX19Q89X1hYaDIzM7vdZ8mSJebYsWPdvjZ9+vQuz/X2oc+p\nHwjDzb25udm8+uqr5siRI93WI/fQhJr7zz//bF577TXz008/9dqoyT004fy8l5WVBf3LMdzcjTHm\n5MmT5uWXXw5j1f2f3f3dGGfmboz9Pd4YZ2Zvd483htw7i2aPP3ToUI99baCKhR4fSu4xeQmcz+fT\nuHHjlJKS8tDzM2bM0JUrV7ps/9tvv6miokLz5s3rtt4vv/wSkXUONKHmXltbK4/Ho2HDhmnIkCHK\nzs7uth65hyaU3BsbG7VlyxYVFRXJBPm/i8k9NOH2mWDCzb2trU2FhYV6/fXXwz5Wf2Z3f3dq7pL9\nPd6p2dvd48k9+j1+/fr1euqpp7R9+3Z98cUXYR+rP7Ozx4eTe0wOQL394W9paXnocW1trZYuXarC\nwkINHz480ksb0ELNPTU1VZWVlbp7965aW1u1Z8+eaCxvwAol94KCAm3atEmpqanRWtaAF06fiYTc\n3FwlJydr8+bNET9WLLG7vzs1d8n+Hu/U7O3u8eTeVaR7/IEDB3Tnzh198sknysrKiuixYo2dPT6c\n3GNyALIsS9XV1aqvr3/o+YqKCnm93sDjP/74Q6+88oq2bt2qZcuWRXuZA06ouXdITEzUypUrdf78\n+WgtcUAKJffz589r165dGjNmjFatWiWfzyePx2PHcgeMcH7eXS7XYz12fn6+bt26pePHjz/Wuv2B\nnf3dyblL9vZ4J2dvZ48nd3t6fIfs7Gz5/X7V1dVFpH4sioXP8CHl3usFcjZau3atWbFihWlubjbG\nGOPz+czIkSPNDz/8YIwx5t69eyY9Pd0UFRX1qf7o0aNNVVVV2K8NdMFyv337duC1f/75x6xcudLs\n2rUr5Prk3r1guXcW7Prw7pB790LNPZTrw7vTXbbbt283L730kvn777/7vvB+zo7+Tu7t7OjxZG9P\njyf36Pf4+/fvm5qamsDj77//3owdO7aPq++/ot3j+5J7zA5ATU1NZsuWLebpp582Y8eONQkJCaak\npCTwen5+vklMTDQejyfwVVxcHLRubm6uSUtLM4MGDTLDhw83U6ZMCek1pwiW+9GjR41lWSYjI8NY\nlmXy8vICdwzqDbn3LljunZWVlfV6h6DOyL13wXJvbW01I0aMMMOGDTPx8fEmLS3N7Ny5M2jdnrKt\nqqoyLpfLTJw4MdC3srKyIvb+YlW0+zu5/yvaPZ7s20W7x5N7u2j3+Lt375oXXnjBWJZlPB6PWbBg\ngSP/gTHaPb4vubuMCfLbdjGgtbVVGzduVGNjow4fPqz4+Hi7l+QI5G4PcrcHuduD3O1D9vYgd3uQ\nuz1iNfd+MQABAAAAwOMQkzdBAAAAAIBIYAACAAAA4BgMQAAAAAAcgwEIAAAAgGMwAAEAAABwDAYg\nAAAAAI7BAAQAAADAMRiAAAAAADgGAxAAAAAAx2AAAgAAAOAYDEAAAAAAHIMBCAAAAIBjMAABAAAA\nEfbXX3/J6/XK6/UqNTVVaWlp8nq9mjp1qlpaWsKq5ff7ZVlWn9cye/bsx7pdf+Myxhi7FwEAAAD0\nZzdu3FBxcbGSkpLU3NyshIQEbdu2TXFxcV223blzp5588knl5eX16Vh+v19LliyRz+d71GU7EmeA\nAAAAgEfQ0NCgoqIi5ebmyuPxaObMmZo1a5b27NnT4z7/PQdx9OhRzZgxQ16vV2+//bba2toCrx0+\nfFgZGRnyeDzKycmRy+XSgwcP9NZbb2nKlClasGCBmpubH6rn9/s1ceJEZWdna/LkyXrjjTfU1NQk\nSUpKSgpsM2nSpB7rdGz32WefybIsWZalvXv3Bt23sbFRixcvlsfjkWVZOnHiRF+jjQgGIAAAAOAR\nHDp0SFu3btW7776rRYsWadGiRUpLS1NiYqIaGhqC7n/9+nWdOHFCFy5c0OXLl+V2u3Xs2DFJ0tWr\nV/XRRx+prKxMlZWV2rt3r4wxunnzpjZv3qyqqiqlpKTo22+/7VL3xo0b2rRpk65du6bk5GTt27dP\nkuRyuQLbVFdX91jH5XLp0qVLKi4u1q+//qqKigrt379flZWVve57+vRpjRgxQpWVlfL5fFq4cGHf\nw40ABiAAAADgEdTX1ysuLk5utzswXIwfP17PPPOMqqurg+5/5swZXbx4UdOmTZPX61Vpaal+//13\nSVJpaamWL1+uoUOHSpJSUlIkSWPGjFF6erok6bnnnpPf7+9Sd+TIkZo5c6YkKTs7W+Xl5V22CVan\nvLxcWVlZGjJkiJ544gllZWXp3LlzcrlcPe6bnp6uH3/8Udu2bVN5ebmSk5ODZhBN/7N7AQAAAEB/\nNnToULW0tOjevXtqa2uT2+1WdXW1rl27FvKNBHJycvTxxx93ed7lcnW5XE6SEhISAt/HxcUFLm/7\n774djDFyu7ue+wilTufjG2MCdXvad/z48bp8+bJOnTql999/X5mZmdqxY0eXunbhDBAAAADwCHJy\ncvTpp5/q888/19dff63S0lLdvn1b9+/fD5yx6U1mZqZOnjypP//8U5JUV1enmpoaSdK8efP0zTff\nqK6uTlL72aZQ1dTUqKKiQpL01Vdfac6cOeG+Nc2dO1clJSVqampSY2OjSkpKNHfu3G6Hsg61tbUa\nPHiwVq9erfz8fF26dCns40YSZ4AAAACAR5CcnKyNGzdq//79SkpK0p07dxQfH68PPvigx306n52Z\nNGmSdu/erfnz56utrU2DBg3Svn37NGrUKE2ePFnvvfeeXnzxRcXFxWnq1Kn68MMPH9q/c73Fixfr\n4MGDkqQJEyboyy+/1Jtvvqlnn31W77zzTpdj91Sn43uv16s1a9Zo+vTpkqQNGzYoIyNDfr+/x319\nPp8KCgrkdrsVHx+vwsLC0IKMEm6DDQAAAAww3Cq7Z1wCBwAAAAxA/z1Dg3acAQIAAADgGJwBAgAA\nAJZHDwwAAAA9SURBVOAYDEAAAAAAHIMBCAAAAIBjMAABAAAAcAwGIAAAAACOwQAEAAAAwDEYgAAA\nAAA4BgMQAAAAAMf4PyNLhrNlxsMiAAAAAElFTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x2d4af50>"
]
}
],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Things missing:\n",
" 1. Exact values are missing.\n",
" 2. The gradient is difficult to get.\n",
"\n",
"## Still this thing missing:\n",
" 1. figure out how to use the cells properly in the IPython notebook.\n",
"\n",
"## Answers for last missing things\n",
" 1. I found [here](http://matplotlib.org/api/axes_api.html?highlight=legend#matplotlib.axes.Axes.legend) a table with\n",
" parameters to adjust padding between elements of the legend. Some of them may not work if the mode of the legend is\n",
" set to 'expand'\n",
"\n",
"sbuj"
]
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment