{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from __future__ import division, print_function\n", "%matplotlib inline\n", "import sys\n", "sys.path.insert(0,'..') # allow us to format the book\n", "sys.path.insert(0,'../code') \n", "# use same formatting as rest of book so that the plots are\n", "# consistant with that look and feel.\n", "import book_format\n", "book_format.load_style(directory='..')" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaIAAAEWCAYAAAAkUJMMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XtUlOedB/DvzHC/CsLAAMP9fhcQFfGSBElIjLUbNZet\nrTa7adwmG5PN2ZSsbZLVJG3dYxtTNWmao0nabk36R9ImxKj1BoIRROQi90EuwgwXlZtcZ979w8qG\nOg4YYR5gvp9zPCc8PM/M75HId973fd7nlUmSJIGIiEgQuegCiIjIsjGIiIhIKAYREREJxSAiIiKh\nGERERCQUg4iIiIRiEBERkVATBtGpU6ewZs0a+Pn5QS6X44MPPpjwRcvKyrBixQo4ODjAz88P27dv\nn5JiiYho7pkwiPr7+xEfH4+33noL9vb2kMlkJvv39PRg1apVUKlUKCoqwltvvYWdO3di165dU1Y0\nERHNHbI72VnB2dkZe/bswfe///3b9tm3bx+ys7Oh0+lga2sLAHj99dexb98+tLS03H3FREQ0p0z5\nNaKCggIsW7ZsLIQAIDMzE62trWhsbJzqtyMiolluyoNIq9XCy8trXNvNr7Va7VS/HRERzXJWU/2C\nE11D+qbu7u6pfnsiIpphXF1dTX5/yo+IvL29bzny0el0Y98jIiL6pikPoiVLliA3NxdDQ0NjbUeO\nHIGvry8CAgKm+u2IiGiWm/DUXH9/P2prawEABoMBjY2NKCkpwfz586FWq5GdnY3CwkIcPXoUAPDE\nE0/gtddew6ZNm7Bt2zZUV1fjF7/4BV599VWT7zPRodtcUlRUBABISUkRXIn5ce6WN3dLnTdg2XO/\nk0svEx4RFRYWIikpCUlJSRgcHMQrr7yCpKQkvPLKKwBuLEDQaDRj/V1cXHDkyBG0trYiJSUFzz77\nLF588UU8//zz32IqREQ01014RLRy5UoYDIbbfn///v23tMXGxuLkyZN3VxkREVkE7jVHRERCMYiI\niEgoBhEREQnFICIiIqEYREREJBSDiIiIhGIQERGRUAwiIiISikFERERCMYiIiEgoBhEREQnFICIi\nIqEYREREJBSDiIiIhGIQERGRUAwiIiISikFERERCMYiIiEgoBhEREQnFICIiIqEYREREJBSDiIiI\nhGIQERGRUAwiIiISikFERERCMYiIiEgoBhEREQnFICIiIqEYREREJBSDiIiIhGIQERGRUAwiIiIS\nikFERERCMYiIiEgoBhEREQnFICIiIqEYREREJNSkgmjv3r0ICgqCvb09UlJSkJeXZ7J/Tk4OFi9e\nDBcXF3h6emLt2rWora2dkoKJiGhumTCIDh48iK1bt2Lbtm0oKSlBWloasrKy0NzcbLR/XV0d1q5d\ni5UrV6KkpARHjx7F4OAgHnzwwSkvnoiIZr8Jg2jXrl3YvHkznnzySURERGD37t1QqVTYt2+f0f4l\nJSUwGAx48803ERwcjISEBLz00kuor6/HlStXpnwCREQ0u5kMouHhYRQXFyMzM3Nce2ZmJvLz842O\nWbp0KZycnPDee+9Br9ejt7cXBw4cQGpqKtzd3aeuciIimhNMBlFnZyf0ej28vLzGtSuVSmi1WqNj\nVCoVcnJysG3bNtjZ2WHevHmoqKjAX//616mrmoiI5gyrqX5BjUaDtWvXYvPmzXjiiSfQ09ODn/3s\nZ9iwYQOOHTsGmUxmdFxRUdFUlzLjWeKcb+LcLY+lzhuwzLmHhYVNuq/JIPLw8IBCoYBOpxvXrtPp\noFKpjI559913oVar8Ytf/GKs7fe//z3UajUKCgqQlpY26eKIiGjuMxlENjY2SE5OxuHDh/HII4+M\ntR85cgTr1683OkaSJMjl48/43fzaYDDc9r1SUlImXfRsd/PTkSXN+SbO3fLmbqnzBix77t3d3ZPu\nO+GquRdeeAEHDhzA+++/j8rKSjz33HPQarV4+umnAQDZ2dnIyMgY679mzRoUFxdj+/btqK2tRXFx\nMTZv3gx/f38kJyd/i+kQEdFcNuE1og0bNqCrqws7duxAW1sb4uLikJOTA7VaDQDQarXQaDRj/dPT\n03Hw4EH8/Oc/xy9/+Us4ODhgyZIlOHToEOzt7advJkRENCtNarHCli1bsGXLFqPf279//y1t69at\nw7p16+6uMiIisgjca46IiIRiEBERkVAMIiIiEopBREREQjGIiIhIKAYREREJxSAiIiKhGERERCQU\ng4iIiIRiEBERkVAMIiIiEopBREREQjGIiIhIKAYREREJxSAiIiKhGERERCQUg4iIiIRiEBERkVAM\nIiIiEopBREREQjGIiIhIKAYREREJxSAiIiKhGERERCQUg4iIiIRiEBERkVAMIiIiEopBREREQjGI\niIhIKAYREREJxSAiIiKhGERERCQUg4iIiIRiEBERkVAMIiIiEopBREREQjGIiIhIqEkF0d69exEU\n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\nAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from gif_animate import animate\n", "from stats import gaussian\n", "import matplotlib.pylab as pylab\n", "from matplotlib import animation\n", "import matplotlib\n", "\n", "def plt_g (mu, variance):\n", " xs = np.arange(2,8,0.05)\n", " ys = [gaussian (x, mu, variance) for x in xs]\n", " plt.plot (xs, ys)\n", " plt.ylim((0,1))\n", "\n", "\n", "mu = 2\n", "sigma = 0.6\n", "def ganimate(frame):\n", " global mu, sigma\n", " if frame < 25:\n", " mu += .2\n", " elif frame == 25:\n", " mu = 5\n", " elif frame < 37:\n", " sigma -= 0.05\n", " else:\n", " sigma += 0.05\n", "\n", " plt.cla()\n", " plt_g(mu,sigma)\n", "\n", "animate('04_gaussian_animate.gif', ganimate, \n", " frames=80, interval=50, figsize=(6,4))" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "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.4.3" } }, "nbformat": 4, "nbformat_minor": 0 }