{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Plotting Distributions with Histograms" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Make $n$ realizations of a *uniformly distributed* 'random variable' between $[0, 1)$:" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": true }, "outputs": [], "source": [ "n = 1000000" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [], "source": [ "x = np.random.rand(n)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now plot a histogram of the values of $x$. Explore the `normed=True` and `bins=N` arguments to `hist()`." ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(array([ 1.00050314, 0.99952314, 0.99558313, 1.00068314, 0.99910314,\n", " 1.00654316, 0.99696313, 1.00544316, 1.00206315, 0.99656313,\n", " 1.00090314, 0.99814313, 0.99738313, 1.00246315, 0.99800313,\n", " 0.99722313, 1.00034314, 1.00536316, 1.00016314, 0.99710313]),\n", " array([ 1.90800837e-06, 5.00017510e-02, 1.00001594e-01,\n", " 1.50001437e-01, 2.00001280e-01, 2.50001123e-01,\n", " 3.00000966e-01, 3.50000809e-01, 4.00000652e-01,\n", " 4.50000495e-01, 5.00000338e-01, 5.50000181e-01,\n", " 6.00000024e-01, 6.49999867e-01, 6.99999710e-01,\n", " 7.49999553e-01, 7.99999396e-01, 8.49999239e-01,\n", " 8.99999082e-01, 9.49998925e-01, 9.99998768e-01]),\n", " )" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.hist(x, normed=True, bins=20)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now plot the distributions of some *expressions* involving $x$:" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": false }, "outputs": [], "source": [ "#expr = -1 + 2 * x\n", "#expr = x**2\n", "#expr = np.sqrt(np.abs(x))\n", "#expr = np.sin(2*np.pi*x)\n", "#expr = np.log(evens)\n", "\n", "if 1:\n", " evens = x[::2]\n", " odds = x[1::2]\n", " \n", " r = np.sqrt(-2*np.log(evens))\n", " \n", " expr = np.empty_like(x)\n", " expr[::2] = r*np.cos(2*np.pi*odds)\n", " expr[1::2] = r*np.sin(2*np.pi*odds)\n", " " ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEACAYAAACj0I2EAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAF0hJREFUeJzt3Xt0lPWdx/H3lwQEQSRRmkACQUDU9dq6IpYVR1puIsWe\ns3qAXbysK7sirbUHBVs9hLrVpqtH62J362pRtEql3aMoXrDqeKml66UoUliwlVswAQPF4g2R7/4x\nQxzDJDOTPMMkv3xe5+SceZ7n9zzP9xmYT375zXMxd0dERDq+LoUuQEREoqFAFxEJhAJdRCQQCnQR\nkUAo0EVEAqFAFxEJRMZAN7O7zazezN5sZvk0M3vDzFaa2UtmdmL0ZYqISCbZ9NAXAuNaWP5nYJS7\nnwL8G/DfURQmIiK5Kc7UwN1fMrOqFpavSJlcAVREUZiIiOQm6jH0fwaeiHibIiKShYw99GyZ2dnA\nJcDfRbVNERHJXiSBbmYnAXcC4919ZwvtdOMYEZFWcHfL1CbbIRdL/hy4wGwg8Gtgurv/KYuigv2Z\nN29ewWvQ8en4OtuxdYbjy1bGHrqZPQDEgCPMbBMwD+iWyGa/E7geKAV+amYGfOruw7OuQEREIpHN\nWS7TMiy/DLgssopERKRVdKVohGKxWKFLyCsdX8cV8rFB+MeXLctlfKbNOzPzg7k/EZEQmBmexZei\nkZ22KCLty6BBg9i4cWOhy5AcVFVVsWHDhlavrx66SKCSvbpClyE5aO7fLNseusbQRUQCoUAXEQmE\nAl1EJBAKdBGRQCjQRTqR8vJBmFnefsrLBxX6EDs1neUiEqh0Z0wk7s6Rz8+gzqxpC53lIiIigAJd\nRCQYulJURApm6dKlFBcX88ILL3DiiSfy5JNPct1113HMMccUurQOSWPoIoFq72PomzZtYs+ePQwd\nOpRTTz2VZ555ht/+9reMHj2aHj165LHG9qutY+jqoYtIQQwcOBCAbdu20bt3b/r06cPEiRMLXFXH\npjF0ESmItWvX8sYbb/D4448zatQoAB577LECV9WxqYcu0omUlVVRX5/xL/c2bT9by5cvZ/fu3fTr\n14+PP/6Yhx9+mIqKirzV1hloDF0kULrbYsej89BFRARQoIuIBEOBLiISCAW6iEggFOgiIoFQoIuI\nBEKBLiISCAW6iEggFOgiIjm46aabmDFjRqHLSEtXiooEKt1Vh+WV5dTX1udtn2UVZdRtqcuq7aBB\ng9i2bRvFxcW4O2bGxRdfzO233563+tq7vN9t0czuBs4F6t39pGba3A5MAD4ALnb3lZm2KyIHX31t\nPVTncfvV2f+yMDOWLVvG2Wefnbd69u3bR5cunWcgIpsjXQiMa26hmU0Ahrj70cC/AP8VUW0iErh0\nvdGZM2dy/vnnN07PmTOHMWPGAPD8888zYMAAbrrpJvr27cvgwYN54IEHGttecsklzJw5k4kTJ3LY\nYYcRj8fZs2cPs2fPpqqqin79+jFz5kw++eQTABoaGpg0aRIlJSUcccQRnHXWWY3bqqmpobKykt69\ne3Pcccfx3HPPATB//nymT5/e2G7p0qWccMIJlJaWMnr0aNauXdu47KijjuKWW27h5JNPpqSkhKlT\np7Jnz56I3r0DZQx0d38J2NlCk8nAomTb3wOHm1lZNOWJSGdzyy23sGrVKhYtWsSLL77IwoULWbRo\nUePyuro6duzYwdatW7nnnnuYMWMG69evb1z+4IMPcv311/PXv/6VkSNHcs011/D222/z5ptv8vbb\nb1NbW8sPfvCDxn0NGDCAhoYGtm3bxo033gjAunXruOOOO3jttdd4//33eeqppxg0aFDjPhIPCkm0\nmzZtGrfffjvbt29nwoQJTJo0ib179za2XbJkCcuXL+edd97hjTfe4J577snbexfF3yIVwOaU6drk\nPBGRFp133nmUlpZSUlJCaWkpd999Nz169OC+++7jqquu4sILL2TBggX069evcR0z44YbbqBr166M\nGjWKiRMn8tBDDzUunzx5MiNGjADgkEMO4a677uLWW2/l8MMPp2fPnsydO5cHH3wQgK5du/Luu+/y\nzjvvUFRUxMiRIwEoKipiz549vPXWW+zdu5eBAwdy1FFHHVD/Qw89xLnnnsvo0aMpKipi9uzZfPTR\nR7z88suNba688krKysro06cPkyZNYuXK/I1IRxHo6Qbq9c2ndCjTp1/OsGGn8fTTT6ddXl4+qPHH\nzCgq6kl5+aAW2zadZ2bNrtNZPfLII+zYsYOdO3eyY8cOLr30UgBOO+00Bg8ejLt/YfgFoKSkhO7d\nuzdOV1VVsXXr1sbpAQMGNL7evn07H374IaeeeiqlpaWUlpYyYcIEGhoaALj66qsZMmQIY8eOZejQ\nodTU1AAwZMgQbrvtNqqrqykrK2PatGnU1R34Ze/WrVupqvr8HvBmxoABA6itrW2cV1b2+YDFoYce\n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\nAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.hist(x, label=\"$x$\", normed=True, bins=20)\n", "plt.hist(expr, label=\"Expression\", normed=True, bins=20)\n", "plt.legend(loc=\"best\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Any observations about the bin widths?\n", "* About that last one: What's the range of `r`?\n", "* This last one is called the [Box-Muller transform](https://en.wikipedia.org/wiki/Box%E2%80%93Muller_transform).\n", " From two uniformly-distributed random variables, it yields two random variables with a standard normal distribution." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.2+" }, "widgets": { "state": {}, "version": "1.1.2" } }, "nbformat": 4, "nbformat_minor": 0 }