├── images ├── 3dplots.png ├── barplots.png ├── boxplots.png ├── formatting.png ├── heatmaps.png ├── histograms.png ├── lineplots.png ├── scatterplots.png ├── specialplots.png ├── intro_boxplot.png └── boxplot_overview.png ├── .gitignore ├── README.md ├── ipynb ├── boxplots.ipynb ├── .ipynb_checkpoints │ ├── boxplots-checkpoint.ipynb │ └── histograms-checkpoint.ipynb └── specialplots.ipynb ├── LICENSE └── .ipynb_checkpoints └── histograms-checkpoint.ipynb /images/3dplots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kunalj101/matplotlib-gallery/master/images/3dplots.png -------------------------------------------------------------------------------- /images/barplots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kunalj101/matplotlib-gallery/master/images/barplots.png -------------------------------------------------------------------------------- /images/boxplots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kunalj101/matplotlib-gallery/master/images/boxplots.png -------------------------------------------------------------------------------- /images/formatting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kunalj101/matplotlib-gallery/master/images/formatting.png -------------------------------------------------------------------------------- /images/heatmaps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kunalj101/matplotlib-gallery/master/images/heatmaps.png -------------------------------------------------------------------------------- /images/histograms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kunalj101/matplotlib-gallery/master/images/histograms.png -------------------------------------------------------------------------------- /images/lineplots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kunalj101/matplotlib-gallery/master/images/lineplots.png -------------------------------------------------------------------------------- /images/scatterplots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kunalj101/matplotlib-gallery/master/images/scatterplots.png -------------------------------------------------------------------------------- /images/specialplots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kunalj101/matplotlib-gallery/master/images/specialplots.png -------------------------------------------------------------------------------- /images/intro_boxplot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kunalj101/matplotlib-gallery/master/images/intro_boxplot.png -------------------------------------------------------------------------------- /images/boxplot_overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kunalj101/matplotlib-gallery/master/images/boxplot_overview.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .ipynb_checkpoints 2 | 3 | # Byte-compiled / optimized / DLL files 4 | __pycache__/ 5 | *.py[cod] 6 | 7 | # C extensions 8 | *.so 9 | 10 | # Distribution / packaging 11 | .Python 12 | env/ 13 | bin/ 14 | build/ 15 | develop-eggs/ 16 | dist/ 17 | eggs/ 18 | lib/ 19 | lib64/ 20 | parts/ 21 | sdist/ 22 | var/ 23 | *.egg-info/ 24 | .installed.cfg 25 | *.egg 26 | 27 | # Installer logs 28 | pip-log.txt 29 | pip-delete-this-directory.txt 30 | 31 | # Unit test / coverage reports 32 | htmlcov/ 33 | .tox/ 34 | .coverage 35 | .cache 36 | nosetests.xml 37 | coverage.xml 38 | 39 | # Translations 40 | *.mo 41 | 42 | # Mr Developer 43 | .mr.developer.cfg 44 | .project 45 | .pydevproject 46 | 47 | # Rope 48 | .ropeproject 49 | 50 | # Django stuff: 51 | *.log 52 | *.pot 53 | 54 | # Sphinx documentation 55 | docs/_build/ 56 | 57 | ======= 58 | gmon.out 59 | __pycache__ 60 | *.pyc 61 | *.o 62 | *.so 63 | *.gcno 64 | *.swp 65 | *.egg-info 66 | *.egg 67 | *~ 68 | build 69 | dist 70 | lib/test 71 | doc/_build 72 | *.log 73 | *env 74 | *ENV 75 | .DS_store 76 | .idea 77 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | #matplotlib-gallery 2 | 3 | This repository is a collection of different `matplotlib` plots in IPython notebooks that I needed for my data visualizations. 4 | 5 | This project is not connected to the gallery on [http://matplotlib.org/gallery.html](http://matplotlib.org/gallery.html), although there might be some overlap and redundancy. 6 | 7 | - [2D histograms / heat maps / levelplots](#2d-histograms--heat-maps--levelplots) 8 | - [3D Plots](#3d-plots) 9 | - [Bar plots](#bar-plots) 10 | - [Boxplots](#boxplots) 11 | - [Formatting](#formatting) 12 | - [Histograms](#histograms) 13 | - [Line plots](#line-plots) 14 | - [Scatter plots](#scatter-plots) 15 | - [Triangulation](#triangulation) 16 | 17 |
18 |
19 | 20 | #### I am looking forward to your contributions, suggestions, and ideas 21 | 22 | If you have any suggestions or want to make additions, I would be very happy if you could send me 23 | 24 | - an [email](mailto:se.raschka@gmail.com), 25 | - leave me a message on [google+](https://plus.google.com/118404394130788869227/), 26 | - or even send me a tweet on [twitter](https://twitter.com/rasbt) (given you can fit it within the 140 character limit ;)). 27 | 28 | Or even better: It would be great if you would simply fork this project and send me a pull request. 29 | 30 |
31 |
32 |
33 |
34 | 35 | 36 | ## [2D histograms / heat maps / levelplots](http://nbviewer.ipython.org/github/rasbt/matplotlib-gallery/blob/master/ipynb/heatmaps.ipynb) 37 | 38 | [[back to top](https://github.com/rasbt/matplotlib-gallery#matplotlib-gallery)] 39 | 40 |
41 |
42 | 43 | 44 | ![3d plots](./images/heatmaps.png) 45 | 46 | 47 |
48 |
49 |
50 |
51 | 52 | 53 | ## [3D Plots](http://nbviewer.ipython.org/github/rasbt/matplotlib-gallery/blob/master/ipynb/3dplots.ipynb) 54 | 55 | [[back to top](https://github.com/rasbt/matplotlib-gallery#matplotlib-gallery)] 56 | 57 |
58 |
59 | 60 | 61 | ![3d plots](./images/3dplots.png) 62 | 63 | 64 |
65 |
66 |
67 |
68 | 69 | 70 | ## [Bar plots](http://nbviewer.ipython.org/github/rasbt/matplotlib-gallery/blob/master/ipynb/barplots.ipynb) 71 | 72 | [[back to top](https://github.com/rasbt/matplotlib-gallery#matplotlib-gallery)] 73 | 74 |
75 |
76 | 77 | 78 | ![3d plots](./images/barplots.png) 79 | 80 | 81 |
82 |
83 |
84 |
85 | 86 | ## [Boxplots](http://nbviewer.ipython.org/github/rasbt/matplotlib-gallery/blob/master/ipynb/boxplots.ipynb) 87 | 88 | [[back to top](https://github.com/rasbt/matplotlib-gallery#matplotlib-gallery)] 89 | 90 |
91 |
92 | 93 | 94 | ![3d plots](./images/boxplots.png) 95 | 96 | 97 |
98 |
99 |
100 |
101 | 102 | 103 | ## [Formatting](http://nbviewer.ipython.org/github/rasbt/matplotlib-gallery/blob/master/ipynb/formatting.ipynb) 104 | 105 | [[back to top](https://github.com/rasbt/matplotlib-gallery#matplotlib-gallery)] 106 | 107 |
108 |
109 | 110 | 111 | ![3d plots](./images/formatting.png) 112 | 113 | 114 |
115 |
116 |
117 |
118 | 119 | 120 | ## [Histograms](http://nbviewer.ipython.org/github/rasbt/matplotlib-gallery/blob/master/ipynb/histograms.ipynb) 121 | 122 | [[back to top](https://github.com/rasbt/matplotlib-gallery#matplotlib-gallery)] 123 | 124 |
125 |
126 | 127 | 128 | ![3d plots](./images/histograms.png) 129 | 130 | 131 |
132 |
133 |
134 |
135 | 136 | 137 | ## [Line plots](http://nbviewer.ipython.org/github/rasbt/matplotlib-gallery/blob/master/ipynb/lineplots.ipynb) 138 | 139 | [[back to top](https://github.com/rasbt/matplotlib-gallery#matplotlib-gallery)] 140 | 141 |
142 |
143 | 144 | 145 | ![3d plots](./images/lineplots.png) 146 | 147 | 148 |
149 |
150 |
151 |
152 | 153 | ## [Scatter plots](http://nbviewer.ipython.org/github/rasbt/matplotlib-gallery/blob/master/ipynb/scatterplots.ipynb) 154 | 155 | [[back to top](https://github.com/rasbt/matplotlib-gallery#matplotlib-gallery)] 156 | 157 |
158 |
159 | 160 | 161 | ![3d plots](./images/scatterplots.png) 162 | 163 | 164 |
165 |
166 |
167 |
168 | 169 | ## [Special plots](http://nbviewer.ipython.org/github/rasbt/matplotlib-gallery/blob/master/ipynb/specialplots.ipynb) 170 | 171 | [[back to top](https://github.com/rasbt/matplotlib-gallery#matplotlib-gallery)] 172 | 173 |
174 |
175 | 176 | 177 | ![3d plots](./images/specialplots.png) 178 | 179 | 180 |
181 |
182 |
183 |
184 | -------------------------------------------------------------------------------- /ipynb/boxplots.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": { 3 | "name": "", 4 | "signature": "sha256:329336b8f332aac6452e4a9609969bc89d1c61da9f52a553f1c0b1f62c5019c3" 5 | }, 6 | "nbformat": 3, 7 | "nbformat_minor": 0, 8 | "worksheets": [ 9 | { 10 | "cells": [ 11 | { 12 | "cell_type": "markdown", 13 | "metadata": {}, 14 | "source": [ 15 | "[Sebastian Raschka](http://www.sebastianraschka.com)" 16 | ] 17 | }, 18 | { 19 | "cell_type": "code", 20 | "collapsed": false, 21 | "input": [ 22 | "import time\n", 23 | "print('Last updated:', time.strftime('%m/%d/%Y'))" 24 | ], 25 | "language": "python", 26 | "metadata": {}, 27 | "outputs": [ 28 | { 29 | "output_type": "stream", 30 | "stream": "stdout", 31 | "text": [ 32 | "Last updated: 06/21/2014\n" 33 | ] 34 | } 35 | ], 36 | "prompt_number": 1 37 | }, 38 | { 39 | "cell_type": "code", 40 | "collapsed": false, 41 | "input": [ 42 | "%matplotlib inline" 43 | ], 44 | "language": "python", 45 | "metadata": {}, 46 | "outputs": [], 47 | "prompt_number": 2 48 | }, 49 | { 50 | "cell_type": "markdown", 51 | "metadata": {}, 52 | "source": [ 53 | "
\n", 54 | "
" 55 | ] 56 | }, 57 | { 58 | "cell_type": "heading", 59 | "level": 1, 60 | "metadata": {}, 61 | "source": [ 62 | "Sections" 63 | ] 64 | }, 65 | { 66 | "cell_type": "markdown", 67 | "metadata": {}, 68 | "source": [ 69 | "- [Simple boxplot](#Simple boxplot)" 70 | ] 71 | }, 72 | { 73 | "cell_type": "markdown", 74 | "metadata": {}, 75 | "source": [ 76 | "
\n", 77 | "
" 78 | ] 79 | }, 80 | { 81 | "cell_type": "markdown", 82 | "metadata": {}, 83 | "source": [ 84 | "
\n", 85 | "
" 86 | ] 87 | }, 88 | { 89 | "cell_type": "markdown", 90 | "metadata": {}, 91 | "source": [ 92 | "![](../images/intro_boxplot.png)" 93 | ] 94 | }, 95 | { 96 | "cell_type": "heading", 97 | "level": 1, 98 | "metadata": {}, 99 | "source": [ 100 | "Simple Boxplot" 101 | ] 102 | }, 103 | { 104 | "cell_type": "code", 105 | "collapsed": false, 106 | "input": [ 107 | "import matplotlib.pyplot as plt\n", 108 | "\n", 109 | "x1 = [-0.46,-1.25,-2.62,0.22]\n", 110 | "x2 = [0.24,1.88,-0.49,-0.73,-0.49]\n", 111 | "x3 = [-0.44,0.93,0.19,-4.36,-0.88]\n", 112 | "\n", 113 | "fig = plt.figure(figsize=(8,6))\n", 114 | "\n", 115 | "plt.boxplot([x for x in [x1, x2, x3]], 0, 'rs', 1)\n", 116 | "plt.xticks([y+1 for y in range(len([x1, x2, x3]))], ['x1', 'x2', 'x3'])\n", 117 | "plt.xlabel('measurement x')\n", 118 | "t = plt.title('Box plot')\n", 119 | "plt.show()" 120 | ], 121 | "language": "python", 122 | "metadata": {}, 123 | "outputs": [ 124 | { 125 | "metadata": {}, 126 | "output_type": "display_data", 127 | "png": "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\n/OHN85cmuSLJ45vnx5d+fGZz3iQ5K8nfpMwa9Gcp6+h+NMnnmuM8eGy/NyX5dMqKQ/0k70hZPWb5\nWGn+DBc3Nb23qT8p66cOmucvb467lDIP73VNvU9Y9Xf0F0le02z/dJILAgAHYCllTdGHpqzC8rkk\nb21ee1qSDzbbr0vynGb7PikBfY+UeWzv1jx/bMpyaknyipT5bpPSI3VIs33z2Ll/IfuG7jlZWQnm\nE1lZ/eUnmsfL+717rL5vr6r9hJRJ7i/Iyhy7r8xKaF6T5KXN9kuSvLnZ3pXkt7O2u6esxXpSyi8o\nD1hnP5h71tOF6V2T5Kpm+6ok/9xsX5kSyklpOf5cyvqjSQnao5PckOSNKWF3W0rwJmVFoLelLFpw\ndsp8t/szSpknd5QS0I/Lyry5SXLXsf2WF9S4sjn/eO1LTV3Hp7R0l793eTtJPtD8/5Ikzxh7fvXS\nb8v+L8mLU1akeXnK3xcsJKEL0/ve2PbtKYsMLG+P/xt7RpKrV33vIKVr9rkp92K/2zx/UZKfSvLU\nlNbp61MWER9f+nH1Umu3NP8/KMl/J3nUOvWO17e69h0p4X9ekl9e5/uXv+e2TP4z5BFJ/itllRpY\nWAZSQR0fT/KyscfLgXjvlNZmUlZsWR4EdUxKSL0lpbt6ef9vJHlIyr/dU7P2+svfTmlNPrN53Mvk\nqwuNUu4LPz7lvnBS7uceu+53FDcnudc6r90/pev5UUl+JsmJE9YCc0fowvRWB99oje3XpnQVX57S\nrfsHzfNvSvKrKUulPTgrA6VOap67JMmzkvxl8/yrUhal/1SS6/dz3uckeWFzjCuzMnBrvfrGfTPJ\naUnek9KtfXFWBmKtPt/y95+b8kvApVkZ9JWUwH9Lyj3qG5qa3pKV7m4AAAAAAAAAAAAAAAAAAAAA\nALaD/weuu0GLpV7LzQAAAABJRU5ErkJggg==\n", 128 | "text": [ 129 | "" 130 | ] 131 | } 132 | ], 133 | "prompt_number": 3 134 | }, 135 | { 136 | "cell_type": "code", 137 | "collapsed": false, 138 | "input": [], 139 | "language": "python", 140 | "metadata": {}, 141 | "outputs": [] 142 | } 143 | ], 144 | "metadata": {} 145 | } 146 | ] 147 | } -------------------------------------------------------------------------------- /ipynb/.ipynb_checkpoints/boxplots-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": { 3 | "name": "", 4 | "signature": "sha256:329336b8f332aac6452e4a9609969bc89d1c61da9f52a553f1c0b1f62c5019c3" 5 | }, 6 | "nbformat": 3, 7 | "nbformat_minor": 0, 8 | "worksheets": [ 9 | { 10 | "cells": [ 11 | { 12 | "cell_type": "markdown", 13 | "metadata": {}, 14 | "source": [ 15 | "[Sebastian Raschka](http://www.sebastianraschka.com)" 16 | ] 17 | }, 18 | { 19 | "cell_type": "code", 20 | "collapsed": false, 21 | "input": [ 22 | "import time\n", 23 | "print('Last updated:', time.strftime('%m/%d/%Y'))" 24 | ], 25 | "language": "python", 26 | "metadata": {}, 27 | "outputs": [ 28 | { 29 | "output_type": "stream", 30 | "stream": "stdout", 31 | "text": [ 32 | "Last updated: 06/21/2014\n" 33 | ] 34 | } 35 | ], 36 | "prompt_number": 1 37 | }, 38 | { 39 | "cell_type": "code", 40 | "collapsed": false, 41 | "input": [ 42 | "%matplotlib inline" 43 | ], 44 | "language": "python", 45 | "metadata": {}, 46 | "outputs": [], 47 | "prompt_number": 2 48 | }, 49 | { 50 | "cell_type": "markdown", 51 | "metadata": {}, 52 | "source": [ 53 | "
\n", 54 | "
" 55 | ] 56 | }, 57 | { 58 | "cell_type": "heading", 59 | "level": 1, 60 | "metadata": {}, 61 | "source": [ 62 | "Sections" 63 | ] 64 | }, 65 | { 66 | "cell_type": "markdown", 67 | "metadata": {}, 68 | "source": [ 69 | "- [Simple boxplot](#Simple boxplot)" 70 | ] 71 | }, 72 | { 73 | "cell_type": "markdown", 74 | "metadata": {}, 75 | "source": [ 76 | "
\n", 77 | "
" 78 | ] 79 | }, 80 | { 81 | "cell_type": "markdown", 82 | "metadata": {}, 83 | "source": [ 84 | "
\n", 85 | "
" 86 | ] 87 | }, 88 | { 89 | "cell_type": "markdown", 90 | "metadata": {}, 91 | "source": [ 92 | "![](../images/intro_boxplot.png)" 93 | ] 94 | }, 95 | { 96 | "cell_type": "heading", 97 | "level": 1, 98 | "metadata": {}, 99 | "source": [ 100 | "Simple Boxplot" 101 | ] 102 | }, 103 | { 104 | "cell_type": "code", 105 | "collapsed": false, 106 | "input": [ 107 | "import matplotlib.pyplot as plt\n", 108 | "\n", 109 | "x1 = [-0.46,-1.25,-2.62,0.22]\n", 110 | "x2 = [0.24,1.88,-0.49,-0.73,-0.49]\n", 111 | "x3 = [-0.44,0.93,0.19,-4.36,-0.88]\n", 112 | "\n", 113 | "fig = plt.figure(figsize=(8,6))\n", 114 | "\n", 115 | "plt.boxplot([x for x in [x1, x2, x3]], 0, 'rs', 1)\n", 116 | "plt.xticks([y+1 for y in range(len([x1, x2, x3]))], ['x1', 'x2', 'x3'])\n", 117 | "plt.xlabel('measurement x')\n", 118 | "t = plt.title('Box plot')\n", 119 | "plt.show()" 120 | ], 121 | "language": "python", 122 | "metadata": {}, 123 | "outputs": [ 124 | { 125 | "metadata": {}, 126 | "output_type": "display_data", 127 | "png": "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\n/OHN85cmuSLJ45vnx5d+fGZz3iQ5K8nfpMwa9Gcp6+h+NMnnmuM8eGy/NyX5dMqKQ/0k70hZPWb5\nWGn+DBc3Nb23qT8p66cOmucvb467lDIP73VNvU9Y9Xf0F0le02z/dJILAgAHYCllTdGHpqzC8rkk\nb21ee1qSDzbbr0vynGb7PikBfY+UeWzv1jx/bMpyaknyipT5bpPSI3VIs33z2Ll/IfuG7jlZWQnm\nE1lZ/eUnmsfL+717rL5vr6r9hJRJ7i/Iyhy7r8xKaF6T5KXN9kuSvLnZ3pXkt7O2u6esxXpSyi8o\nD1hnP5h71tOF6V2T5Kpm+6ok/9xsX5kSyklpOf5cyvqjSQnao5PckOSNKWF3W0rwJmVFoLelLFpw\ndsp8t/szSpknd5QS0I/Lyry5SXLXsf2WF9S4sjn/eO1LTV3Hp7R0l793eTtJPtD8/5Ikzxh7fvXS\nb8v+L8mLU1akeXnK3xcsJKEL0/ve2PbtKYsMLG+P/xt7RpKrV33vIKVr9rkp92K/2zx/UZKfSvLU\nlNbp61MWER9f+nH1Umu3NP8/KMl/J3nUOvWO17e69h0p4X9ekl9e5/uXv+e2TP4z5BFJ/itllRpY\nWAZSQR0fT/KyscfLgXjvlNZmUlZsWR4EdUxKSL0lpbt6ef9vJHlIyr/dU7P2+svfTmlNPrN53Mvk\nqwuNUu4LPz7lvnBS7uceu+53FDcnudc6r90/pev5UUl+JsmJE9YCc0fowvRWB99oje3XpnQVX57S\nrfsHzfNvSvKrKUulPTgrA6VOap67JMmzkvxl8/yrUhal/1SS6/dz3uckeWFzjCuzMnBrvfrGfTPJ\naUnek9KtfXFWBmKtPt/y95+b8kvApVkZ9JWUwH9Lyj3qG5qa3pKV7m4AAAAAAAAAAAAAAAAAAAAA\nALaD/weuu0GLpV7LzQAAAABJRU5ErkJggg==\n", 128 | "text": [ 129 | "" 130 | ] 131 | } 132 | ], 133 | "prompt_number": 3 134 | }, 135 | { 136 | "cell_type": "code", 137 | "collapsed": false, 138 | "input": [], 139 | "language": "python", 140 | "metadata": {}, 141 | "outputs": [] 142 | } 143 | ], 144 | "metadata": {} 145 | } 146 | ] 147 | } -------------------------------------------------------------------------------- /ipynb/.ipynb_checkpoints/histograms-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": { 3 | "name": "", 4 | "signature": "sha256:f812a3730bc974eacf7533a591c430abb0491b3677c8723b81bc4039aeb68504" 5 | }, 6 | "nbformat": 3, 7 | "nbformat_minor": 0, 8 | "worksheets": [ 9 | { 10 | "cells": [ 11 | { 12 | "cell_type": "markdown", 13 | "metadata": {}, 14 | "source": [ 15 | "[Sebastian Raschka](http://www.sebastianraschka.com)" 16 | ] 17 | }, 18 | { 19 | "cell_type": "code", 20 | "collapsed": false, 21 | "input": [ 22 | "import time\n", 23 | "print('Last updated:', time.strftime('%m/%d/%Y'))" 24 | ], 25 | "language": "python", 26 | "metadata": {}, 27 | "outputs": [ 28 | { 29 | "output_type": "stream", 30 | "stream": "stdout", 31 | "text": [ 32 | "Last updated: 06/12/2014\n" 33 | ] 34 | } 35 | ], 36 | "prompt_number": 1 37 | }, 38 | { 39 | "cell_type": "code", 40 | "collapsed": false, 41 | "input": [ 42 | "%matplotlib inline" 43 | ], 44 | "language": "python", 45 | "metadata": {}, 46 | "outputs": [], 47 | "prompt_number": 2 48 | }, 49 | { 50 | "cell_type": "markdown", 51 | "metadata": {}, 52 | "source": [ 53 | "
\n", 54 | "
" 55 | ] 56 | }, 57 | { 58 | "cell_type": "heading", 59 | "level": 1, 60 | "metadata": {}, 61 | "source": [ 62 | "Sections" 63 | ] 64 | }, 65 | { 66 | "cell_type": "markdown", 67 | "metadata": {}, 68 | "source": [ 69 | "- [Simple histogram](#Simple-histogram)\n", 70 | "\n", 71 | "- [Histogram of 2 overlapping data sets](#Histogram-of-2-overlapping-data-sets)" 72 | ] 73 | }, 74 | { 75 | "cell_type": "markdown", 76 | "metadata": {}, 77 | "source": [ 78 | "
\n", 79 | "
" 80 | ] 81 | }, 82 | { 83 | "cell_type": "markdown", 84 | "metadata": {}, 85 | "source": [ 86 | "
\n", 87 | "
" 88 | ] 89 | }, 90 | { 91 | "cell_type": "heading", 92 | "level": 1, 93 | "metadata": {}, 94 | "source": [ 95 | "Simple histogram" 96 | ] 97 | }, 98 | { 99 | "cell_type": "markdown", 100 | "metadata": {}, 101 | "source": [ 102 | "[[back to top](#Sections)]" 103 | ] 104 | }, 105 | { 106 | "cell_type": "code", 107 | "collapsed": false, 108 | "input": [ 109 | "import numpy as np\n", 110 | "import random\n", 111 | "from matplotlib import pyplot as plt\n", 112 | "\n", 113 | "data = [random.gauss(10,10) for i in range(1000)] \n", 114 | "bins = np.arange(-60, 60, 5)\n", 115 | "plt.xlim([min(data)-5, max(data)+5])\n", 116 | "\n", 117 | "plt.hist(data, bins=bins, alpha=0.5)\n", 118 | "plt.title('Random Gaussian data')\n", 119 | "plt.xlabel('variable X')\n", 120 | "plt.ylabel('count')\n", 121 | "\n", 122 | "\n", 123 | "plt.show()\n" 124 | ], 125 | "language": "python", 126 | "metadata": {}, 127 | "outputs": [ 128 | { 129 | "metadata": {}, 130 | "output_type": "display_data", 131 | "png": "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\n", 132 | "text": [ 133 | "" 134 | ] 135 | } 136 | ], 137 | "prompt_number": 3 138 | }, 139 | { 140 | "cell_type": "markdown", 141 | "metadata": {}, 142 | "source": [ 143 | "
\n", 144 | "
" 145 | ] 146 | }, 147 | { 148 | "cell_type": "heading", 149 | "level": 1, 150 | "metadata": {}, 151 | "source": [ 152 | "Histogram of 2 overlapping data sets" 153 | ] 154 | }, 155 | { 156 | "cell_type": "markdown", 157 | "metadata": {}, 158 | "source": [ 159 | "[[back to top](#Sections)]" 160 | ] 161 | }, 162 | { 163 | "cell_type": "code", 164 | "collapsed": false, 165 | "input": [ 166 | "import numpy as np\n", 167 | "import random\n", 168 | "from matplotlib import pyplot as plt\n", 169 | "\n", 170 | "data1 = [random.gauss(15,10) for i in range(500)] \n", 171 | "data2 = [random.gauss(5,5) for i in range(500)] \n", 172 | "bins = np.arange(-60, 60, 2.5)\n", 173 | "plt.xlim([min(data1+data2)-5, max(data1+data2)+5])\n", 174 | "\n", 175 | "plt.hist(data1, bins=bins, alpha=0.3, label='class 1')\n", 176 | "plt.hist(data2, bins=bins, alpha=0.3, label='class 2')\n", 177 | "plt.title('Random Gaussian data')\n", 178 | "plt.xlabel('variable X')\n", 179 | "plt.ylabel('count')\n", 180 | "plt.legend(loc='upper right')\n", 181 | "\n", 182 | "\n", 183 | "plt.show()" 184 | ], 185 | "language": "python", 186 | "metadata": {}, 187 | "outputs": [ 188 | { 189 | "metadata": {}, 190 | "output_type": "display_data", 191 | "png": "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\n", 192 | "text": [ 193 | "" 194 | ] 195 | } 196 | ], 197 | "prompt_number": 4 198 | } 199 | ], 200 | "metadata": {} 201 | } 202 | ] 203 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 3, 29 June 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | Preamble 9 | 10 | The GNU General Public License is a free, copyleft license for 11 | software and other kinds of works. 12 | 13 | The licenses for most software and other practical works are designed 14 | to take away your freedom to share and change the works. By contrast, 15 | the GNU General Public License is intended to guarantee your freedom to 16 | share and change all versions of a program--to make sure it remains free 17 | software for all its users. We, the Free Software Foundation, use the 18 | GNU General Public License for most of our software; it applies also to 19 | any other work released this way by its authors. You can apply it to 20 | your programs, too. 21 | 22 | When we speak of free software, we are referring to freedom, not 23 | price. Our General Public Licenses are designed to make sure that you 24 | have the freedom to distribute copies of free software (and charge for 25 | them if you wish), that you receive source code or can get it if you 26 | want it, that you can change the software or use pieces of it in new 27 | free programs, and that you know you can do these things. 28 | 29 | To protect your rights, we need to prevent others from denying you 30 | these rights or asking you to surrender the rights. Therefore, you have 31 | certain responsibilities if you distribute copies of the software, or if 32 | you modify it: responsibilities to respect the freedom of others. 33 | 34 | For example, if you distribute copies of such a program, whether 35 | gratis or for a fee, you must pass on to the recipients the same 36 | freedoms that you received. You must make sure that they, too, receive 37 | or can get the source code. And you must show them these terms so they 38 | know their rights. 39 | 40 | Developers that use the GNU GPL protect your rights with two steps: 41 | (1) assert copyright on the software, and (2) offer you this License 42 | giving you legal permission to copy, distribute and/or modify it. 43 | 44 | For the developers' and authors' protection, the GPL clearly explains 45 | that there is no warranty for this free software. For both users' and 46 | authors' sake, the GPL requires that modified versions be marked as 47 | changed, so that their problems will not be attributed erroneously to 48 | authors of previous versions. 49 | 50 | Some devices are designed to deny users access to install or run 51 | modified versions of the software inside them, although the manufacturer 52 | can do so. This is fundamentally incompatible with the aim of 53 | protecting users' freedom to change the software. The systematic 54 | pattern of such abuse occurs in the area of products for individuals to 55 | use, which is precisely where it is most unacceptable. Therefore, we 56 | have designed this version of the GPL to prohibit the practice for those 57 | products. If such problems arise substantially in other domains, we 58 | stand ready to extend this provision to those domains in future versions 59 | of the GPL, as needed to protect the freedom of users. 60 | 61 | Finally, every program is threatened constantly by software patents. 62 | States should not allow patents to restrict development and use of 63 | software on general-purpose computers, but in those that do, we wish to 64 | avoid the special danger that patents applied to a free program could 65 | make it effectively proprietary. To prevent this, the GPL assures that 66 | patents cannot be used to render the program non-free. 67 | 68 | The precise terms and conditions for copying, distribution and 69 | modification follow. 70 | 71 | TERMS AND CONDITIONS 72 | 73 | 0. Definitions. 74 | 75 | "This License" refers to version 3 of the GNU General Public License. 76 | 77 | "Copyright" also means copyright-like laws that apply to other kinds of 78 | works, such as semiconductor masks. 79 | 80 | "The Program" refers to any copyrightable work licensed under this 81 | License. Each licensee is addressed as "you". "Licensees" and 82 | "recipients" may be individuals or organizations. 83 | 84 | To "modify" a work means to copy from or adapt all or part of the work 85 | in a fashion requiring copyright permission, other than the making of an 86 | exact copy. The resulting work is called a "modified version" of the 87 | earlier work or a work "based on" the earlier work. 88 | 89 | A "covered work" means either the unmodified Program or a work based 90 | on the Program. 91 | 92 | To "propagate" a work means to do anything with it that, without 93 | permission, would make you directly or secondarily liable for 94 | infringement under applicable copyright law, except executing it on a 95 | computer or modifying a private copy. Propagation includes copying, 96 | distribution (with or without modification), making available to the 97 | public, and in some countries other activities as well. 98 | 99 | To "convey" a work means any kind of propagation that enables other 100 | parties to make or receive copies. Mere interaction with a user through 101 | a computer network, with no transfer of a copy, is not conveying. 102 | 103 | An interactive user interface displays "Appropriate Legal Notices" 104 | to the extent that it includes a convenient and prominently visible 105 | feature that (1) displays an appropriate copyright notice, and (2) 106 | tells the user that there is no warranty for the work (except to the 107 | extent that warranties are provided), that licensees may convey the 108 | work under this License, and how to view a copy of this License. If 109 | the interface presents a list of user commands or options, such as a 110 | menu, a prominent item in the list meets this criterion. 111 | 112 | 1. Source Code. 113 | 114 | The "source code" for a work means the preferred form of the work 115 | for making modifications to it. "Object code" means any non-source 116 | form of a work. 117 | 118 | A "Standard Interface" means an interface that either is an official 119 | standard defined by a recognized standards body, or, in the case of 120 | interfaces specified for a particular programming language, one that 121 | is widely used among developers working in that language. 122 | 123 | The "System Libraries" of an executable work include anything, other 124 | than the work as a whole, that (a) is included in the normal form of 125 | packaging a Major Component, but which is not part of that Major 126 | Component, and (b) serves only to enable use of the work with that 127 | Major Component, or to implement a Standard Interface for which an 128 | implementation is available to the public in source code form. A 129 | "Major Component", in this context, means a major essential component 130 | (kernel, window system, and so on) of the specific operating system 131 | (if any) on which the executable work runs, or a compiler used to 132 | produce the work, or an object code interpreter used to run it. 133 | 134 | The "Corresponding Source" for a work in object code form means all 135 | the source code needed to generate, install, and (for an executable 136 | work) run the object code and to modify the work, including scripts to 137 | control those activities. However, it does not include the work's 138 | System Libraries, or general-purpose tools or generally available free 139 | programs which are used unmodified in performing those activities but 140 | which are not part of the work. For example, Corresponding Source 141 | includes interface definition files associated with source files for 142 | the work, and the source code for shared libraries and dynamically 143 | linked subprograms that the work is specifically designed to require, 144 | such as by intimate data communication or control flow between those 145 | subprograms and other parts of the work. 146 | 147 | The Corresponding Source need not include anything that users 148 | can regenerate automatically from other parts of the Corresponding 149 | Source. 150 | 151 | The Corresponding Source for a work in source code form is that 152 | same work. 153 | 154 | 2. Basic Permissions. 155 | 156 | All rights granted under this License are granted for the term of 157 | copyright on the Program, and are irrevocable provided the stated 158 | conditions are met. This License explicitly affirms your unlimited 159 | permission to run the unmodified Program. The output from running a 160 | covered work is covered by this License only if the output, given its 161 | content, constitutes a covered work. This License acknowledges your 162 | rights of fair use or other equivalent, as provided by copyright law. 163 | 164 | You may make, run and propagate covered works that you do not 165 | convey, without conditions so long as your license otherwise remains 166 | in force. You may convey covered works to others for the sole purpose 167 | of having them make modifications exclusively for you, or provide you 168 | with facilities for running those works, provided that you comply with 169 | the terms of this License in conveying all material for which you do 170 | not control copyright. Those thus making or running the covered works 171 | for you must do so exclusively on your behalf, under your direction 172 | and control, on terms that prohibit them from making any copies of 173 | your copyrighted material outside their relationship with you. 174 | 175 | Conveying under any other circumstances is permitted solely under 176 | the conditions stated below. Sublicensing is not allowed; section 10 177 | makes it unnecessary. 178 | 179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. 180 | 181 | No covered work shall be deemed part of an effective technological 182 | measure under any applicable law fulfilling obligations under article 183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or 184 | similar laws prohibiting or restricting circumvention of such 185 | measures. 186 | 187 | When you convey a covered work, you waive any legal power to forbid 188 | circumvention of technological measures to the extent such circumvention 189 | is effected by exercising rights under this License with respect to 190 | the covered work, and you disclaim any intention to limit operation or 191 | modification of the work as a means of enforcing, against the work's 192 | users, your or third parties' legal rights to forbid circumvention of 193 | technological measures. 194 | 195 | 4. Conveying Verbatim Copies. 196 | 197 | You may convey verbatim copies of the Program's source code as you 198 | receive it, in any medium, provided that you conspicuously and 199 | appropriately publish on each copy an appropriate copyright notice; 200 | keep intact all notices stating that this License and any 201 | non-permissive terms added in accord with section 7 apply to the code; 202 | keep intact all notices of the absence of any warranty; and give all 203 | recipients a copy of this License along with the Program. 204 | 205 | You may charge any price or no price for each copy that you convey, 206 | and you may offer support or warranty protection for a fee. 207 | 208 | 5. Conveying Modified Source Versions. 209 | 210 | You may convey a work based on the Program, or the modifications to 211 | produce it from the Program, in the form of source code under the 212 | terms of section 4, provided that you also meet all of these conditions: 213 | 214 | a) The work must carry prominent notices stating that you modified 215 | it, and giving a relevant date. 216 | 217 | b) The work must carry prominent notices stating that it is 218 | released under this License and any conditions added under section 219 | 7. This requirement modifies the requirement in section 4 to 220 | "keep intact all notices". 221 | 222 | c) You must license the entire work, as a whole, under this 223 | License to anyone who comes into possession of a copy. This 224 | License will therefore apply, along with any applicable section 7 225 | additional terms, to the whole of the work, and all its parts, 226 | regardless of how they are packaged. This License gives no 227 | permission to license the work in any other way, but it does not 228 | invalidate such permission if you have separately received it. 229 | 230 | d) If the work has interactive user interfaces, each must display 231 | Appropriate Legal Notices; however, if the Program has interactive 232 | interfaces that do not display Appropriate Legal Notices, your 233 | work need not make them do so. 234 | 235 | A compilation of a covered work with other separate and independent 236 | works, which are not by their nature extensions of the covered work, 237 | and which are not combined with it such as to form a larger program, 238 | in or on a volume of a storage or distribution medium, is called an 239 | "aggregate" if the compilation and its resulting copyright are not 240 | used to limit the access or legal rights of the compilation's users 241 | beyond what the individual works permit. Inclusion of a covered work 242 | in an aggregate does not cause this License to apply to the other 243 | parts of the aggregate. 244 | 245 | 6. Conveying Non-Source Forms. 246 | 247 | You may convey a covered work in object code form under the terms 248 | of sections 4 and 5, provided that you also convey the 249 | machine-readable Corresponding Source under the terms of this License, 250 | in one of these ways: 251 | 252 | a) Convey the object code in, or embodied in, a physical product 253 | (including a physical distribution medium), accompanied by the 254 | Corresponding Source fixed on a durable physical medium 255 | customarily used for software interchange. 256 | 257 | b) Convey the object code in, or embodied in, a physical product 258 | (including a physical distribution medium), accompanied by a 259 | written offer, valid for at least three years and valid for as 260 | long as you offer spare parts or customer support for that product 261 | model, to give anyone who possesses the object code either (1) a 262 | copy of the Corresponding Source for all the software in the 263 | product that is covered by this License, on a durable physical 264 | medium customarily used for software interchange, for a price no 265 | more than your reasonable cost of physically performing this 266 | conveying of source, or (2) access to copy the 267 | Corresponding Source from a network server at no charge. 268 | 269 | c) Convey individual copies of the object code with a copy of the 270 | written offer to provide the Corresponding Source. This 271 | alternative is allowed only occasionally and noncommercially, and 272 | only if you received the object code with such an offer, in accord 273 | with subsection 6b. 274 | 275 | d) Convey the object code by offering access from a designated 276 | place (gratis or for a charge), and offer equivalent access to the 277 | Corresponding Source in the same way through the same place at no 278 | further charge. You need not require recipients to copy the 279 | Corresponding Source along with the object code. If the place to 280 | copy the object code is a network server, the Corresponding Source 281 | may be on a different server (operated by you or a third party) 282 | that supports equivalent copying facilities, provided you maintain 283 | clear directions next to the object code saying where to find the 284 | Corresponding Source. Regardless of what server hosts the 285 | Corresponding Source, you remain obligated to ensure that it is 286 | available for as long as needed to satisfy these requirements. 287 | 288 | e) Convey the object code using peer-to-peer transmission, provided 289 | you inform other peers where the object code and Corresponding 290 | Source of the work are being offered to the general public at no 291 | charge under subsection 6d. 292 | 293 | A separable portion of the object code, whose source code is excluded 294 | from the Corresponding Source as a System Library, need not be 295 | included in conveying the object code work. 296 | 297 | A "User Product" is either (1) a "consumer product", which means any 298 | tangible personal property which is normally used for personal, family, 299 | or household purposes, or (2) anything designed or sold for incorporation 300 | into a dwelling. In determining whether a product is a consumer product, 301 | doubtful cases shall be resolved in favor of coverage. For a particular 302 | product received by a particular user, "normally used" refers to a 303 | typical or common use of that class of product, regardless of the status 304 | of the particular user or of the way in which the particular user 305 | actually uses, or expects or is expected to use, the product. A product 306 | is a consumer product regardless of whether the product has substantial 307 | commercial, industrial or non-consumer uses, unless such uses represent 308 | the only significant mode of use of the product. 309 | 310 | "Installation Information" for a User Product means any methods, 311 | procedures, authorization keys, or other information required to install 312 | and execute modified versions of a covered work in that User Product from 313 | a modified version of its Corresponding Source. The information must 314 | suffice to ensure that the continued functioning of the modified object 315 | code is in no case prevented or interfered with solely because 316 | modification has been made. 317 | 318 | If you convey an object code work under this section in, or with, or 319 | specifically for use in, a User Product, and the conveying occurs as 320 | part of a transaction in which the right of possession and use of the 321 | User Product is transferred to the recipient in perpetuity or for a 322 | fixed term (regardless of how the transaction is characterized), the 323 | Corresponding Source conveyed under this section must be accompanied 324 | by the Installation Information. But this requirement does not apply 325 | if neither you nor any third party retains the ability to install 326 | modified object code on the User Product (for example, the work has 327 | been installed in ROM). 328 | 329 | The requirement to provide Installation Information does not include a 330 | requirement to continue to provide support service, warranty, or updates 331 | for a work that has been modified or installed by the recipient, or for 332 | the User Product in which it has been modified or installed. Access to a 333 | network may be denied when the modification itself materially and 334 | adversely affects the operation of the network or violates the rules and 335 | protocols for communication across the network. 336 | 337 | Corresponding Source conveyed, and Installation Information provided, 338 | in accord with this section must be in a format that is publicly 339 | documented (and with an implementation available to the public in 340 | source code form), and must require no special password or key for 341 | unpacking, reading or copying. 342 | 343 | 7. Additional Terms. 344 | 345 | "Additional permissions" are terms that supplement the terms of this 346 | License by making exceptions from one or more of its conditions. 347 | Additional permissions that are applicable to the entire Program shall 348 | be treated as though they were included in this License, to the extent 349 | that they are valid under applicable law. If additional permissions 350 | apply only to part of the Program, that part may be used separately 351 | under those permissions, but the entire Program remains governed by 352 | this License without regard to the additional permissions. 353 | 354 | When you convey a copy of a covered work, you may at your option 355 | remove any additional permissions from that copy, or from any part of 356 | it. (Additional permissions may be written to require their own 357 | removal in certain cases when you modify the work.) You may place 358 | additional permissions on material, added by you to a covered work, 359 | for which you have or can give appropriate copyright permission. 360 | 361 | Notwithstanding any other provision of this License, for material you 362 | add to a covered work, you may (if authorized by the copyright holders of 363 | that material) supplement the terms of this License with terms: 364 | 365 | a) Disclaiming warranty or limiting liability differently from the 366 | terms of sections 15 and 16 of this License; or 367 | 368 | b) Requiring preservation of specified reasonable legal notices or 369 | author attributions in that material or in the Appropriate Legal 370 | Notices displayed by works containing it; or 371 | 372 | c) Prohibiting misrepresentation of the origin of that material, or 373 | requiring that modified versions of such material be marked in 374 | reasonable ways as different from the original version; or 375 | 376 | d) Limiting the use for publicity purposes of names of licensors or 377 | authors of the material; or 378 | 379 | e) Declining to grant rights under trademark law for use of some 380 | trade names, trademarks, or service marks; or 381 | 382 | f) Requiring indemnification of licensors and authors of that 383 | material by anyone who conveys the material (or modified versions of 384 | it) with contractual assumptions of liability to the recipient, for 385 | any liability that these contractual assumptions directly impose on 386 | those licensors and authors. 387 | 388 | All other non-permissive additional terms are considered "further 389 | restrictions" within the meaning of section 10. If the Program as you 390 | received it, or any part of it, contains a notice stating that it is 391 | governed by this License along with a term that is a further 392 | restriction, you may remove that term. If a license document contains 393 | a further restriction but permits relicensing or conveying under this 394 | License, you may add to a covered work material governed by the terms 395 | of that license document, provided that the further restriction does 396 | not survive such relicensing or conveying. 397 | 398 | If you add terms to a covered work in accord with this section, you 399 | must place, in the relevant source files, a statement of the 400 | additional terms that apply to those files, or a notice indicating 401 | where to find the applicable terms. 402 | 403 | Additional terms, permissive or non-permissive, may be stated in the 404 | form of a separately written license, or stated as exceptions; 405 | the above requirements apply either way. 406 | 407 | 8. Termination. 408 | 409 | You may not propagate or modify a covered work except as expressly 410 | provided under this License. Any attempt otherwise to propagate or 411 | modify it is void, and will automatically terminate your rights under 412 | this License (including any patent licenses granted under the third 413 | paragraph of section 11). 414 | 415 | However, if you cease all violation of this License, then your 416 | license from a particular copyright holder is reinstated (a) 417 | provisionally, unless and until the copyright holder explicitly and 418 | finally terminates your license, and (b) permanently, if the copyright 419 | holder fails to notify you of the violation by some reasonable means 420 | prior to 60 days after the cessation. 421 | 422 | Moreover, your license from a particular copyright holder is 423 | reinstated permanently if the copyright holder notifies you of the 424 | violation by some reasonable means, this is the first time you have 425 | received notice of violation of this License (for any work) from that 426 | copyright holder, and you cure the violation prior to 30 days after 427 | your receipt of the notice. 428 | 429 | Termination of your rights under this section does not terminate the 430 | licenses of parties who have received copies or rights from you under 431 | this License. If your rights have been terminated and not permanently 432 | reinstated, you do not qualify to receive new licenses for the same 433 | material under section 10. 434 | 435 | 9. Acceptance Not Required for Having Copies. 436 | 437 | You are not required to accept this License in order to receive or 438 | run a copy of the Program. Ancillary propagation of a covered work 439 | occurring solely as a consequence of using peer-to-peer transmission 440 | to receive a copy likewise does not require acceptance. However, 441 | nothing other than this License grants you permission to propagate or 442 | modify any covered work. These actions infringe copyright if you do 443 | not accept this License. Therefore, by modifying or propagating a 444 | covered work, you indicate your acceptance of this License to do so. 445 | 446 | 10. Automatic Licensing of Downstream Recipients. 447 | 448 | Each time you convey a covered work, the recipient automatically 449 | receives a license from the original licensors, to run, modify and 450 | propagate that work, subject to this License. You are not responsible 451 | for enforcing compliance by third parties with this License. 452 | 453 | An "entity transaction" is a transaction transferring control of an 454 | organization, or substantially all assets of one, or subdividing an 455 | organization, or merging organizations. If propagation of a covered 456 | work results from an entity transaction, each party to that 457 | transaction who receives a copy of the work also receives whatever 458 | licenses to the work the party's predecessor in interest had or could 459 | give under the previous paragraph, plus a right to possession of the 460 | Corresponding Source of the work from the predecessor in interest, if 461 | the predecessor has it or can get it with reasonable efforts. 462 | 463 | You may not impose any further restrictions on the exercise of the 464 | rights granted or affirmed under this License. For example, you may 465 | not impose a license fee, royalty, or other charge for exercise of 466 | rights granted under this License, and you may not initiate litigation 467 | (including a cross-claim or counterclaim in a lawsuit) alleging that 468 | any patent claim is infringed by making, using, selling, offering for 469 | sale, or importing the Program or any portion of it. 470 | 471 | 11. Patents. 472 | 473 | A "contributor" is a copyright holder who authorizes use under this 474 | License of the Program or a work on which the Program is based. The 475 | work thus licensed is called the contributor's "contributor version". 476 | 477 | A contributor's "essential patent claims" are all patent claims 478 | owned or controlled by the contributor, whether already acquired or 479 | hereafter acquired, that would be infringed by some manner, permitted 480 | by this License, of making, using, or selling its contributor version, 481 | but do not include claims that would be infringed only as a 482 | consequence of further modification of the contributor version. For 483 | purposes of this definition, "control" includes the right to grant 484 | patent sublicenses in a manner consistent with the requirements of 485 | this License. 486 | 487 | Each contributor grants you a non-exclusive, worldwide, royalty-free 488 | patent license under the contributor's essential patent claims, to 489 | make, use, sell, offer for sale, import and otherwise run, modify and 490 | propagate the contents of its contributor version. 491 | 492 | In the following three paragraphs, a "patent license" is any express 493 | agreement or commitment, however denominated, not to enforce a patent 494 | (such as an express permission to practice a patent or covenant not to 495 | sue for patent infringement). To "grant" such a patent license to a 496 | party means to make such an agreement or commitment not to enforce a 497 | patent against the party. 498 | 499 | If you convey a covered work, knowingly relying on a patent license, 500 | and the Corresponding Source of the work is not available for anyone 501 | to copy, free of charge and under the terms of this License, through a 502 | publicly available network server or other readily accessible means, 503 | then you must either (1) cause the Corresponding Source to be so 504 | available, or (2) arrange to deprive yourself of the benefit of the 505 | patent license for this particular work, or (3) arrange, in a manner 506 | consistent with the requirements of this License, to extend the patent 507 | license to downstream recipients. "Knowingly relying" means you have 508 | actual knowledge that, but for the patent license, your conveying the 509 | covered work in a country, or your recipient's use of the covered work 510 | in a country, would infringe one or more identifiable patents in that 511 | country that you have reason to believe are valid. 512 | 513 | If, pursuant to or in connection with a single transaction or 514 | arrangement, you convey, or propagate by procuring conveyance of, a 515 | covered work, and grant a patent license to some of the parties 516 | receiving the covered work authorizing them to use, propagate, modify 517 | or convey a specific copy of the covered work, then the patent license 518 | you grant is automatically extended to all recipients of the covered 519 | work and works based on it. 520 | 521 | A patent license is "discriminatory" if it does not include within 522 | the scope of its coverage, prohibits the exercise of, or is 523 | conditioned on the non-exercise of one or more of the rights that are 524 | specifically granted under this License. You may not convey a covered 525 | work if you are a party to an arrangement with a third party that is 526 | in the business of distributing software, under which you make payment 527 | to the third party based on the extent of your activity of conveying 528 | the work, and under which the third party grants, to any of the 529 | parties who would receive the covered work from you, a discriminatory 530 | patent license (a) in connection with copies of the covered work 531 | conveyed by you (or copies made from those copies), or (b) primarily 532 | for and in connection with specific products or compilations that 533 | contain the covered work, unless you entered into that arrangement, 534 | or that patent license was granted, prior to 28 March 2007. 535 | 536 | Nothing in this License shall be construed as excluding or limiting 537 | any implied license or other defenses to infringement that may 538 | otherwise be available to you under applicable patent law. 539 | 540 | 12. No Surrender of Others' Freedom. 541 | 542 | If conditions are imposed on you (whether by court order, agreement or 543 | otherwise) that contradict the conditions of this License, they do not 544 | excuse you from the conditions of this License. If you cannot convey a 545 | covered work so as to satisfy simultaneously your obligations under this 546 | License and any other pertinent obligations, then as a consequence you may 547 | not convey it at all. For example, if you agree to terms that obligate you 548 | to collect a royalty for further conveying from those to whom you convey 549 | the Program, the only way you could satisfy both those terms and this 550 | License would be to refrain entirely from conveying the Program. 551 | 552 | 13. Use with the GNU Affero General Public License. 553 | 554 | Notwithstanding any other provision of this License, you have 555 | permission to link or combine any covered work with a work licensed 556 | under version 3 of the GNU Affero General Public License into a single 557 | combined work, and to convey the resulting work. The terms of this 558 | License will continue to apply to the part which is the covered work, 559 | but the special requirements of the GNU Affero General Public License, 560 | section 13, concerning interaction through a network will apply to the 561 | combination as such. 562 | 563 | 14. Revised Versions of this License. 564 | 565 | The Free Software Foundation may publish revised and/or new versions of 566 | the GNU General Public License from time to time. Such new versions will 567 | be similar in spirit to the present version, but may differ in detail to 568 | address new problems or concerns. 569 | 570 | Each version is given a distinguishing version number. If the 571 | Program specifies that a certain numbered version of the GNU General 572 | Public License "or any later version" applies to it, you have the 573 | option of following the terms and conditions either of that numbered 574 | version or of any later version published by the Free Software 575 | Foundation. If the Program does not specify a version number of the 576 | GNU General Public License, you may choose any version ever published 577 | by the Free Software Foundation. 578 | 579 | If the Program specifies that a proxy can decide which future 580 | versions of the GNU General Public License can be used, that proxy's 581 | public statement of acceptance of a version permanently authorizes you 582 | to choose that version for the Program. 583 | 584 | Later license versions may give you additional or different 585 | permissions. However, no additional obligations are imposed on any 586 | author or copyright holder as a result of your choosing to follow a 587 | later version. 588 | 589 | 15. Disclaimer of Warranty. 590 | 591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 599 | 600 | 16. Limitation of Liability. 601 | 602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 610 | SUCH DAMAGES. 611 | 612 | 17. Interpretation of Sections 15 and 16. 613 | 614 | If the disclaimer of warranty and limitation of liability provided 615 | above cannot be given local legal effect according to their terms, 616 | reviewing courts shall apply local law that most closely approximates 617 | an absolute waiver of all civil liability in connection with the 618 | Program, unless a warranty or assumption of liability accompanies a 619 | copy of the Program in return for a fee. 620 | 621 | END OF TERMS AND CONDITIONS 622 | 623 | How to Apply These Terms to Your New Programs 624 | 625 | If you develop a new program, and you want it to be of the greatest 626 | possible use to the public, the best way to achieve this is to make it 627 | free software which everyone can redistribute and change under these terms. 628 | 629 | To do so, attach the following notices to the program. It is safest 630 | to attach them to the start of each source file to most effectively 631 | state the exclusion of warranty; and each file should have at least 632 | the "copyright" line and a pointer to where the full notice is found. 633 | 634 | {one line to give the program's name and a brief idea of what it does.} 635 | Copyright (C) {year} {name of author} 636 | 637 | This program is free software: you can redistribute it and/or modify 638 | it under the terms of the GNU General Public License as published by 639 | the Free Software Foundation, either version 3 of the License, or 640 | (at your option) any later version. 641 | 642 | This program is distributed in the hope that it will be useful, 643 | but WITHOUT ANY WARRANTY; without even the implied warranty of 644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 645 | GNU General Public License for more details. 646 | 647 | You should have received a copy of the GNU General Public License 648 | along with this program. If not, see . 649 | 650 | Also add information on how to contact you by electronic and paper mail. 651 | 652 | If the program does terminal interaction, make it output a short 653 | notice like this when it starts in an interactive mode: 654 | 655 | {project} Copyright (C) {year} {fullname} 656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 657 | This is free software, and you are welcome to redistribute it 658 | under certain conditions; type `show c' for details. 659 | 660 | The hypothetical commands `show w' and `show c' should show the appropriate 661 | parts of the General Public License. Of course, your program's commands 662 | might be different; for a GUI interface, you would use an "about box". 663 | 664 | You should also get your employer (if you work as a programmer) or school, 665 | if any, to sign a "copyright disclaimer" for the program, if necessary. 666 | For more information on this, and how to apply and follow the GNU GPL, see 667 | . 668 | 669 | The GNU General Public License does not permit incorporating your program 670 | into proprietary programs. If your program is a subroutine library, you 671 | may consider it more useful to permit linking proprietary applications with 672 | the library. If this is what you want to do, use the GNU Lesser General 673 | Public License instead of this License. But first, please read 674 | . 675 | -------------------------------------------------------------------------------- /ipynb/specialplots.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": { 3 | "name": "", 4 | "signature": "sha256:fe82ac94f54e696eb995452a84f9e56f9e20ec72a16fb7c94cbeafef2f0db749" 5 | }, 6 | "nbformat": 3, 7 | "nbformat_minor": 0, 8 | "worksheets": [ 9 | { 10 | "cells": [ 11 | { 12 | "cell_type": "markdown", 13 | "metadata": {}, 14 | "source": [ 15 | "[Sebastian Raschka](http://www.sebastianraschka.com)" 16 | ] 17 | }, 18 | { 19 | "cell_type": "code", 20 | "collapsed": false, 21 | "input": [ 22 | "import time\n", 23 | "print('Last updated:', time.strftime('%m/%d/%Y'))" 24 | ], 25 | "language": "python", 26 | "metadata": {}, 27 | "outputs": [ 28 | { 29 | "output_type": "stream", 30 | "stream": "stdout", 31 | "text": [ 32 | "Last updated: 07/13/2014\n" 33 | ] 34 | } 35 | ], 36 | "prompt_number": 1 37 | }, 38 | { 39 | "cell_type": "code", 40 | "collapsed": false, 41 | "input": [ 42 | "%matplotlib inline" 43 | ], 44 | "language": "python", 45 | "metadata": {}, 46 | "outputs": [], 47 | "prompt_number": 2 48 | }, 49 | { 50 | "cell_type": "heading", 51 | "level": 1, 52 | "metadata": {}, 53 | "source": [ 54 | "Sections" 55 | ] 56 | }, 57 | { 58 | "cell_type": "markdown", 59 | "metadata": {}, 60 | "source": [ 61 | "- [Basic triangulation](#Basic-triangulation)\n" 62 | ] 63 | }, 64 | { 65 | "cell_type": "markdown", 66 | "metadata": {}, 67 | "source": [ 68 | "
\n", 69 | "
" 70 | ] 71 | }, 72 | { 73 | "cell_type": "heading", 74 | "level": 1, 75 | "metadata": {}, 76 | "source": [ 77 | "Basic triangulation" 78 | ] 79 | }, 80 | { 81 | "cell_type": "markdown", 82 | "metadata": {}, 83 | "source": [ 84 | "[[back to top](#Sections)]" 85 | ] 86 | }, 87 | { 88 | "cell_type": "code", 89 | "collapsed": false, 90 | "input": [ 91 | "from matplotlib import pyplot as plt\n", 92 | "import matplotlib.tri as tri\n", 93 | "import numpy as np\n", 94 | "\n", 95 | "rand_data = np.random.randn(50, 2)\n", 96 | "\n", 97 | "triangulation = tri.Triangulation(rand_data[:,0], rand_data[:,1])\n", 98 | "\n", 99 | "plt.triplot(triangulation)\n", 100 | "\n", 101 | "plt.show()" 102 | ], 103 | "language": "python", 104 | "metadata": {}, 105 | "outputs": [ 106 | { 107 | "metadata": {}, 108 | "output_type": "display_data", 109 | "png": "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\nTE478aCgIMjLy3OJeENttz1s2DDMnj0b5eXl2L59O168eFFn4aj4+HgMHToUc+fOxcqVK+ukDAb+\nYEQdwLFjx/D06VO4ubkJZSc9PR1GRkYAgNDQUDg4OGDIkCHYsmWLUHbZbDYyMjJqrPF//PgR7dq1\n4xL7o0ePAgBWrVpVSazz8/OhqKhYrUirqqpCRUUFioqKAoeHioqKICsri9u3b2Py5MkICgpCXFwc\nDh48iLCwMMyaNQtz5syBmpoaX3azsrJgb2+PiooKXLhwQeiwQnZ2diWx9/Pz4+xXUFDAwoULYW1t\nDRMTk0o3r4ZEVlYWtLS08O7dO5iamsLT0xP9+/ev0zJTUlIwdOhQTJgwAZs3b2bGZBczjb71CxFR\nSEgIde/eXWg7AQEBZGZmRlZWVnT9+nX6/Pkz6evr06FDh0TgZc2wWCxKT0+nFy9e0NWrV+nIkSNc\nrUWOHz9Ot27dolevXlF6enqdtrz4BpvNpmbNmlFpaSn99ddfZGRkRDk5OUREFBMTQwsWLCAZGRma\nPHkyPX78mK8WLBUVFeTi4kJaWlr08uVLkfrNYrFISUmJnj59Svfv36c9e/aQk5MTde3alSQkJMjQ\n0JAmT55MW7dupRs3blBKSkqDaX1z6tQpGjt2LK1evZocHR3rrdyMjAzq3r07LVy4sF6uLYbqQWOd\nzu57CgsLSUJCgkpLS4Wyc/z4cZo+fTqtXr2aNm7cSERfm/2pqamRt7e3KFzli86dO9OlS5fIysqK\nBg0aJJaJs2VkZDjNHOfOnUsjR47kmmYvJyeH9u/fT7q6utSzZ09yd3fnq1PThQsXSF5ens6dOycy\nn589e0ZGRkZV7istLaXw8HA6ffo0LV++nKysrEhBQYHk5ORo8ODBtHTpUnJ3d6ewsDChrydBGDNm\nDG3YsIHk5OTo48eP9Vp2dnY29evXj6ZPny50xykGwQEj6l8xMjKiV69eCWVjxYoVtHXrVvL29iZb\nW1vO9rCwMFJQUKCAgABh3eSZ169fU4cOHYjFYlFFRQWtXbuWOnTowNdk26JAQ0ODEhISiOhrD1BL\nS0tatWpVpXQsFouuX79Ow4cPJ0VFRVq3bh2lpKTwVEZ4eDjp6OjQ8uXLRSImGzZsoJUrV/Kcns1m\n06dPn+jWrVu0fft2sre3J2NjY2rdujV17tyZpk6dSrt27aK7d+9Senq60P5VR35+PklKSlLfvn1p\n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\n3LghUNnfuHDhAg0dOlQoG0REiYmJ1KtXLxo/fjxnejlBOXr0KP322288pT19+jTp6OiILKZdUVFB\nvr6+NHToUFJSUqINGzZQREQEDRkyhIYOHUqZmZmctJGRkaSlpSXwjaykpIQiIyPJ29ubtmzZQk5O\nTtSnTx+SlpYmGRkZMjMzo+nTp9O2bdvo8uXL9ObNmzrpnLNlyxays7Orcl9paSndunWLZs6cSbKy\nstSvXz/av3+/WF5g+vn5kby8vNDXPENlwIj6/8Nisah9+/Zcf3ZeyMvLIwkJiUpjXvz35WlNfKup\nPn36lK+yv2fMmDH0zz//CJz/e0pKSmjOnDmkr68vVIcpDw8Pmjx5Ms/pV65cSYMGDRL5S9s3b97Q\n3LlzSVpamiZNmkT9+vUjHR0dTseo7du30/z582u08a3n6IMHD+ivv/6iJUuW0IgRI0hHR4datWpF\n+vr6ZGtrSytWrKDjx49TUFAQZWRk1Ou4MIWFhaSurk5PnjypMV1paSnduHGDpk+fTjIyMtS/f386\nePBgvQ4tEBwcTIqKitW2jmIQDDCizk2/fv34nqorNDSUunTpUmn7p0+fSFZWluc/ta+vLykrK1Ns\nbCxf5RN9nbJMUlJS5B09Tp06JdTYKr6+vtW2AqqKiooKGjlyZK0CKyjZ2dm0Z88e0tbW5rQYOX36\nNPXv359u3bpFRF/b8YeHh9OFCxfojz/+IEdHRzI1NaX27duTvLw89evXj5ydnWnHjh105coViomJ\nqZOWQ4Li7u5O5ubmPF93JSUldP36dXJyciJpaWkaOHAgHT58WKgwHq+Eh4eTiooKnThxos7LaiyA\nEXVu5s+fT3v37uUrj4eHR7WPvGpqany1HT558iTp6Ojw/Yc6ceKESOZarYrw8HDq2LEjLViwgO/u\n5wEBAdS/f3++8uTk5JChoSEdPXqUr3z8UFFRQdeuXSM5Obkq50A1MjKisWPHkouLC7m5udHjx48b\ndFPH76moqKBu3boJ1P+gpKSErl27RlOnTiVpaWmysLCgI0eO1OlgcG/fviVNTU2+/3cMVQOmSSM3\n3bt357tZY2xsLFdzxu8xNTVFaGgoz7acnZ0xY8YMjBw5stqmgFUhSKsXXunSpQueP3+O5ORkWFhY\nIDk5mee8NTVprA4pKSlcu3YNGzZsQEBAAL/u8kTTpk3RrFkzdO7cmWt769at0aJFC5SUlKCsrAws\nFgtEhCZNmtT7vKeC0qxZM+zevRsuLi4oKyvjK2+rVq1ga2uLM2fOIDU1FcuWLcOTJ09gYGCAwYMH\n4+jRo8jIyBCpv3p6eggMDMTRo0exceNGkTbxZWhYiOUuV10opSbs7e3p9OnTVe77448/qhyVsCbY\nbDbNnj2brKyseKoZf/z4kaSlpeush+o3WCwWbd++nZSVlen+/fs85YmLiyNtbW2Byrt37x4pKSmJ\ntJdkaWkpubu7k4mJCXXt2pXOnj1LZWVlNGzYME7Ntry8nN6+fUtXrlyhbdu2kZOTE5mamlK7du1I\nRUWFBg8eTPPnz6fDhw/TgwcPBG6tUteMHDmS9u3bJxJbRUVF5OPjQ/b29iQlJUWDBw+mo0ePirT7\nf1paGnXt2pWWLFnSIM/njwKY8As3xcXF1Lp1a75aJvTo0aPawalu3rxJgwcP5tuPiooKGjt2LDk6\nOtY66cDevXtpxowZfJchKA8ePCAVFRXasmVLrb5lZGSQnJycwGUdOHCATExMKC8vT2AbRES5ubm0\na9cuUlNTIysrK7p79y6XcPz111+1TirBZrPpw4cPdOfOHdq3bx/NmjWLBgwYQPLy8iQtLU3m5ub0\nyy+/0O7du+nGjRv0/v17sU4YERkZSQoKCiIfZ6ioqIguXbpEU6ZMISkpKbKysqK///6bPn/+LLTt\nrKwsMjMzo19++UXkva0bC2BEvTImJib04sULntKy2Wxq165dtX+c9PR0kpKSEqjmUVRURP369aMV\nK1bUmM7U1LRSG/m6JiUlhczNzcnW1pays7OrTVdcXEwtW7YUuBw2m02//vorjRkzRiCBTElJoZUr\nV5KsrCw5ODhUO0vSx48fSUZGRuAhazMyMiggIICOHj1KixcvpqFDh1KHDh2oTZs21L17d3JwcKDN\nmzfTpUuXKCoqqt5erM6aNavW60cYCgsLydvbmyZNmkSSkpI0dOhQOn78uFDvH/Lz82nIkCE0adIk\nsQ4h/KMCRtQrM3XqVDp58iRPaT9+/EgKCgo1ptHQ0ODqEMIPmZmZZGRkVO1jdGxsLCkpKYllppnS\n0lJatGgR6erqVjvULZvNphYtWgjVJru0tJT69+9P69at4zlPZGQkzZgxg2RkZGjx4sWUmJhYax4z\nMzOR3xzz8vLo2bNn5O7uTi4uLjR69GjS09Oj1q1bk6GhIY0fP57Wrl1LZ8+epRcvXlBhYaFIy09N\n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\nERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERER+R74P92rnCAa\nEz3SAAAAAElFTkSuQmCC\n", 110 | "text": [ 111 | "" 112 | ] 113 | } 114 | ], 115 | "prompt_number": 5 116 | }, 117 | { 118 | "cell_type": "markdown", 119 | "metadata": {}, 120 | "source": [ 121 | "
\n", 122 | "
" 123 | ] 124 | } 125 | ], 126 | "metadata": {} 127 | } 128 | ] 129 | } -------------------------------------------------------------------------------- /.ipynb_checkpoints/histograms-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": { 3 | "name": "", 4 | "signature": "sha256:28cf934f5728d76697b22c07794ee28bcf5ff1fd617658148ae03346902a1025" 5 | }, 6 | "nbformat": 3, 7 | "nbformat_minor": 0, 8 | "worksheets": [ 9 | { 10 | "cells": [ 11 | { 12 | "cell_type": "markdown", 13 | "metadata": {}, 14 | "source": [ 15 | "[Sebastian Raschka](http://www.sebastianraschka.com)" 16 | ] 17 | }, 18 | { 19 | "cell_type": "code", 20 | "collapsed": false, 21 | "input": [ 22 | "%load_ext watermark" 23 | ], 24 | "language": "python", 25 | "metadata": {}, 26 | "outputs": [], 27 | "prompt_number": 1 28 | }, 29 | { 30 | "cell_type": "code", 31 | "collapsed": false, 32 | "input": [ 33 | "%watermark" 34 | ], 35 | "language": "python", 36 | "metadata": {}, 37 | "outputs": [ 38 | { 39 | "output_type": "stream", 40 | "stream": "stdout", 41 | "text": [ 42 | "02/07/2014 14:29:03\n", 43 | "\n", 44 | "CPython 3.4.1\n", 45 | "IPython 2.0.0\n", 46 | "\n", 47 | "compiler : GCC 4.2.1 (Apple Inc. build 5577)\n", 48 | "system : Darwin\n", 49 | "release : 13.2.0\n", 50 | "machine : x86_64\n", 51 | "processor : i386\n", 52 | "CPU cores : 4\n", 53 | "interpreter: 64bit\n" 54 | ] 55 | } 56 | ], 57 | "prompt_number": 2 58 | }, 59 | { 60 | "cell_type": "code", 61 | "collapsed": false, 62 | "input": [ 63 | "%matplotlib inline" 64 | ], 65 | "language": "python", 66 | "metadata": {}, 67 | "outputs": [], 68 | "prompt_number": 3 69 | }, 70 | { 71 | "cell_type": "markdown", 72 | "metadata": {}, 73 | "source": [ 74 | "
\n", 75 | "
" 76 | ] 77 | }, 78 | { 79 | "cell_type": "heading", 80 | "level": 1, 81 | "metadata": {}, 82 | "source": [ 83 | "Sections" 84 | ] 85 | }, 86 | { 87 | "cell_type": "markdown", 88 | "metadata": {}, 89 | "source": [ 90 | "- [Simple histogram](#Simple-histogram)\n", 91 | "\n", 92 | "- [Histogram of 2 overlapping data sets](#Histogram-of-2-overlapping-data-sets)" 93 | ] 94 | }, 95 | { 96 | "cell_type": "markdown", 97 | "metadata": {}, 98 | "source": [ 99 | "
\n", 100 | "
" 101 | ] 102 | }, 103 | { 104 | "cell_type": "markdown", 105 | "metadata": {}, 106 | "source": [ 107 | "
\n", 108 | "
" 109 | ] 110 | }, 111 | { 112 | "cell_type": "heading", 113 | "level": 1, 114 | "metadata": {}, 115 | "source": [ 116 | "Simple histogram" 117 | ] 118 | }, 119 | { 120 | "cell_type": "markdown", 121 | "metadata": {}, 122 | "source": [ 123 | "[[back to top](#Sections)]" 124 | ] 125 | }, 126 | { 127 | "cell_type": "code", 128 | "collapsed": false, 129 | "input": [ 130 | "import numpy as np\n", 131 | "import random\n", 132 | "from matplotlib import pyplot as plt\n", 133 | "\n", 134 | "data = [random.gauss(10,10) for i in range(1000)] \n", 135 | "bins = np.arange(-60, 60, 5)\n", 136 | "plt.xlim([min(data)-5, max(data)+5])\n", 137 | "\n", 138 | "plt.hist(data, bins=bins, alpha=0.5)\n", 139 | "plt.title('Random Gaussian data')\n", 140 | "plt.xlabel('variable X')\n", 141 | "plt.ylabel('count')\n", 142 | "\n", 143 | "\n", 144 | "plt.show()\n" 145 | ], 146 | "language": "python", 147 | "metadata": {}, 148 | "outputs": [ 149 | { 150 | "metadata": {}, 151 | "output_type": "display_data", 152 | "png": "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\n", 153 | "text": [ 154 | "" 155 | ] 156 | } 157 | ], 158 | "prompt_number": 3 159 | }, 160 | { 161 | "cell_type": "markdown", 162 | "metadata": {}, 163 | "source": [ 164 | "
\n", 165 | "
" 166 | ] 167 | }, 168 | { 169 | "cell_type": "heading", 170 | "level": 1, 171 | "metadata": {}, 172 | "source": [ 173 | "Histogram of 2 overlapping data sets" 174 | ] 175 | }, 176 | { 177 | "cell_type": "markdown", 178 | "metadata": {}, 179 | "source": [ 180 | "[[back to top](#Sections)]" 181 | ] 182 | }, 183 | { 184 | "cell_type": "code", 185 | "collapsed": false, 186 | "input": [ 187 | "import numpy as np\n", 188 | "import random\n", 189 | "from matplotlib import pyplot as plt\n", 190 | "\n", 191 | "data1 = [random.gauss(15,10) for i in range(500)] \n", 192 | "data2 = [random.gauss(5,5) for i in range(500)] \n", 193 | "bins = np.arange(-60, 60, 2.5)\n", 194 | "plt.xlim([min(data1+data2)-5, max(data1+data2)+5])\n", 195 | "\n", 196 | "plt.hist(data1, bins=bins, alpha=0.3, label='class 1')\n", 197 | "plt.hist(data2, bins=bins, alpha=0.3, label='class 2')\n", 198 | "plt.title('Random Gaussian data')\n", 199 | "plt.xlabel('variable X')\n", 200 | "plt.ylabel('count')\n", 201 | "plt.legend(loc='upper right')\n", 202 | "\n", 203 | "\n", 204 | "plt.show()" 205 | ], 206 | "language": "python", 207 | "metadata": {}, 208 | "outputs": [ 209 | { 210 | "metadata": {}, 211 | "output_type": "display_data", 212 | "png": "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\n", 213 | "text": [ 214 | "" 215 | ] 216 | } 217 | ], 218 | "prompt_number": 4 219 | }, 220 | { 221 | "cell_type": "markdown", 222 | "metadata": {}, 223 | "source": [ 224 | "
\n", 225 | "
" 226 | ] 227 | }, 228 | { 229 | "cell_type": "heading", 230 | "level": 1, 231 | "metadata": {}, 232 | "source": [ 233 | "Histogram as line plot" 234 | ] 235 | }, 236 | { 237 | "cell_type": "markdown", 238 | "metadata": {}, 239 | "source": [ 240 | "[[back to top](#Sections)]" 241 | ] 242 | }, 243 | { 244 | "cell_type": "markdown", 245 | "metadata": {}, 246 | "source": [ 247 | "The line plot below is using bins of a histogram and is particularly useful if you are working with many different overlapping data sets." 248 | ] 249 | }, 250 | { 251 | "cell_type": "code", 252 | "collapsed": false, 253 | "input": [ 254 | "# Generate a random Gaussian dataset with different means\n", 255 | "# 5 rows with 30 columns, where every row represents 1 sample.\n", 256 | "import numpy as np\n", 257 | "\n", 258 | "data = np.ones((5,30))\n", 259 | "for i in range(5):\n", 260 | " data[i,:] = np.random.normal(loc=i/2, scale=1.0, size=30)" 261 | ], 262 | "language": "python", 263 | "metadata": {}, 264 | "outputs": [], 265 | "prompt_number": 33 266 | }, 267 | { 268 | "cell_type": "markdown", 269 | "metadata": {}, 270 | "source": [ 271 | "Via the `numpy.histogram` function, we can categorize our data into distinct bins." 272 | ] 273 | }, 274 | { 275 | "cell_type": "code", 276 | "collapsed": false, 277 | "input": [ 278 | "from math import floor, ceil # for rounding up and down\n", 279 | "\n", 280 | "data_min = floor(data.min()) # minimum val. of the dataset rounded down\n", 281 | "data_max = floor(data.max()) # maximum val. of the dataset rounded up\n", 282 | "\n", 283 | "bins_size = 0.5\n", 284 | "bins = np.arange(floor(data_min), ceil(data_max), bin_size)\n", 285 | "np.histogram(data[0,:], bins=bins)" 286 | ], 287 | "language": "python", 288 | "metadata": {}, 289 | "outputs": [ 290 | { 291 | "metadata": {}, 292 | "output_type": "pyout", 293 | "prompt_number": 34, 294 | "text": [ 295 | "(array([0, 5, 4, 9, 4, 6, 1, 1, 0]),\n", 296 | " array([-2. , -1.5, -1. , -0.5, 0. , 0.5, 1. , 1.5, 2. , 2.5]))" 297 | ] 298 | } 299 | ], 300 | "prompt_number": 34 301 | }, 302 | { 303 | "cell_type": "markdown", 304 | "metadata": {}, 305 | "source": [ 306 | "The [`numpy.histogram`](http://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram.html) function returns a tuple, where the first value is an array of how many samples fall into the first bin, the second bin, and so forth. \n", 307 | "The second value is another NumPy array; it contains the specified bins. Note that all bins but the last one are half open intervals, e.g., the first bin would be `[-1, -0.5)` (including -1, but not including -0.5), and the second bin would be `[-0.5, 0.)` (including -0.5, but not including 0). But the last bin is defined as `[4., 4.5]` (including 4 and including 4.5)." 308 | ] 309 | }, 310 | { 311 | "cell_type": "code", 312 | "collapsed": false, 313 | "input": [ 314 | "from matplotlib import pyplot as plt\n", 315 | "\n", 316 | "markers = ['^', 'v', 'o', 'p', 'x', 's', 'p', ',']\n", 317 | "\n", 318 | "plt.figure(figsize=(13,8))\n", 319 | "\n", 320 | "\n", 321 | "for row in range(data.shape[0]):\n", 322 | " hist = np.histogram(data[row,:], bins=bins)\n", 323 | " plt.errorbar(hist[1][:-1] + bin_size/2, \n", 324 | " hist[0], \n", 325 | " alpha=0.3,\n", 326 | " xerr=bin_size/2,\n", 327 | " capsize=0,\n", 328 | " fmt=None,\n", 329 | " linewidth=8,\n", 330 | " )\n", 331 | "\n", 332 | "plt.legend(['sample %s'%i for i in range(1, 6)])\n", 333 | "plt.grid()\n", 334 | "\n", 335 | "\n", 336 | "plt.title('Histogram showing bar heights but without bar area', fontsize=18)\n", 337 | "plt.ylabel('count', fontsize=14)\n", 338 | "plt.xlabel('X value (bin size = %s)'%bin_size, fontsize=14)\n", 339 | "\n", 340 | "plt.xticks(bins + bin_size)\n", 341 | "\n", 342 | "plt.show()" 343 | ], 344 | "language": "python", 345 | "metadata": {}, 346 | "outputs": [ 347 | { 348 | "metadata": {}, 349 | "output_type": "display_data", 350 | "png": "iVBORw0KGgoAAAANSUhEUgAAAw4AAAIACAYAAAArPzuJAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XtcVXW+//H33kjcBEHzmgKatzDLS2aICtZ0sZKxKUed\nknBStLLrlNdMJytT09GZ8QZz8lLpceY3Y6XUjCWhTOlhLExyVNQS62SWeAUVMdfvDw973ALrC8J2\nb+H1fDx46Fqstddnv1no+u71/X6Xw7IsSwAAAABgw+ntAgAAAAD4PhoOAAAAAIxoOAAAAAAwouEA\nAAAAwIiGAwAAAAAjGg4AAAAAjGg4ALVcQkKCWrdu7e0y8H8yMzPldDq1bNkyj2x/pbjc5+XUqVPl\ndDq1f//+Sm3vdDo1fPhwD1cFAFcWGg7AFaL0AnL27NkVbuN0OjVgwAC3dQ6HQw6Ho8rH27p1q6ZO\nnar8/Pwq7wt7F/9M9u3bp6lTp+qLL76w3cebMjMz9dvf/lbHjh2r9D5Lly7VvHnzKvy+t9+TyaXU\n98477+i3v/2tB6oBAO+j4QBcYUwXMxd//8MPP9SuXbuqfJytW7fqpZdeouFQw+Lj43Xq1Ck99NBD\nrnX79u3TSy+9ZNtw8LZLbTjMnTvXg1V5zunTp5WWllbl/Wg4AKjNaDgAtVy9evXk7+9/yfv7wsPl\nT5w44e0SaozD4dBVV10lp7PsP7++kLVJVWv09bsKFbnqqqvk5+d3Sfv6wnu2LEtFRUXeLqNG1cb3\nBFxpaDgAtVx5fcm3b9+uQYMG6ZprrlFgYKCaN2+uW2+9Ve+//76k8/3Bf/3rX0uS+vXrJ6fTWabP\n96FDh/T444+rVatWCggIUGRkpMaMGaPDhw+XqWHfvn26//77FRYWpgYNGmjgwIHat2+foqOj1a9f\nP7dtS4+zfv169e7dW6GhoUpMTJQkfffdd/rNb36jLl26qGHDhgoKClKnTp00c+ZMnTt3zu11li5d\nKqfTqYyMDL388suKjo5WcHCwevbsqU8++UTS+U/Re/furfr166tFixZ6+eWXK5Vp69atlZCQ4LZu\n+vTpcjqdGjhwoNv6cePGyel06scff3Qd0+l0avny5a46b731VknS8OHDXVlfnItlWVqyZIk6deqk\nwMBARUdHa9asWeXW98477yguLk7169dXaGioevfurffee6/MdhX14y/NbuPGjZKk5ORkvfTSS673\nXlqj3Sfr0dHR2rhxo/bt2+fa/sLXLHXgwAENHTpUDRs2VEhIiO666y7t3r27zOsVFxfr1VdfVadO\nnRQUFKSIiAglJiZq69atFdZQntOnT2vixIlq2bKlAgMD1aVLF33wwQeVyiY9PV3x8fFq3LixgoOD\nFRUVpfvvv99Vb0JCgpYvXy7Lstzec+nPWpK2bdum++67T40aNXKdv7NmzSpz/krShg0bFBsbq+Dg\nYDVv3lxPP/20/v3vf5fJ/sJxMPPnz1dMTIyCgoL0+uuvS5Kys7OVnJys9u3bKyQkRGFhYerdu7fe\neeedMsdMTk6W0+nU4cOH9etf/1qNGzdWWFiYfv7zn+vAgQOSpMWLF+u6665TUFCQrrvuunLPrfIU\nFhbqhRdeUM+ePdW4cWMFBgaqXbt2mjBhgk6dOuW2rek9SdKqVavUu3dvhYWFKSQkRLfccov++te/\nljnuqlWrlJiYqKioKAUGBqpx48a67777lJubW6m6AfxHPW8XAKBqioqKdOjQoSrtc+EnoAUFBbr1\n1lvldDo1evRoRUVF6ccff9SWLVuUnZ2tu+++W/fff7++//57paamatKkSbruuuskSddee60k6dix\nY+rVq5f27t2rRx55RN26ddPnn3+uhQsXKiMjQ9nZ2apfv77reH369NGPP/6o0aNH67rrrtPGjRvV\nr18/nTx5stxPZ7ds2aK//vWvSklJcbt427Ztm1avXq1f/OIXuvbaa1VSUqIPPvhA48eP11dffaVF\nixaVea3x48fr3Llzevrpp1VcXKzZs2frrrvu0n/913/p0Ucf1ejRozVs2DCtWrVKL774olq3bq0H\nH3zQNs/bbrtNb731lk6fPq3AwEBJ0vr1610XxufOnXPdUcjIyFCnTp3UuHHjcl8rPj5eEydO1Kuv\nvqpRo0apT58+kqSmTZu6bbdo0SIdPHhQI0aMUHh4uN58802NGzdOLVu21NChQ13bLViwQGPGjNF1\n112nKVOmyLIsLV26VAMHDtTixYs1cuRIt9etzKfjo0eP1okTJ7R69WrNnTtXV199tSTphhtuqHCf\nefPmacKECTp06JBbd6XSc0k6fyHZt29fxcbGavr06frqq680b948/fznP9eXX37pyrCkpER33XWX\nNm3apKSkJD355JM6evSo0tLSFBcXp40bN6p79+7G9yFJDz/8sK666iqNHTtWxcXFmjt3rgYOHKi8\n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\n3x06dFBgYKBbF5v69evLsqwy3W6aNGmiXr16ac2aNdq+fbtrvWVZmj59uiS5fm+aNWumm266Se++\n+65b17KSkhLbJ3GXp7Rhf/HvzZdffqnVq1eXe757qnFWOtbowlpKux9WxbBhwyRJEydOLPcuxYXn\nQ0XvPy0t7bKcN0Btwx0HoA64sBvBsmXL9Lvf/c41pam/v782bNigdevWafDgwQoICJAk1xiGV155\nRYcPH1ZISIjatGmjm2++WWPHjtVf/vIXPf744/r888/VpUsX5eTk6I033lDHjh01duxY1/HGjRun\nFStWaPjw4crOzlaHDh2UlZWlTz/9VFdffXWVLlIeeOABLV68WEOGDNFtt92mgwcPasmSJa5+8TWd\nlZ2IiAjdeOON2rp1q1q3bu02lWe/fv20atUqXXXVVa7pVe106tRJoaGhWrBggYKDg9WgQQM1bdq0\nzF0DU70NGjTQzJkz9fjjj6tnz55KTk52Tcf61VdfafHixW4DrMeMGaOHHnpIt956qx566CEdPXpU\nf/rTnxQdHV3moio2NlbS+Z/nr371KwUGBqpz587l9tm/cJ/09HSNGTNGsbGx8vPz02233eYaq1DZ\nrJ966il9+OGHev75513dwsLCwrR//36tX79eQUFBrvEmnjJixAj97//+r+644w5FRkbq1KlTWrVq\nlYqKipSUlOTaLjY2VvPnz9djjz2mu+++W/7+/rrlllsUHR2tefPmKT4+Xn369NHjjz+upk2bau3a\ntVq3bp0efPBBt5/366+/rttvv129evXSY489prCwMP35z3/WmTNnJFX+4j4mJsb1rJOTJ0+qffv2\nysvLU2pqqm644YZyJxSo7M+lqh544AFNmDBB/fv313333afjx49rxYoVZca5mNx0002aOnWqpk6d\nqi5dumjQoEFq3ry5Dhw4oM8++0wffPCB6wOQu+++W+PHj9ewYcM0ZswYhYeH65NPPtEHH3yga6+9\n9rJ1ywNqjcs7iROAS1U6PeHs2bMr3Ka86SYTEhLcpsTcunWr9fDDD1tt27a1QkJCrLCwMKtLly7W\nnDlzrDNnzrjtu2zZMismJsa66qqrykxP+eOPP1qPPfaY1bJlS8vf399q1aqVNWbMGKugoKBMXV9/\n/bX1i1/8wgoNDbXCwsKsxMREa+/evVajRo2se+65p8x7KG+KUMs6P63i888/b0VFRVmBgYFW+/bt\nrRkzZljr168vM53pkiVLLKfTWe50shUdIzk52XI6neUeuzy/+c1vLKfTaY0YMcJtfVpamuVwOKze\nvXuX2efjjz+2nE5nmalX33//fatbt25WYGCg2zS1FW1vV+/q1autXr16WSEhIVZISIgVFxdnvfvu\nu+W+h1mzZllRUVFWQECAFRMTYy1ZssRaunRpudnNnDnTatOmjeXv7285nU63KUHLc/LkSeuRRx6x\nmjZtavn5+bm95sXnZamvv/66zHSjlmVZZ8+etX7/+99bPXr0cL2v9u3bWw899JBrWlw7U6dOtZxO\nZ7nTyUZHR5c7LfCF58jf/vY3KzEx0WrZsqUVEBBgNW7c2EpISLD+9re/ue137tw567nnnrNatmzp\nes8X/uy++OILa+DAgVbDhg1dmc+aNcs6d+5cmboyMjKsW265xQoMDLSaNWtmPfHEE9bmzZvLTGNr\nd45YlmXl5+dbgwYNsho3bmwFBwdbPXv2tN55551yM6nonLI7Rnn5leenn36ypk+fbrVt29YKCAiw\noqOjrXHjxlk7duwod4pZu/dkWZaVnp5u3Xnnna4sIyMjrbvvvttavHix23YbN260evfubYWGhlrh\n4eHWvffea23fvr3CcxBAxRyW5aGPFirw61//Wunp6WrSpInrqY2HDx/W4MGDlZ+fr+joaP35z392\nTX0HoHYqKChQ48aNNXr0aC1YsMDb5QBXhL/+9a8aNGiQ/vu//1u//OUvvV0OgDrmso9xGD58eJmB\nUK+99ppuv/125eXl6bbbbqtyf0cAvu3CPvSlSn/PL+xzD+A/Tp8+7bZcUlKiOXPmyN/fv0am+AWA\nqrrsdxwkad++fRowYIDrjkPHjh21YcMGNW3aVN9//70SEhLKnU0CwJWpX79+io6OVteuXXXu3Dmt\nX79e6enpiouL08aNG706Uw7gi06fPq2oqCg99NBDat++vQoKCrRq1Srl5uZq/PjxevXVV71dIoA6\nyCcGRx88eFBNmzaVJDVt2pSZDoBaZsCAAVq+fLlWr16tU6dOqVWrVnruuec0ZcoUGg1AOa666ird\ne++9evfdd3XgwAHXA88WLFig0aNHe7s8AHWUT9xxiIiIcJu6rqK5xdu2bau9e/detjoBAACA2uba\na6/Vnj17qryfT9xxKO2i1KxZMx04cEBNmjQpd7u9e/d6bJq42qB0ejpUjIzskY8ZGZmRkT3yMSMj\n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\nbr3Lzs522rRp4zRq1Mhp27atM3v2bNbPcWwZRfoaevfdd51AIOAkJyc7KSkpTkpKirN06VLW0fdC\nySfS19DGjRud1NRUJzk52UlKSnKmTJniOM6pfS/jD8ABAAAAsGKrEgAAAAArGgcAAAAAVjQOAAAA\nAKxoHAAAAABY0TgAAAAAsKJxAAAAAGBF4wAAPjFq1CgNGTKkXj7Wd999p86dO2vVqlWSpOLiYkVF\nRamgoKDOx4RyzqmaN29etb/2GkmmT5+ua6+91usyAKBONA4A8D3HcfSTn/ykxl9BPnjwoDp16qRx\n48a5+vEDgYACgYCrH6PSvHnz1KpVK/30pz8N+THt2rVTaWmpkpOTXasrOztb27dvd+35fyyzZs3S\nRRddpCZNmqhnz55as2aN8fzKpuv4t+XLlwfPueOOO7R27Vp98MEHbpcPACeFxgEAvhcIBDR//ny9\n8847mjt3bvD2hx9+WI7j6JlnnnH14zuOo/r6m5wzZszQ6NGjT+gxUVFRat26tRo0aOBSVVLjxo3V\nqlUr157/x7Bw4UKNHz9ejz76qAoLC9W7d29lZmaqpKTE+ti33npLpaWlwbf+/fsH72vcuLFuuOEG\nzZw5083yAeCk0TgAQBUXXXSRpk6dqvvuu0//+9//tHLlSuXk5GjevHlq0qRJrY9Zvny5zjzzTH31\n1VfVbv/Nb34T/O18WVmZfv7znysuLk7R0dHq1q2b5s2bZ6wlPT1d99xzT7XbatvONGXKFHXo0EHR\n0dHq3r27FixYYHzeoqIibdy4scaVFUnasmWL+vbtqyZNmqhLly5asWJF8L7jtyrl5uYqKipKb7/9\nttLS0nTWWWfp0ksv1fr1640f/9VXX1X37t0VHR2tli1bKj09XZ9//rmkmluVavstfVTUD9+6du7c\nqezsbLVo0UItWrTQ1VdfrU8++cT48U/VtGnTNHr0aN16663q1KmTpk+frjZt2uiFF16wPrZFixZq\n3bp18K1Ro0bV7h86dKgWLVqkiooKt8oHgJNG4wAAxxk7dqwuv/xyjRgxQmPGjNH999+v3r1713n+\ngAED1KpVK73yyivB2xzH0V//+lfdfPPNkqRvv/1WPXv21JtvvqmioiL96le/0tixY/X222/X+by1\nbV06/rbf/va3mjt3rmbNmqXNmzdrwoQJGjt2rJYuXVrn865evVpxcXE699xza9z30EMPafz48dqw\nYYMyMjI0dOhQ7dq1q87nko41SFOmTFFBQYFatmyp4cOH13luaWmpsrOzNXr0aH388cdavXq1brnl\nFuP5lW8lJSXq0aOH0tPTJR3bQta/f39FR0dr9erVys/PV5s2bTRgwAAdOnSozufMzMxUTEyM8a0u\n5eXlKigo0MCBA6vdPnDgQK1du7bOx1W67rrrFBsbq759+2rRokU17u/Zs6cOHDigDz/80PpcAFDf\nGnpdAAD4UU5Oji6++GJ17NhRkyZNMp4bFRWl7OxsLViwQGPHjpUk5eXlaceOHfrFL34hSTr//PN1\n//33Bx9z++236+2339ZLL72kK664IuS6qm5nOnDggJ599lmtWLFCffr0kSRdeOGFev/99zVz5kwN\nHjy41ufYtm2bLrzwwlrvGzdunIYNGyZJev755/XWW2/phRdeMGYwadKk4KzExIkT1bdvX+3atUvn\nn39+jXN37dql7777Ttdff73atWsnSUpMTKzzuVu3bl2ttr179wbnAl5++WVJ0pw5c4Ln5OTkKDY2\nVm+88YZuuOGGWp9zzpw5xsbC5Msvv1RFRYViY2Nr1FlaWlrn42JiYvTMM8+oT58+atiwoRYvXqyb\nbrpJ8+fPr9ZoNW/eXDExMdq6davS0tJOqkYAcAuNAwDUYvbs2YqOjtaOHTv06aefqlOnTsbzR4wY\noeeee04lJSWKi4vTggULlJ6eHvzhuaKiQpMnT9bChQu1a9cuffvttyovL6+2x/1EFRUV6fDhwxo0\naFC1qxBHjhzRRRddVOfjvvnmG5111lm13terV6/g+4FAQGlpaSoqKjLW0b179+D7bdq0kSR9/vnn\ntTYOKSkpGjBggLp166aBAwdqwIABGjZsmHWuYebMmXrppZeUn5+v5s2bS5I++ugjbd++vcYVgkOH\nDunTTz+t87kqa6xPLVu21H333Rc8vuSSS1RWVqYpU6bUuEJz9tlna+/evfVdIgBY0TgAwHE++OAD\nPfXUU1qyZIlmzZqlkSNHau3atdX21h8vNTVVnTt31oIFC3T//ffrlVde0dSpU4P3T506VdOmTdP0\n6dOVlJSkpk2basKECcG9/bWJioqqMSx95MiRYJNw9OhRSdIbb7wR/O19peP3zlfVrFkzffzxx3UH\nUIXjONZXeqr6sY6v7XiVrySUn5+v5cuXa/bs2ZowYYJWrVpVrQGpauXKlXrwwQe1ePHiag3c0aNH\nlZKSooULF9Z4TGVzUZvMzEzjqyAFAgF98803td7XqlUrNWjQQLt37652++7du0+4Ibn00kurQCrR\nKwAABEhJREFUXS2p9M033+icc845oecCgPpA4wAAVRw+fFi33HKLRo8erUGDBiklJUWJiYmaMmWK\nHnnkEeNjR4wYoQULFigxMVEHDx4MbvmRpDVr1igrKyv422XHcbRlyxa1aNGizuc799xza8wXbNiw\nQRdffLEkqWvXrjrzzDNVXFwc3Pcfig4dOlSbx6jqvffeCz6X4zhat26dbrzxxpCfO1SXX365Lr/8\nck2cOFGJiYn629/+VmvjsG3bNt144416+umnlZGRUe2+Hj166OWXX1bLli3VrFmzkD/27Nmzdfjw\n4ZOq+4wzzlCPHj20fPlyXX/99cHbV6xYUefWqLoUFhbWuCrz9ddfa9++ferYseNJ1QcAbqJxAIAq\nJkyYoPLyck2bNk2SFBsbq5kzZ2rkyJHKyspS165d63zs8OHD9eijj2rixInKyspS06ZNg/d16tRJ\nCxcuVF5enlq2bKk//OEPKi4uNv5m/IorrtD48eO1ZMkSJSQk6I9//KN27NgRbBxiYmL0wAMP6IEH\nHpDjOOrXr5/279+v/Px8NWjQQLfffnutz9uvXz+NGzdOX3zxRY0B6ZycHCUkJKhbt26aNWuWSkpK\ndNddd4Wcn83777+vFStW6KqrrlLr1q21fv16lZSU1JrroUOHlJWVFdzOVHWG4LzzztPw4cM1depU\nDR06VL///e8VFxenkpISvf7667rzzjvVoUOHWmuobQvVifj1r3+tm2++WZdddpl69+6tnJwclZaW\n6s477wyeM2HCBH3wwQf65z//KUmaP3++zjjjDKWkpCgqKip4NWvKlCnVnnvdunWKjo5Wjx49TqlG\nAHADjQMAfG/16tWaMWOGVq5cWW0G4KabbtKiRYs0atQo5efn17llqV27durbt6/WrFlTY5j40Ucf\n1fbt25WZmakmTZpo9OjRGj58uDZv3hw85/hXTBozZow2btyoMWPGSJLuvvtuXXvttSorKwueM2nS\nJMXGxmrq1Km66667dPbZZys1NVUPPfRQnf/OxMREJSUlafHixbrtttuqffzJkydr2rRpKigoUHx8\nvP7+979X+0G7tld5Op5pa1OzZs20du1azZgxQ3v27FG7du00ceLE4BB51cfv3r1bW7Zs0datW6td\nIQkEAqqoqFCTJk20evVqPfLII7rhhhu0d+9enX/++briiiuMDdmpuvHGG1VWVqbHHntMn332mZKS\nkrR06VLFxcUFzyktLa02ZxEIBPTYY4/pv//9rxo0aKBOnTpp7ty51f7dkvT6669r2LBhatiQb88A\n/Cfg1NdfGwIA+Maf/vQnzZ07V3l5eV6Xgu8dOnRI8fHxWrJkiS677DKvywGAGvg7DgAQgUaPHq2y\nsjKtWrXK61LwvRdffFF9+vShaQDgW1xxAAAAAGDFFQcAAAAAVjQOAAAAAKxoHAAAAABY0TgAAAAA\nsKJxAAAAAGBF4wAAAADA6v8DdvAuKXu2/iwAAAAASUVORK5CYII=\n", 351 | "text": [ 352 | "" 353 | ] 354 | } 355 | ], 356 | "prompt_number": 56 357 | }, 358 | { 359 | "cell_type": "code", 360 | "collapsed": false, 361 | "input": [], 362 | "language": "python", 363 | "metadata": {}, 364 | "outputs": [] 365 | } 366 | ], 367 | "metadata": {} 368 | } 369 | ] 370 | } --------------------------------------------------------------------------------