{ "cells": [ { "cell_type": "markdown", "metadata": { "collapsed": false, "id": "GxgGOMgq_tjq" }, "source": [ "# Histogramming and Binning Data with Python" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "id": "rRm12wyo_tjs" }, "source": [ "## 1. Histogramming" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "id": "cz4d2ld8_tju" }, "source": [ "When a measurement is made numerous times, it is often useful to bin (or group) the data\n", "and make a histogram. For example, if the time that it takes a sphere to roll down a ramp\n", "was measured one hundred times, then a histogram of the times would show how they are\n", "distributed. The **`hist`** function from the pylab library is useful for making histograms. The example below makes a histogram from a list of 24 numbers. \n", "You can add labels to the histogram like othe graphs." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 265 }, "id": "sij0MKGJ_tjw", "outputId": "fd463eb0-1d5d-4540-c2f1-b8058655856a" }, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ], "source": [ "import pylab as pl\n", "\n", "t = pl.array([4.94,5.98,5.00,6.06,5.94,5.17,5.12,5.06,\n", " 2.74,2.91,4.24,6.68,4.89,5.88,5.41,5.53,\n", " 3.73,5.80,4.26,5.50,5.73,5.29,7.40,3.55])\n", "pl.figure()\n", "pl.hist(t)\n", "pl.show()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "id": "3d7wT0W3_tjz" }, "source": [ "The first line imports the pylab library, which makes the **`hist`** function available.\n", "\n", "As for other plotting commands, the **`figure`** and **`show`** functions are also needed.\n", "\n", "By default, the histogram will have 10 bins. If no additional arguments are sent, the **`hist`** function decides where to put the boundaries of the bins." ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "id": "wwXJ2DJF_tj0" }, "source": [ "The **`color`** argument can be used to set the color of the bars in the histogram.\n", "Alternatively, the **`edgecolor`** and **`facecolor`** arguments separately set the colors of\n", "the edges and middle of the bars in the histogram, respectively. Some of other color\n", "options are:\n", "
    \n", "r = red
    \n", "g = green
    \n", "b = blue
    \n", "k = black
    \n", "c = cyan
    \n", "m = magenta
    \n", "y = yellow
    \n", "w = white\n", "
\n", "\n", "The default is for the **`edgecolor`** to be the same as the **`facecolor`**. The bins stand out better if the **`edgecolor`** is black. \n", "\n", "The **`facecolor`** argument can also be set to \"None\" so that the bars only have outlines. Alternatively, you can set **`fill`** to False. This is useful if you want to plot data on top of the histograms as shown further below." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 265 }, "id": "5PNd47jp_tj1", "outputId": "1d28b1b9-7912-4b7a-da7c-7fcdd2cd2aaa" }, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ], "source": [ "import pylab as pl\n", "\n", "t = pl.array([4.94,5.98,5.00,6.06,5.94,5.17,5.12,5.06,\n", " 2.74,2.91,4.24,6.68,4.89,5.88,5.41,5.53,\n", " 3.73,5.80,4.26,5.50,5.73,5.29,7.40,3.55])\n", "pl.figure()\n", "pl.hist(t, facecolor='b', edgecolor='k')\n", "pl.show()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "id": "G8YCCZMw_tj2" }, "source": [ "The **`hist`** function returns the number of events in each bin, the edges of the bins, and\n", "things called patches (which will not be discussed further). These values can be captured\n", "by providing three variable names for them as follows." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 302 }, "id": "Wq8wxs_f_tj3", "outputId": "fa44967f-4196-4885-9c44-76c3a231aeb0" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[2. 1. 1. 2. 4. 6. 5. 1. 1. 1.]\n", "[2.74 3.206 3.672 4.138 4.604 5.07 5.536 6.002 6.468 6.934 7.4 ]\n" ] }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ], "source": [ "import pylab as pl\n", "\n", "t = pl.array([4.94,5.98,5.00,6.06,5.94,5.17,5.12,5.06,\n", " 2.74,2.91,4.24,6.68,4.89,5.88,5.41,5.53,\n", " 3.73,5.80,4.26,5.50,5.73,5.29,7.40,3.55])\n", "pl.figure()\n", "events, edges, patches = pl.hist(t, edgecolor='k')\n", "print(events)\n", "print(edges)\n", "pl.show()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "id": "DYs7VrVv_tj4" }, "source": [ "The array `events` contains the numbers of occurences in the 10 bins. The array `edges`\n", "contain 11 elements. (The first 10 elements are the lower edges of the bins and the final element is the upper edge of the final bin.) The bins are the same width, but the edges may end up in unusual places. A number is included in a bin if it is greater than or equal to its lower edge and less than its upper edge." ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "id": "a3FQBl25_tj5" }, "source": [ "If you set the **`density`** argument to “True”, the function will make an area-normalized\n", "histogram. For each bin, the height on the histogram is the probability density, which is\n", "the number of events in the bin divided by the total number of events and the width of the\n", "bin. The area of each bin in the histogram is the probability of an event being in that bin,\n", "so the total area is one. With this option, the probability density is returned instead of the\n", "number of events. Compare the example below with the previous example." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 321 }, "id": "8RZnPiUx_tj6", "outputId": "cde08c78-0ac5-47c0-e5be-e57b74450d7f" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[0.1788269 0.08941345 0.08941345 0.1788269 0.35765379 0.53648069\n", " 0.44706724 0.08941345 0.08941345 0.08941345]\n", "[2.74 3.206 3.672 4.138 4.604 5.07 5.536 6.002 6.468 6.934 7.4 ]\n" ] }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ], "source": [ "import pylab as pl\n", "\n", "t = pl.array([4.94,5.98,5.00,6.06,5.94,5.17,5.12,5.06,\n", " 2.74,2.91,4.24,6.68,4.89,5.88,5.41,5.53,\n", " 3.73,5.80,4.26,5.50,5.73,5.29,7.40,3.55])\n", "pl.figure()\n", "events, edges, patches = pl.hist(t, density=True, edgecolor='k')\n", "print(events)\n", "print(edges)\n", "pl.show()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "id": "Y7yWkY58_tj7" }, "source": [ "You can control the number of bins by setting the **`bins`** argument to an integer, but this doesn’t control the locations of the edges. Choosing an appropriate number of bins is important. If there are too few or too many bins, the histogram won’t show how the events are distributed very well. For example, the same example data is histogrammed below with 3 and 30 bins." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 513 }, "id": "GDkmXd6y_tj8", "outputId": "95c9c6bc-391d-4990-b467-28da44a5e858" }, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ], "source": [ "import pylab as pl\n", "\n", "t = pl.array([4.94,5.98,5.00,6.06,5.94,5.17,5.12,5.06,\n", " 2.74,2.91,4.24,6.68,4.89,5.88,5.41,5.53,\n", " 3.73,5.80,4.26,5.50,5.73,5.29,7.40,3.55])\n", "pl.figure()\n", "pl.hist(t, bins=3, edgecolor='k')\n", "\n", "pl.figure()\n", "pl.hist(t, bins=30, edgecolor='k')\n", "\n", "pl.show()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "id": "9rtgdLMW_tj9" }, "source": [ "If you want to have control over the number and location of the bins, you can make the\n", "**`bins`** argument an array. If you want *N* bins, the array will have (*N* + 1) elements. The\n", "first *N* elements are the lower edges of the bins and the final element is the upper edge of\n", "the final bin. Usually the bins have equal widths, but they can be made unequal. The array can be made with the **`linspace`** function from the scipy library, which will need to be imported.\n", "You must specify the first element of the array (the lower edge of the first bin), the last\n", "element of the array (the upper edge of the final bin), and the number of elements in the\n", "array (one more than the number of bins). The example below would produce2 10 bins\n", "(not 11) starting at 0 and ending at 10. For the example data, some of the bins are\n", "empty and aren't displayed." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 265 }, "id": "CpWNWkeC_tj9", "outputId": "73b04f1b-dd0b-4a4a-d81d-78da4859c78e" }, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ], "source": [ "import pylab as pl\n", "\n", "t = pl.array([4.94,5.98,5.00,6.06,5.94,5.17,5.12,5.06,\n", " 2.74,2.91,4.24,6.68,4.89,5.88,5.41,5.53,\n", " 3.73,5.80,4.26,5.50,5.73,5.29,7.40,3.55])\n", "bins = pl.linspace(0, 10, 11)\n", "pl.figure()\n", "pl.hist(t, bins, edgecolor='k')\n", "pl.show()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "id": "1msgrWTI_tj-" }, "source": [ "It is also possible to set the upper and lower limits of the bins using the **`range`** argument.\n", "Values outside of the specified range are ignored. The following example does the same\n", "as the previous example because the default number of bins is 10." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 284 }, "id": "McZwO0T1_tj-", "outputId": "46d87928-54fb-4dcd-823b-b5e0fab0aa0b" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[ 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.]\n" ] }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ], "source": [ "import pylab as pl\n", "\n", "t = pl.array([4.94,5.98,5.00,6.06,5.94,5.17,5.12,5.06,\n", " 2.74,2.91,4.24,6.68,4.89,5.88,5.41,5.53,\n", " 3.73,5.80,4.26,5.50,5.73,5.29,7.40,3.55])\n", "pl.figure()\n", "events, edges, patches = pl.hist(t, range=(0.0,10.0), edgecolor='k')\n", "print(edges)\n", "pl.show()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "id": "_4yc3pHJ_tj-" }, "source": [ "Note that in all of the examples above the center of each bin is placed midway between the edges, which define what values are counted in that bin. If the values being histogrammed are all integers, it makes more sense for the to shift the bins to the left so that they are centered over integers. Setting **`align`** to \"left\" will put the center of the bin over the left edge, which will center them over integers." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 265 }, "id": "-1G3FsSm_tj_", "outputId": "4a2ebe6c-0c5e-4d00-e23d-79fbbb87c6ec" }, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ], "source": [ "import pylab as pl\n", "\n", "N = pl.array([4,5,5,6,5,5,5,5,2,2,4,6,4,5,5,5,3,5,4,5,5,5,7,3])\n", "\n", "pl.figure()\n", "pl.hist(t, range=(0.0,10.0), edgecolor='b',align='left')\n", "pl.show()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "id": "rZYsYC0-_tj_" }, "source": [ "If the bins aren't filled, you can graph points (using **`scatter`**) or curves (using **`plot`**) on the same figure. If the bins are filled, they can hide the points or curves." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 265 }, "id": "PBLm27J1_tj_", "outputId": "31163f86-2b4e-443c-d99b-8204bc5816ba" }, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ], "source": [ "import pylab as pl\n", "\n", "N = pl.array([4,5,5,6,5,5,5,5,2,2,4,6,4,5,5,5,3,5,4,5,5,5,7,3])\n", "bins = pl.linspace(0, 10, 11)\n", "\n", "x = pl.array([2,3,4,5,6,7])\n", "y = pl.array([1,2,3,12,3,2])\n", "\n", "pl.figure()\n", "pl.hist(t, bins, edgecolor='b', fill=False,align='left')\n", "pl.scatter(x,y,c='g')\n", "pl.show()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "id": "-4jCd63O_tkA" }, "source": [ "## 2. Binning Data" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "id": "1lO6FGZu_tkA" }, "source": [ "Sometimes data is binned before it is analyzed. For example, a set of decay times could\n", "be binned before fitting the data to an exponential function. The **`histogram`** function\n", "from the numpy library can be used to bin data without making a plot. The **`histogram`** function is similar to the **`hist`** function described in the previous section. The **`range`** and **`bins`** arguments can be used, but it doesn’t return patches. Associating the locations of the bins and the numbers of events in them is a little tricky\n", "because the `edges` array is one element longer than the `events` array. \n", "\n", "If your counting the occurences of integers, the lower edges are the appropriate thing to use. In the example below, the **`resize`** function makes an array called\n", "`lower` which has a length one less than the length of the `edges` array, so it just contains the lower edges." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "E6a2PiT4_tkA", "outputId": "7e3f2c7c-641e-4aa9-9254-1220862e3b94" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[0. 1. 2. 3. 4. 5. 6. 7. 8. 9.]\n", "[ 0 0 2 2 4 13 2 1 0 0]\n" ] } ], "source": [ "import numpy as np\n", "\n", "N = np.array([4,5,5,6,5,5,5,5,2,2,4,6,4,5,5,5,3,5,4,5,5,5,7,3])\n", "\n", "events, edges = np.histogram(t,range=(0.0,10.0))\n", "lower = np.resize(edges, len(edges)-1)\n", "\n", "print(lower)\n", "print(events)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "id": "QK5Q2in3_tkB" }, "source": [ "For non-integer data, it makes more sense to associate the number of events with the center of bin. For example, the number\n", "of event wiht values of `t` between 0 and 1 should be associated with 0.5. The example\n", "below will make an array called `tmid` which is the same length as `events` and contains\n", "the values of `t` in the middle of the bins. Again, the **`resize`** function makes an array called\n", "`lower` which contains the locations of the lower edges of the bins because the final element is dropped.\n", "An array containing the difference between consecutive elements of the `edges` array is returned by the function **`diff`**. \n", "Adding half of the difference between the edges to the\n", "lower edge gives the value in the middle of a bin. Note that \"`diff(edges)`\" is the same\n", "length as `lower`. " ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "AJ-F8fSV_tkB", "outputId": "13fada7b-cd5c-4f4d-8a09-caf42a55040c" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[0.5 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5]\n", "[ 0 0 2 2 4 13 2 1 0 0]\n" ] } ], "source": [ "import numpy as np\n", "\n", "t = np.array([4.94,5.98,5.00,6.06,5.94,5.17,5.12,5.06,\n", " 2.74,2.91,4.24,6.68,4.89,5.88,5.41,5.53,\n", " 3.73,5.80,4.26,5.50,5.73,5.29,7.40,3.55])\n", "\n", "events, edges = np.histogram(t,range=(0.0,10.0))\n", "lower = np.resize(edges, len(edges)-1)\n", "tmid = lower + 0.5*diff(edges)\n", "\n", "print(tmid)\n", "print(events)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "id": "bTWCuCPD_tkC" }, "source": [ "## Additional Documentation" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "id": "ZzuqPV4W_tkC" }, "source": [ "Further information is available at: \n", "https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.hist.html \n", "http://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram.html" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "name": "python3" }, "language_info": { "name": "python" }, "colab": { "name": "HistogramBin.ipynb", "provenance": [], "collapsed_sections": [] } }, "nbformat": 4, "nbformat_minor": 0 }