summaryrefslogtreecommitdiff
path: root/Programming_in_C_using_ANSI_C
diff options
context:
space:
mode:
Diffstat (limited to 'Programming_in_C_using_ANSI_C')
-rwxr-xr-xProgramming_in_C_using_ANSI_C/KamthaneChapter15.ipynb756
1 files changed, 756 insertions, 0 deletions
diff --git a/Programming_in_C_using_ANSI_C/KamthaneChapter15.ipynb b/Programming_in_C_using_ANSI_C/KamthaneChapter15.ipynb
index 4e53ad7a..5a99346e 100755
--- a/Programming_in_C_using_ANSI_C/KamthaneChapter15.ipynb
+++ b/Programming_in_C_using_ANSI_C/KamthaneChapter15.ipynb
@@ -1,3 +1,4 @@
+<<<<<<< HEAD
{
"metadata": {
"name": "",
@@ -721,4 +722,759 @@
"metadata": {}
}
]
+=======
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1>Chapter 15: Additional in 'C'<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.1, Page number: 505<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Allocate memory to pointer variable. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable initialization\n",
+ "j = 0\n",
+ "k = int(raw_input(\"How many number : \"))\n",
+ "p = [0 for i in range(0,k)]\n",
+ "\n",
+ "#in python, all variables are allocated using dynamic memory allocation technique and no\n",
+ "#malloc function and pointer concept is available in python.\n",
+ "\n",
+ "#Read the numbers\n",
+ "while j != k:\n",
+ " p[j] = int(raw_input(\"Number %d = \"%(j+1)))\n",
+ " j += 1\n",
+ " \n",
+ "j = 0\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"The numbers are : \")\n",
+ "while j != k:\n",
+ " sys.stdout.write(\"%d\\t\"%(p[j]))\n",
+ " j += 1\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many number : 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number 1 = 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number 2 = 2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number 3 = 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number 4 = 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The numbers are : 1\t2\t3\t4\t"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.2, Page number: 506<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Memory allocation to pointer variable. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable initialization\n",
+ "j = 0\n",
+ "k = int(raw_input(\"How many Number : \"))\n",
+ "p = [0 for i in range(0,k)]\n",
+ "\n",
+ "#in python, all variables are allocated using dynamic memory allocation technique and no\n",
+ "#calloc function and pointer concept is available in python.\n",
+ "\n",
+ "#Read the numbers\n",
+ "while j != k:\n",
+ " p[j] = int(raw_input(\"Number %d = \"%(j+1)))\n",
+ " j += 1\n",
+ " \n",
+ "j = 0\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"The numbers are : \")\n",
+ "while j != k:\n",
+ " sys.stdout.write(\"%d\\t\"%(p[j]))\n",
+ " j += 1\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many Number : 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number 1 = 45\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number 2 = 58\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number 3 = 98\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The numbers are : 45\t58\t98\t"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.3, Page number: 507<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Reallocate memory \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "str1 = \"India\"\n",
+ "\n",
+ "#in python, value tagged method is used for data storage instead of memory tagging.\n",
+ "#no realloc function is in python\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"str = %s\"%(str1))\n",
+ "str1 = \"Hindustan\"\n",
+ "sys.stdout.write(\"\\nNow str = %s\"%(str1))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "str = India\n",
+ "Now str = Hindustan"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.4, Page number: 508<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display unused memory \n",
+ "\n",
+ "import psutil\n",
+ "\n",
+ "psutil.phymem_usage()\n",
+ "\n",
+ "#There is no coreleft() function in python. phymem_usage function in the module psutil gives the \n",
+ "#status and usage of physical memory in python."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "pyout",
+ "prompt_number": 6,
+ "text": [
+ "usage(total=3165270016L, used=987840512L, free=2177429504L, percent=31.2)"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.5, Page number: 510<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Linked list\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialziation\n",
+ "ch = 'y'\n",
+ "p = 0\n",
+ "q = []\n",
+ "\n",
+ "#Function Definitions\n",
+ "def gen_rate(m):\n",
+ " q.append(m)\n",
+ " \n",
+ "def show():\n",
+ " print q\n",
+ " \n",
+ "def addatstart(m):\n",
+ " q.insert(0,m)\n",
+ " \n",
+ "def append(m,po):\n",
+ " q.insert(po,m)\n",
+ "\n",
+ "def erase(d):\n",
+ " q.remove(d)\n",
+ " \n",
+ "def count():\n",
+ " print len(q)\n",
+ " \n",
+ "def descending():\n",
+ " q.sort(reverse=True)\n",
+ " \n",
+ "#Get choice\n",
+ "while ch == 'y':\n",
+ " n = int(raw_input(\"1. Generate\\n2. Add at starting\\n3. Append\\n4. Delete\\n5. Show\\n6.Count\\n7.Descending\\nEnter your choice: \"));\n",
+ " #There is no switch statement in python\n",
+ " if n == 1:\n",
+ " i = int(raw_input(\"How many node you want : \"))\n",
+ " for j in range(0,i):\n",
+ " m = int(raw_input(\"Enter the element : \"))\n",
+ " gen_rate(m)\n",
+ " show()\n",
+ " else:\n",
+ " if n == 2:\n",
+ " m = int(raw_input(\"Enter the element : \"))\n",
+ " addatstart(m)\n",
+ " show()\n",
+ " else:\n",
+ " if n == 3:\n",
+ " m = int(raw_input(\"Enter the element and position \"))\n",
+ " po = int(raw_input(\"Enter the element and position\"))\n",
+ " append(m,po)\n",
+ " show()\n",
+ " else:\n",
+ " if n == 4:\n",
+ " d = int(raw_input(\"Enter the number for deletion : \"))\n",
+ " erase(d)\n",
+ " show()\n",
+ " else:\n",
+ " if n == 5:\n",
+ " show()\n",
+ " else:\n",
+ " if n == 6:\n",
+ " count()\n",
+ " else:\n",
+ " if n == 7:\n",
+ " descending()\n",
+ " show()\n",
+ " else:\n",
+ " sys.stdout.write(\"Enter value between 1 to 7\")\n",
+ " \n",
+ " ch = raw_input(\"Do u wnat to continue (y/n)\")\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1. Generate\n",
+ "2. Add at starting\n",
+ "3. Append\n",
+ "4. Delete\n",
+ "5. Show\n",
+ "6.Count\n",
+ "7.Descending\n",
+ "Enter your choice: 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many node you want : 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the element : 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the element : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the element : 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the element : 7\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "[1, 5, 4, 7]\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Do u wnat to continue (y/n)n\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.6, Page number: 518<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Draw circle, line and arc using graphics function\n",
+ "\n",
+ "%matplotlib inline\n",
+ "import pylab\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "#Tkinter package is used for graphics\n",
+ "#Give proportionate sizes to draw\n",
+ "#draw circle\n",
+ "circle2=plt.Circle((.5,.5),.2,color='b')\n",
+ "fig = plt.gcf()\n",
+ "fig.gca().add_artist(circle2)\n",
+ "\n",
+ "\n",
+ "#draw line\n",
+ "figure()\n",
+ "pylab.plot([210,110],[150,150])\n",
+ "\n",
+ "#Draw ellipse\n",
+ "figure()\n",
+ "from matplotlib.patches import Ellipse\n",
+ "e = Ellipse(xy=(35, -50), width=10, height=5, linewidth=2.0, color='g')\n",
+ "fig = plt.gcf()\n",
+ "fig.gca().add_artist(e)\n",
+ "e.set_clip_box(ax.bbox)\n",
+ "e.set_alpha(0.7)\n",
+ "pylab.xlim([20, 50])\n",
+ "pylab.ylim([-65, -35])"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Populating the interactive namespace from numpy and matplotlib\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stderr",
+ "text": [
+ "WARNING: pylab import has clobbered these variables: ['pylab', 'e']\n",
+ "`%pylab --no-import-all` prevents importing * from pylab and numpy\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "pyout",
+ "prompt_number": 61,
+ "text": [
+ "(-65, -35)"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x707a9f0>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n3eYAAL5E5iE0NDSYvLw8Y4wxdXV1ZvLkySYnJ8fk5OSYMWPGmKlTp5q2tjZjjDHNzc1m1qxZ5oMP\nPujzeNOnTzeSePHixYvXQ76mT5/+MHHdp4Sv7D0ej9ra2uJ/drvdOnfunCZOnKjOzk6tXLlS27Zt\n08KFC/s8xkcffZToaQEAQzDgmn0gENCiRYt08eJFZWdna+fOnX3O/e1vf6vLly8rEonI5/PJ5/Op\nvb09qQUDABLnMF9ccAcAjDpJf4K2t4ewOjo6tHTpUs2aNUs/+MEP1NnZGd+3detWzZw5U7Nnz9bh\nw4eTXU7S9dbfhg0bNGfOHOXn5+v555/Xf//73/i+0dDf5774EJ00svrrq7eKigrNmTNHeXl52rhx\nY3x8JPUm9d7f6dOntWDBAvl8Ps2fP19nzpyJ7xtp/TU3N+v//u//9MQTTygvL0/vvvuupNGTL331\nl7R8GdKKfy+OHTtmzp8/H7+ha4wxGzZsMNu2bTPGGFNaWmo2btxojDHmwoULJj8/39y+fds0NDSY\n6dOnm3v37iW7pKTqrb/Dhw/H6964ceOo688YY5qamsyyZctMTk6O+eSTT4wxI6+/3no7cuSIWbJk\nibl9+7YxxpiPP/7YGDPyejOm9/6+//3vm6qqKmOMMQcPHjR+v98YMzL7a21tNTU1NcYYY/73v/+Z\nWbNmmQ8//HDU5Etf/SUrX5J+Zd/bQ1h//etf9corr0iSXnnlFe3fv1/SZ5/XDwQCSk1NVU5OjmbM\nmKHTp08nu6Sk6q2/pUuXKiXls3+UTz75pFpaWiSNnv6k3h+iG2n99dbb73//e/3qV7+KPw8yadIk\nSSOvN6n3/jIzM+NXgp2dncrKypI0MvubMmWK5s6dK0lKS0vTnDlzdOXKlVGTL731d/Xq1aTlyyP5\nH6G1tbXJ6XRKkpxOZ/zTPFevXpXL5YrPc7lcunLlyqMoadi89957evbZZyWNnv76eohuNPR36dIl\nHTt2TE899ZT8fr/Onj0raXT0JkmlpaVav369Hn/8cW3YsEFbt26VNPL7a2xsVE1NjZ588slRmS8P\n9vegoeTLI/+/XjocDjkcjn73j1RvvfWWxo4dq5dffrnPOSOtv88footEIvEx0889/ZHW3927d3Xt\n2jWdPHlS27dv10svvdTn3JHWmySVlJTo3XffVVNTk95++20Fg8E+546U/q5fv64XXnhB77zzjtLT\n07vtGw35cv36db344ot65513lJaWFh8far48krB3Op3697//LUlqbW3V5MmTJUlZWVlqbm6Oz2tp\naYn/mjnS7Nq1SwcPHtSf//zn+Nho6O/y5ctqbGxUfn6+3G63WlpaVFBQoLa2tlHRn8vl0vPPPy9J\nmj9/vlJSUtTe3j4qepM+u0H73HPPSZJefPHF+K/5I7W/O3fu6IUXXtDq1av14x//WNLoypfP+1u1\nalW8PylJ+TIcNxoefOLWmM9u0JaWlhpjjNm6dWuPGwy3bt0y//rXv8y0adPM/fv3h6OkpPpif4cO\nHTK5ubnmP//5T7d5o6W/B/V2g3Yk9ffF3v7whz+YzZs3G2OM+ec//2mys7ONMSOzN2N69ufz+Uws\nFjPGGPP3v//dzJs3zxgzMvu7f/++Wb16tfnZz37WbXy05Etf/SUrX5Ie9j/96U9NZmamSU1NNS6X\ny7z33nvmk08+MYsXLzYzZ840S5cuNdeuXYvPf+utt8z06dPNd77znfinBr7Kvtjfjh07zIwZM8zj\njz9u5s6da+bOnWvWrVsXnz9S+xs7dmz839+D3G53POyNGVn99dbb7du3zapVq0xeXp757ne/a44e\nPRqfP5J6M6b3v3tnzpwxCxYsMPn5+eapp54y58+fj88faf0dP37cOBwOk5+fH/+7dujQoVGTL731\nd/DgwaTlCw9VAYAF+FpCALAAYQ8AFiDsAcAChD0AWICwBwALEPYAYAHCHgAsQNgDgAX+Hze/zGOH\nVK27AAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7349d10>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x78994d0>"
+ ]
+ }
+ ],
+ "prompt_number": 61
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.7, Page number: 519<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Draw boxes and fill with different designs.\n",
+ "\n",
+ "%pylab\n",
+ "#Tkinter package is used for graphics\n",
+ "from matplotlib.patches import Rectangle\n",
+ "from matplotlib.collections import PatchCollection\n",
+ "\n",
+ "e = Rectangle(xy=(35, -50), width=10, height=5, linewidth=2.0, color='b')\n",
+ "fig = plt.gcf()\n",
+ "fig.gca().add_artist(e)\n",
+ "e.set_clip_box(ax.bbox)\n",
+ "e.set_alpha(0.7)\n",
+ "pylab.xlim([20, 50])\n",
+ "pylab.ylim([-65, -35])\n",
+ "\n",
+ "#There are no different automatic fill styles. user should create the styles."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nQwMA0hA49Hv27NGePXtUWlqqBx54QCdOnJAkdXd3q76+XuFwWKFQSG1tbcrLy8vagAEA6XF83/cX\nexAAgPmzIN+MTSQS2rFjhzZu3KhNmzbpF7/4hSTp+vXrikaj+sY3vqHvfOc7+vzzzxdiOFk32/wa\nGhoUiURSXx577733Fnmk6fvnP/+pbdu2qby8XCUlJTpw4IAkO2s32/wsrN2X3b17V67rqqqqSpKd\n9bvnv+dnaf3WrFmjzZs3y3Vdbd26VVL667cgZ/TJZFLJZFLl5eW6deuWHn/8cb3zzjt644039NBD\nD+mVV17RT37yE924cUNHjhyZ7+Fk3Wzz+81vfqPc3FzV1dUt9hAz8ve//13Lli3TnTt3tH37dv3s\nZz9TR0eHibWTZp7fH/7wBxNrd8/Pf/5z9fb26ubNm+ro6NArr7xiZv2k6fNrbGw0s36FhYXq7e3V\nihUrUvvSXb8FOaP/+te/rvLycknSgw8+qA0bNmhsbEwdHR167rnnJEnPPfec3nnnnYUYTtbNNj9J\nsnBlbNmyZZKkyclJ3b17V/n5+WbWTpp5fpKNtZOk0dFRvfvuu3r++edTc7K0fjPNz/d9M+snTf+z\nmO76LfgvNRsZGVFfX5+2bduma9euafXq1ZKk1atX69q1aws9nKy7N7+KigpJX/w+oLKyMu3du/e+\nfXv873//W+Xl5Vq9enXqEpWltZtpfpKNtZOkl156ST/96U8VCv3fX3dL6zfT/BzHMbN+juOosrJS\nW7Zs0a9+9StJ6a/fgob+1q1bevrpp/Xaa69N+wKV4zhyHGchh5N1t27d0ve//3299tprevDBB/XC\nCy9oeHhY58+f18MPP6yXX355sYcYSCgU0vnz5zU6Oqru7m6dOXNmyuP3+9r99/xisZiZtfv973+v\nVatWyXXdWc9w7+f1m21+VtZPkv74xz+qr69Pp0+f1i9/+Ut98MEHUx7/Kuu3YKH/17/+paefflq7\nd+9WdXW1pC/+S3Tvm7fj4+NatWrVQg0n6+7N79lnn03Nb9WqValFeP755xWPxxd5lJlZvny5vvvd\n76q3t9fU2t1zb349PT1m1u5Pf/qTOjo6VFhYqF27dun999/X7t27zazfTPP7wQ9+YGb9JOnhhx+W\n9MXvE/ve976neDye9votSOh939fevXtVUlKiF198MbX/ySef1JtvvilJevPNN1OBvN/MNr/x8fHU\n7VOnTqm0tHQxhpeRiYmJ1Nvef/zjH+rq6pLrumbWbrb5fflXf9yvaydJhw8fViKR0PDwsN5++219\n+9vf1ltvvWVm/Waa34kTJ0z83ZO++KDAzZs3JUm3b99WZ2enSktL01+/tL9LG8AHH3zgO47jl5WV\n+eXl5X55ebl/+vRp/29/+5u/c+dOf926dX40GvVv3LixEMPJupnm9+677/q7d+/2S0tL/c2bN/tP\nPfWUn0wmF3uoabtw4YLvuq5fVlbml5aW+kePHvV93zezdrPNz8La/bdYLOZXVVX5vm9n/b7szJkz\nqfk9++yzJtZvaGjILysr88vKyvyNGzf6hw8f9n0//fXjC1MAYBz/K0EAMI7QA4BxhB4AjCP0AGAc\noQcA4wg9ABhH6AHAOEIPAMb9B4rEH5DkLOd4AAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7373590>"
+ ]
+ }
+ ],
+ "prompt_number": 72
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.8, Page number: 520<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display text in different size, font, vertically and horizontally \n",
+ "\n",
+ "%pylab\n",
+ "\n",
+ "from pylab import *\n",
+ "\n",
+ "#Tkinter package is used for graphics\n",
+ "# set limits so that it no longer looks on screen to be 45 degrees\n",
+ "xlim([-5,5])\n",
+ "\n",
+ "# Locations to plot text\n",
+ "l1 = array((1,1))\n",
+ "l2 = array((5,5))\n",
+ "\n",
+ "# Rotate angle\n",
+ "angle = 90\n",
+ "trans_angle = gca().transData.transform_angles(array((45,)),\n",
+ " l2.reshape((1,2)))[0]\n",
+ "\n",
+ "# Plot text\n",
+ "th2 = text(l2[0],l2[1],'Hello(Horizontal Text with fontsize 25)\\n\\n',fontsize=25,\n",
+ " rotation=0)\n",
+ "th2 = text(l2[0],l2[1],'Hello(Horizontal Text with fontsize 16)',fontsize=16,\n",
+ " rotation=0)\n",
+ "th1 = text(l1[0],l1[1],'Hello(Vertical Text)',fontsize=16,\n",
+ " rotation=angle)\n",
+ "show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Using matplotlib backend: module://IPython.kernel.zmq.pylab.backend_inline\n",
+ "Populating the interactive namespace from numpy and matplotlib\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stderr",
+ "text": [
+ "WARNING: pylab import has clobbered these variables: ['power', 'draw_if_interactive', 'random', 'fft', 'angle', 'linalg', 'info']\n",
+ "`%pylab --no-import-all` prevents importing * from pylab and numpy\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAA5AAAATCCAYAAADLrQlWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XeUFFXC/vGnezIwMMOQBASGLIIoAgKSg+ASX0AQV5II\nKuqCArqGV4FFF8EAiLrKLkFAMawSDSgZBFxAlrQknSGpIBJkkORwf3/w63q7Ot6BIa3fzzl9znTV\nrVu3blWHZ6r6lscYYwQAAAAAQBTey90AAAAAAMDVgQAJAAAAALBCgAQAAAAAWCFAAgAAAACsECAB\nAAAAAFYIkAAAAAAAKwRIAMAF83q9rseUKVNc8ydPnhxU5mLbsmWLYmNjnfUNHTr0oq/zcunVq5er\nb5s0aXK5m/RfY/HixUHH7u7duy93sxDGxdhfl/r1lZ2drTfeeEMNGzZUWlqaYmJiLul755WM12Pu\nmjhxoqsvv/jiC6vlYi9yuwAAuahx48ZaunSpa9rZs2dDls3MzFTZsmVd03r27KlJkyZdtPb5eDye\nC5qfG4YMGeL0TXJysgYOHBhUJvDLWKNGjbRo0aKQ9U2ePFn33HOPa9qkSZPUs2fPXGpx7rkU/Xu5\njBkzRkeOHHGeN2nSRI0aNbpk689p35YpU+aCvuCWLl1aGRkZ5718bpg8ebIyMzOd5zfddJPat29/\n+RqUA6H2165du1zvgx6PRwMHDlSBAgXOu87c1KVLF3388ceXZd3na+bMmVq/fr3zPD09/ZK8N16p\n/RHNtm3btHTpUi1dulSbNm3Srl27dOzYMcXHx6tIkSK68cYb1blzZ3Xt2lWxsaHjWqjPpEjmzJmj\n1q1bu6b16NFDw4cPd96jhgwZom+++SZqvxIgAeAqltMPz6v1wzanFi5cqE8//dR5/sADDyglJSXq\ncldrf/racaW052IaM2aMK5B5PJ5LGiAvtSthn06ePNn1j6uePXte8QHS4/HIGBNyXkZGhoYPH+6a\n1rt3b+sAeTEtX748ZHiMtD1XgpkzZ+rtt992njdq1OiiBsgrvT8i+eijj9S5c+eQ806cOKFdu3Zp\n165dmjVrlkaOHKnZs2crPT39gtcb6r0kNjZWjz32mB566CFJ0oYNGzR58mT17t07Yl0ESADAf52R\nI0c6f3s8HvXt2/cytubie/HFFzVs2DDneWJi4mVszaV1JQSsSDweT8g2hvryG1juSv2CfCX3ed26\ndV1nSyWpRIkSrueB7b+Stmf16tWu57GxsXr//fdVvXp1xcTEXKZW5dzF6lOb/XulC3XVULhAvHnz\nZrVo0UKbNm2yel8P914TaX90795dgwcP1smTJyVJo0aNIkACAH5fdu7cqS+//NJ5XqtWLZUrV+4y\ntujiS0tLU1pa2uVuxmVxpYYsn+XLlys7O9s1zRij+vXra9++fc60kiVLavny5UHLh7t87XK6kvs8\nISFBpUqVilgmVPuvlG3KyspyPS9RooQ6dOhwmVpz/i5Wf9rs36tF/vz5ddddd+n2229XhQoVdOTI\nEc2cOVOvvPKKzpw545T77rvvNHnyZN1///0R63vxxRfDntmUpCJFioScnpycrDZt2ujDDz+UdO7y\n2kWLFkX8re/v+5e4AADHzp07NWTIENWqVUtpaWmKi4tT4cKFVb9+fT333HM6fPjwJWnH4cOHNXr0\naDVv3lzFihVTQkKCkpOTVbFiRfXo0UPz58+PuPzf//531/OuXbtezOaGtWTJEvXp00fXXXedChQo\noPj4eBUtWlSNGzfWc889p4MHD4ZdNtSgRL/88oueeuopValSRXny5HENHhFtkI/A+dEeS5YsCWqT\nMUZz5szRXXfdpfLlyys5OVkJCQkqXry4WrZsqbFjx+rYsWMhtyczMzPkOo4ePaqnn35aVapUUVJS\nklJSUtS8eXN9/vnnYfsk8PeEw4YNCztAU3Z2tqZPn65BgwapWbNmqlSpkgoXLqy4uDglJyerXLly\n6tixo6ZOner6wpabSpQooVKlSrkepUuXDjqbFBsbG1SuVKlSKl68uKTg4ykhIUElSpRQmzZtNGnS\nJP32229B6/773//u6pfY2NigM1ynT59W9erVXeWaNm0qY4zKlCkjr9cb9LvrKVOmnPdAJoH7q1mz\nZkFlSpUq5czPkydP0L7p3r27q45+/fo58yINsuIbzKtp06au+owxSk9Pdy0T7QyMdO6fAx07dlTR\nokWVkJCg8uXLa/DgwTp69KhVX/jzvUb9rySQzv1eM1q7vvnmGz344IOqXr26UlNTnffuOnXq6Mkn\nn4y4b3z72PcYNmyYzp49qzfffFP16tVTgQIFlDdvXtWoUUOvvvpqUDBs3LixvF6v6/JV6dzxGul9\n5ddff9W4cePUokULlShRQomJiUpMTFTJkiV18803q3fv3nr99de1Y8cOV73RBtEJNT/SI9x+vpif\n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\nqBkzZriuOAgUeIVKqNs1+SNAAsBVxBNwX0KbD+LAZULNHz58uHbs2KEnn3xS9erVU5EiRRQfH6+k\npCRde+21at68uZ566iktWbLEdZmL7XoC2xuuLR07dtR3332nF154QU2aNFHRokUVHx+vfPnyqXz5\n8rr77rv16aef6osvvgg7hHmFChVcXy5Xr14d9nciNv0TahsilU9JSdGsWbO0cOFC9e7dW5UqVVL+\n/PkVFxenwoULq2HDhvrLX/6ijIwM3X333RfcrlBti1ZftEegkiVLavny5Zo5c6buvPNOpaenK2/e\nvIqPj1exYsXUokULvfLKK/r2228jXrpqcyxGK1O6dGmtWrVKd911l0qUKKH4+Piwy9SsWVPr1q1T\nz549Vbx4cae9HTt21LJly9SnT5+o7bI9dnPKpt+lcwH+448/1ooVK3TfffepWrVqSk1NVWxsrJKT\nk1WhQgW1b99eo0eP1ubNm12/qerfv78yMjKc+kuUKKHXX3/dVX/r1q2dyxp95e655x7XPeDy58+v\nr776Sv369VN6eroSEhJyfM/ZUHyvU/+6ypYt6xroJSEhQbVr1w7qq3AB0nZ/DRw4UNOmTVODBg2U\nkpIir9cbdptsX182643G9n1GOtc3b731ltauXav+/furWrVqSklJUVxcnNLS0lS7dm39+c9/1o4d\nO8IOBmNzDNq0KSYmRgsWLNCgQYNUqVIlJSYmhi0/btw4TZ8+Xf3791edOnVUtmxZJScnKy4uTgUL\nFlTNmjX16KOPauPGjUH3mI3Wz6HampP3utz6PIwkp20M1c7k5GTt379f7733nu6//37Vrl3baWdi\nYqKKFy+uli1b6uWXX9bOnTvVqVOnsO355ZdfXP80qlSpUtTb43jMxfpXGgAAl8nChQtdg8M89thj\nIQcUAADg92z8+PH605/+5DyfOHFi0CBEgQiQAID/Sq1bt3ZGHU1OTlZmZqZSU1Mvc6sAALgynDlz\nRuXLl9eePXskSdWrV9c333wTdTkuYQUA/FcaPXq0YmJi5PF4lJWVpXHjxl3uJgEAcMWYOnWq9uzZ\n41wqO3r0aKvlOAMJAAAAALDCGUgAAAAAgBUCJAAAAADACgESAAAAAGCFAAkAAAAAsEKABAAAAABY\nIUACAAAAAKwQIAEAAAAAVgiQAAAAAAArBEgAAAAAgBUCJAAAAADACgESAAAAAGCFAAkAAAAAsEKA\n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\nLC6v8wT8Fi4pKUlLly7ViBEjVL16deXNm1d58uRRuXLl1LFjR02cOFHXXHNNxPpDTS9atKjWrFmj\ngQMHqly5cs59IOvWratJkybp9ddfd9Vx7733Sjo3QEXgYBm+NofarnBtaty4sb7++mt17drVuQ9k\nWlqa2rRpo8WLF6tbt27W/RZpvn/bAh+SdNddd2nx4sVq06aNChUq5NyPsWvXrvr6669d97zMSf9K\n537neuedd6pIkSJB6502bZq6du2qggULKiUlRd27d9d7773narPt9ocTbr/ceeedWr58uTp16qRi\nxYopLi5ORYoUUa1atfTnP/9ZgwYNctr/9ddfy+PxaNSoUSpXrpyKFy+u1157TZK0detWPfroo069\nU6dOVcOGDVWgQIGoAyn5812a6vF4XL+78x+cqHHjxkHbFqpPbr75Zo0bN07lypVTfHx8yDZEOo5s\n2htpf/ztb3/TpEmTVLduXSUnJys+Pl7lypXTwIEDtWbNGtclrOH6KNz0SP37xBNPqEGDBs59PfPm\nzev0xZ/+9Kew22/+/xnaaK+TIkWKaM2aNXrsscdUuXJlJSYmKjk5WZUqVdIf//hHzZgxI0f9Fmld\nPu+++65eeOEFXXfddUpISFCBAgV022236YsvvtDdd9/tKutbf4ECBdS1a9eobQF+7zzG8GthAMDF\nd+utt2rlypXq1q2bpk+ffrmbAwA6c+aMypcvrz179ujJJ5+M+ptPAARIAMAlsmrVKtWrV0+xsbHa\nunWr9W8DAeBimThxou69914VLVpUO3fudEaxBRAeARIAAAAAYIXfQAIAAAAArBAgAQAAAABWCJAA\nAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAA\nAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAA\nrBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFgh\nQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAE\nAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAA\nAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAA\nYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAK\nARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIk\nAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAA\nAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAA\nACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABW\nCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAg\nAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIA\nAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAA\nAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACw\nQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUA\nCQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIA\nAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAA\nAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACA\nFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsE\nSAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAA\nAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAA\nAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAA\nrBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFgh\nQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAE\nAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAA\nAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAA\nYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAK\nARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIk\nAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAA\nAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAA\nACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABW\nCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAg\nAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIA\nAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAA\nAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACw\nQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUA\nCQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIA\nAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAA\nAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACA\nFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsE\nSAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAA\nAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAA\nAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAA\nrBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFgh\nQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAE\nAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAA\nAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAA\nYIUACQAAAACwQoAEAAAA8P/Yu/cgver6juOfZ3O/SLgnyiUkUiiNXGJoKwq4toNVLgrDRa3EWJCa\ncBEGREp1KNG0A5V2qI46VQyYUrENxtRQEcaWQImkViUhVq3BxAQZIGQwlEsW4ubpHzQLayD5xjH7\nHNjX658s5znJftmZ/c2+93fOeaBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIB\nCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACg\nREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEA\nACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhI\nACrWxdwAACAASURBVAAASgQkAAAAJQISAACAEgEJAABAiYAEAACgREACAABQIiABAAAoEZAAAACU\nCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAA\nACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJ\nAABAiYAEAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBE\nQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAA\nKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACgREACAABQIiABAAAoEZAAAACUCEgA\nAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUC\nEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABA\niYAEAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIA\nAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQ\nAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACgREACAABQIiABAAAoEZAAAACUCEgAAABK\nBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAA\ngBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAE\nAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAi\nIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAA\nlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQA\nAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIB\nCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACg\nREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEA\nACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhI\nAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAl\nAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAA\nQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACgREAC\nAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgR\nkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAA\nSgQkAAAAJQISAACAEgEJAABAiYAEAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIA\nAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImA\nBAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACgREACAABQ\nIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAA\nAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQk\nAAAAJQISAACAEgEJAABAiYAEAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIAS\nAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAA\noERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACgREACAABQIiAB\nAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQI\nSAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAA\nJQISAACAEgEJAABAiYAEAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkA\nAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERA\nAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACgREACAABQIiABAAAo\nEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAA\nAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQIS\nAACAEgEJAABAiYAEAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJ\ngAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAA\nUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACgREACAABQIiABAAAoEZAA\nAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoE\nJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACA\nEgEJAABAiYAEAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQA\nAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIg\nAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACgREACAABQIiABAAAoEZAAAACU\nCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAA\nACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJ\nAABAiYAEAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAICSoZ0eAHhpTz/9dO69\n99488sgjabfbmTBhQqZOnZrRo0d3ejQAAAYhAQkNs2nTpixYsCBf+MIXcvfdd2fTpk1pt9tJklar\nlaFDh+aoo47KOeeckzPOOCPDhg3r8MQAAAwWrfaWn0yBjps/f34uv/zyrFq1qnT+pEmTctVVV+X0\n00/fyZMBAICAhEbp6nr+tuTf+73fyzHHHJPDDz88e+yxR5Jk/fr1Wb58ef7jP/4j//Vf/5XkuV3J\n3t7ejswLAMDgIiChQcaNG5fzzz8/H/jABzJp0qRtnrtq1apcd911+exnP5sNGzYM0IQAAAxmAhIa\nZMOGDdl11113+t8BAIBfh4CEhlqzZk1arVb233//To8CAABJCu8D+aEPfSjjx49PV1dXTjrppJc8\nb+HChTnwwAMzatSovOUtb8nPfvaz3+ScMOhMmjTpJS9jnTRpUiZPnjzAEwEAMNhtNyBbrVbe8573\n9H38Yh5++OG8+93vzq677pprrrkm3/ve9zJjxozf7KRAkqTdbmfNmjVZs2ZNp0cBAGCQ2e77QP7d\n3/1d1qxZk0996lMvec5NN92UZ599NpdffnlOPfXU/Od//mduvPHGrFq1yi4J7IDHH388jz/+eF54\nZfnatWvTbrf7foGzbNmyJMmQIUM6MiMAAIPXdgMySbZ3m+Tq1auTJPvss0+SZN999+07LiCh7tpr\nr83s2bP7YrHdbm91GeuW78fXvOY1Az4fAACDWykgd9S2gvOII47I8uXLd8anhVeMF34PvdT305aH\n7DA4HH744X27zwAAnfJrB2RPT0+GDBmSYcOG9e0yPvDAA3nDG96QBx98MEledPdx+fLl293RHAhX\nXnllrrzyyk6P0Qi+Fs/r9Ndi4cKFWbhwYZJk3rx5SZIZM2b0fc+0Wq3sueeeecMb3pBTTz11p87S\n6a9FkzTha+GXBQBAE2w3IP/1X/81P/jBD5I8dy/WF7/4xRx77LE5+OCDM2XKlKxYsSLvfve782d/\n9me5+uqr8/DDD+drX/tajjnmmO2+ETrQ38knn5yTTz45yfMBef3113dyJAAA6LPdp7Bec801ufzy\ny9NqtXLfffflT//0T/Ptb387yfO/EZ8wYUJuuummbNiwIZdeemmmTZuWG264YacODq90GzZsyObN\nm1/y9VWrVg3gNAAAUAjIO+64I5s3b05vb2/fnzNmzMjmzZtz33339Z13yimn5P77709PT08WL17c\n+N3H7u7uTo/QGL4Wz2vS1+KII47I0qVLX/S1L33pS5k6depO/fxN+lp0mq8FAMBzWu0BviGx1Wo1\n4h5IaLqurq4MHTo0f/EXf5GPfvSjSZ57m4+ZM2fmn/7pn9JqtdLb29vhKRko1k4AoAkEJDTU+PHj\n8+ijjyZJjj322HzoQx/KxRdfnLVr1yZJDj30UE80HkSsnQBAEwhIaKhHH300s2bNyoIFC/od7+rq\nyiWXXJJPfOITGT58eIemY6BZOwGAJhCQ0HDveMc7csstt/T990c/+tF84hOf6OBEdIK1EwBogu0+\nRAfojLVr1+a4447rF49J8ld/9Vf54Ac/mKeffrpDkwEAMFjZgYSGGjduXJ544okkyYknnpiLL744\n559/fn74wx8mSSZPnpz777+/kyMygKydAEAT2IGEhnriiScycuTIfPrTn87Xv/71dHd357vf/W5m\nzZqVJFm9enWHJwQAYLCxAwkNdeihh+YrX/lKpkyZstVrixYtytlnn51169Z1YDI6wdoJADSBgISG\neuaZZzJixIiXfP2hhx7Kq1/96gGciE6ydgIATTC00wMAL25LPN577725/fbb89hjj+Xqq6/OmjVr\n0mq1xCMAAAPODiQ02AUXXJDPfOYzSZ773unt7c3RRx+de+65J3Pnzs2MGTM6PCEDxdoJADSBh+hA\nQ11//fV98fhCs2bNSrvdzqJFizowFQAAg5mAhIb63Oc+lyQ544wz+h1/85vfnCRZvnz5gM8EAMDg\n5hJWaKgxY8akp6cn69aty1577dV3CeumTZsyYsSIjB49Ok8++WSnx2SAWDsBgCawAwkNtSUWRo4c\n2e/4mjVrkjwXFAAAMJAEJDTUa1/72rTb7cybN6/v2EMPPZQLLrggSXLggQd2ajQAAAYpAQkN9a53\nvStJct555yV5bkdy3333zW233ZYkOf300zs2GwAAg5N7IKFBZs+enVarlSuuuCI9PT3p7u7Od77z\nna3OO/LII3PXXXdtdXkrr1zWTgCgCQQkNEhXV1ffw3KS5Omnn86nPvWpLFq0KOvWrcv48eNz4okn\n5sILL8yoUaM6PC0DydoJADSBgIQG+dWAhC2snQBAE7gHEgAAgJKhnR4A6K/dbuess84qnTt37tyd\nPA0AADzPJazQIF1d9YsCXOo6uFg7AYAmcAkrvEyJCQAABppLWKFhWq1W5s6du91AbLVaAzQRAAA8\nxyWs0CCewspLsXYCAE3gElYAAABKBCQ0jF0mAACayj2Q0CD//u//7t5GAAAayz2QAC8D1k4AoAlc\nwgoAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJRs9208lixZklmzZuUnP/lJpkyZkuuuuy5Tp07t\nd0673c7FF1+cr3zlK9mwYUMOOOCAzJ49O2ecccZOGxxeif7kT/5kh97GY+7cuTtxGgAA6G+bb+PR\n09OTAw44IGPGjMmll16aOXPmZMSIEVm5cmW6up7fvLz11ltzwgknZNq0aXn/+9+fyy+/PL/85S/z\nxBNPZMiQIf0/oUfRw0t64ffV9rRarfT29u7EaWgSaycA0ATb/Gn11ltvzbp163Luuedm5syZOfvs\ns7N69eosXry433m77rprkuS1r31t/vAP/zC77LJLdtlllx36YRjYMWICAICBts1LWFevXp0k2Wef\nffr9ueX4FkcddVSuuOKKfPzjH88///M/Z+TIkbnlllt26FI8IFm1alWnRwAAgJe03XsgX+ildjy+\n853v5C//8i/zR3/0R5k5c2YuuuiizJgxI//zP/+T0aNHb3X+lVde2fdxd3d3uru7d2hoeKU64IAD\nOj0CDbF48eKtrvYAAOi0bQbk5MmTkyQPPPBAkuTBBx/sO97T05MhQ4Zk2LBhWbx4cXp7ezN9+vS8\n853vzKJFizJ37tz86Ec/yrRp07b6d18YkMC2/eIXv8j999+fjRs3bvXascce24GJGAi/+su12bNn\nd24YAID/t82AfPvb35699947n/vc5zJ27Nh88YtfzKRJk/LmN785Q4cOzZQpU7JixYoccsghSZLP\nfvazeeqpp3LLLbdkxIgRmTRp0oD8T8Ar0aZNm/LBD34w8+bNS7vd3uoKAA/RAQBgoG3zKTcjRozI\n/PnzM3bs2Fx00UWZMGFC5s+f3/dwnC33OJ500kn52Mc+lrVr1+bCCy/MnnvumRtvvDG77777zv8/\ngFeoa665JjfccEM2b978opePe4gOAAADbZtv47FTPqFH0UPJ4YcfnhUrVuSII47IsmXLkiSnnHJK\nvvGNb2TffffN0Ucfneuvv77DUzJQrJ0AQBN4nw1oqPvvvz+tVis333xzkucC4qtf/WpuvvnmrF69\nOu94xzs6PCEAAIONHUhoqOHDh6e3tzfPPPNMRo4cmXa7nSeeeCJdXV0ZPXp03z3IDA7WTgCgCXbo\nbTyAgbPbbrtl/fr12bhxY3bfffesX78+c+bMyZgxY5IkP/3pTzs8IQAAg42AhIaaPHly1q9fnwcf\nfDCvf/3rc/vtt+eqq67qe917RgIAMNDcAwkN9da3vjUHHXRQfvzjH+fDH/5w31OPk+cuZ7ziiis6\nOB0AAIOReyDhZWLJkiWZP39+hg0blpNPPjlvetObOj0SA8jaCQA0gYAEeBmwdgIATeASVmioefPm\n5ayzzsqNN97Y7/g//MM/5Kyzzsq8efM6NBkAAIOVHUhoqGnTpmXZsmW58847c/TRR/cdX7p0ad74\nxjfmsMMOy7Jlyzo4IQPJ2gkANIGAhIbaZZdd8tRTT+WJJ57I6NGj+44/9dRTedWrXpWxY8fmf//3\nfzs4IQPJ2gkANIFLWKGhnn322STJI4880u/4unXrkiS//OUvB3wmAAAGNwEJDbX//vun3W7n0ksv\nzcaNG5MkGzduzGWXXZYk2W+//To5HgAAg5CAhIY64YQTkiQLFizIhAkTcuihh2bChAm5+eabkyTH\nH398J8cDAGAQcg8kNNTDDz+cI444ou+S1RcaP358li1blvHjx3dgMjrB2gkANIEdSGioCRMm5O67\n787b3va2DBkyJEkydOjQvP3tb8/dd98tHgEAGHB2IOFlYOPGjXnsscey++67Z9SoUZ0ehw6wdgIA\nTSAgAV4GrJ0AQBMM7fQAwPMmTZqUVquVVatW9X38Ytrtdt95AAAwUOxAQoN0dXWl1Wqlt7c3XV3b\nvkV5y3kMDtZOAKAJ7EBCg+y///59u47777//Ns99qd1JAADYWexAArwMWDsBgCbwNh7QUF/60pcy\nb968F31t7dq1Wbt27QBPBADAYGcHEhrqhfdD7shrvDJZOwGAJrADCS8zohEAgE7xEB1okOXLl2f5\n8uV9O03tdnury1hXrFiRJBkxYsSAzwcAwOAmIKFBFi5cmNmzZ/c79v73v/9Fz508efIATAQAAM9z\nCSs0SPUet+HDh+eKK67YydMAAEB/HqIDDbJs2bIsW7YsSXLWWWclSa6//vq+75lWq5U999wzU6dO\nzWte85qOzcnAs3YCAE0gIKGhuru702q1cscdd3R6FBrA2gkANIFLWKGBNm7cmLVr12bNmjX58Y9/\n3OlxAAAgiR1IaKxx48blySefzMaNGzN8+PBOj0OHWTsBgCawAwkNddxxx6XdbvfdEwkAAJ1mBxIa\n6u67784pp5yScePGZc6cOZk6dWpGjRrV75z999+/Q9Mx0KydAEATCEhoqK6u/hcItFqtvo/b7XZa\nrVZ6e3sHeiw6xNoJADTB0E4PANT8ajyICQAABpqAhIZ63/vet83XX7gjCQAAA2G7l7AuWbIks2bN\nyk9+8pNMmTIl1113XaZOnbrVeQ888EDOP//8fOtb38qwYcNy4okn5sYbb9z6E7oMC2CHWTsBgCbY\n5lNYe3p6cuqpp+app57Ktddem0ceeSSnnXZaNm/e3O+8drudU045Jf/2b/+Wyy67LJ/85Cez9957\n79TBYTBZt25dfvSjH3V6DAAABrltBuStt96adevW5dxzz83MmTNz9tlnZ/Xq1Vm8eHG/8+644458\n//vfz8UXX5zLLrss55xzTv72b/92Z84Ng8Ldd9+dww8/PBMmTMjrXve6JMm73/3u/MEf/EGWLl3a\n4ekAABhsthmQq1evTpLss88+/f7ccnyLH/7wh0mSm2++OaNHj84uu+yST3/607/xYWEwWbFiRd76\n1rdmxYoV/Y7/zu/8ThYvXpyvfOUrHZoMAIDBaoceovNS998888wzSZLhw4dn4cKF+djHPpaLLroo\nb3vb2/Jbv/VbW51/5ZVX9n3c3d2d7u7uHRkDBoWPf/zj6enpyV577ZVHH3207/g73/nOXHnllbnz\nzjs7OB072+LFi7e62gMAoNO2GZCTJ09O8twDcpLkwQcf7Dve09OTIUOGZNiwYX3nnXDCCTnppJPy\n7W9/OytWrMjPfvaz7QYk8OLuvPPOtFqt3HbbbXn961/fd/zggw9Okvz85z/v1GgMgF/95drs2bM7\nNwwAwP/b5lNYn3nmmUycODGjR4/OpZdemjlz5mTkyJFZuXJlhg4dmilTpmTFihXZuHFjJk2alHHj\nxuUjH/lIrr766jzyyCP56U9/mj333LP/J/QkQSgZPnx4ent709PTkxEjRqTVaqW3tzcbNmzI7rvv\nnuHDh6enp6fTYzJArJ0AQBNs8x7IESNGZP78+Rk7dmwuuuiiTJgwIfPnz09X13N/bcv70I0aNSo3\n33xzRowYkfPPPz9jx47NggULtopHoG6vvfZKkvz3f/93v+Nf+tKXkiTjx48f8JkAABjctvs+kL/x\nT+i36FAyffr0/OM//mMOOOCA/OxnP0uSHHfccfnWt76Vdrud973vfbnhhhs6OiMDx9oJADSBgISG\n+tGPfpRp06a96GWqI0eOzPe+970ccsghHZiMTrB2AgBNsM1LWIHOOeSQQ3L77bf3PTRni4MOOijf\n/OY3xSMAAAPODiQ0SHd3d6ZPn57TTz89u+yyS9/xlStXZt26dRk/fnwOPPDADk5Ip1g7AYAmEJDQ\nIFseUDVy5MiceOKJOfPMM3P88cdn6NAdestWXoGsnQBAEwhIaJAtAflCe+yxR84444yceeaZOeqo\nozowFU1g7QQAmkBAQoN861vfyk033ZQFCxbk8ccf7/daq9XKpEmTcuaZZ+bMM890KesgY+0EAJpA\nQEIDPfvss7n11ltz0003ZdGiRdm4cWO/11utVn73d383S5cu7dCEDDRrJwDQBAISGu6pp57Kv/zL\nv+Smm27K7bffnk2bNiV57nupt7e3w9MxUKydAEATeDIHNNyYMWNy8sknp9VqZcOGDVmyZEmnRwIA\nYJASkNBQmzZtym233ZYvf/nL+frXv56NGzf224GyGwUAwEATkNAg7XY7d955Z7785S/nq1/9an7x\ni19sdc6kSZPy3ve+N9OnT+/AhAAADGYCEhpkv/32y0MPPbTV7uLuu++e008/PdOnT88b3/jGDk0H\nAMBg5yE60CAvfB/IESNG5IQTTsj06dNz/PHHZ9iwYR2cjE6zdgIATWAHEhrmmGOOyfTp03P66adn\n3LhxnR4HAAD6CEhokNWrV2fixImdHgMAAF5U1/ZPAQbKr/O+jqtWrdoJkwAAwNYEJDTIwQcfnDPP\nPDN33XXXds+988478973vje//du/PQCTAQCAh+hAo2x5iE6r1cqrX/3qvOlNb8phhx2WPffcM0ny\n6KOP5r777suSJUvy8MMP930vbd68uWMzMzCsnQBAEwhIaJClS5fmkksuyT333FM6/6ijjsrf/M3f\n5A1veMNOnoxOs3YCAE0gIKGBlixZks9//vO5/fbb88gjj/R7bfz48XnrW9+aD3zgAznmmGM67JKU\ndAAAD19JREFUNCEDzdoJADSBgISGe+CBB/Lwww8neS4e999//w5PRCdYOwGAJhCQAC8D1k4AoAm8\nDyQ03D333JNvfOMbefTRR7P33nvnhBNOyO///u93eiwAAAYhO5DQYDNnzsznP//5fsdarVY++MEP\n5rOf/WyHpqITrJ0AQBMISGioG264IWedddZLvn799ddnxowZAzgRnWTtBACaoKvTAwAvbsvO48SJ\nE3PttddmwYIFufbaazNx4sR+rwMAwECxAwkN9apXvSpPP/10li1blkMPPbTv+A9+8IMcdthhedWr\nXpXHH3+8gxMykKydAEAT2IGEhnr22WeTJPvtt1+/4/vuu2+/1wEAYKAISGio/fbbL+12O5dcckk2\nbNiQJNmwYUM+/OEPJ3k+JAEAYKAISGiok046KclzD8vZY489Mm7cuOyxxx6ZO3duv9cBAGCguAcS\nGmr9+vU58sgjs3bt2q1emzhxYr773e9mjz326MBkdIK1EwBoAjuQ0FB77rlnli5dmrPPPjsTJkzI\nkCFD8prXvCbnnHNOli5dKh4BABhwdiABXgasnQBAE9iBBAAAoGRopwcAntfV1ZVWq7Xd89rtdlqt\nVnp7ewdgKgAAeI6AhIapXqbockYAAAbadgNyyZIlmTVrVn7yk59kypQpue666zJ16tQXPffRRx/N\nIYccksceeyyf/OQnc8kll/zGB4ZXsmOPPbZ8r1tlpxIAAH6TthmQPT09OfXUUzNmzJhce+21mTNn\nTk477bSsXLkyXV1b3z554YUXpqenJ4kfbuHXsXjx4k6PAAAAL2mbD9G59dZbs27dupx77rmZOXNm\nzj777KxevfpFf8j9xje+kVtuuSWXXXbZzpoVAACADtrmDuTq1auTJPvss0+/P7cc3+LJJ5/Mueee\nm6uuuipjxozZGXPCoDB79uwd2r2/4oorduI0AADQ3w49ROel7su6+uqrM3r06Bx33HH52te+liRZ\nv359NmzYkF133XWr86+88sq+j7u7u9Pd3b0jY8Ar1uzZs8vntlotAfkKtnjxYpc0AwCNs82AnDx5\ncpLkgQceSJI8+OCDfcd7enoyZMiQDBs2LD//+c/z4x//OAcffHDf373qqqsyduzY/Pmf//lW/+4L\n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\nAAAAANbkf1M+pbyPupgkAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x792e430>"
+ ]
+ }
+ ],
+ "prompt_number": 95
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.9, Page number: 521<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display status of mouse button pressed \n",
+ "\n",
+ "from Tkinter import *\n",
+ "from tkFileDialog import askopenfilename\n",
+ "import Image, ImageTk\n",
+ "\n",
+ "if __name__ == \"__main__\":\n",
+ " root = Tk()\n",
+ "\n",
+ " #setting up a tkinter canvas with scrollbars\n",
+ " frame = Frame(root, bd=2, relief=SUNKEN)\n",
+ " frame.grid_rowconfigure(0, weight=1)\n",
+ " frame.grid_columnconfigure(0, weight=1)\n",
+ " xscroll = Scrollbar(frame, orient=HORIZONTAL)\n",
+ " xscroll.grid(row=1, column=0, sticky=E+W)\n",
+ " yscroll = Scrollbar(frame)\n",
+ " yscroll.grid(row=0, column=1, sticky=N+S)\n",
+ " canvas = Canvas(frame, bd=0, xscrollcommand=xscroll.set, yscrollcommand=yscroll.set)\n",
+ " canvas.grid(row=0, column=0, sticky=N+S+E+W)\n",
+ " xscroll.config(command=canvas.xview)\n",
+ " yscroll.config(command=canvas.yview)\n",
+ " frame.pack(fill=BOTH,expand=1)\n",
+ "\n",
+ " \n",
+ "\n",
+ " #function to be called when mouse is clicked\n",
+ " def printcoords(event):\n",
+ " #outputting x and y coords to console\n",
+ " print \"Mouse Button pressed\"\n",
+ " print (event.x,event.y)\n",
+ " #mouseclick event\n",
+ " canvas.bind(\"<Button 1>\",printcoords)\n",
+ "\n",
+ " root.mainloop()\n",
+ " \n",
+ "import win32api, win32con\n",
+ "\n",
+ "print \"Current cursor position at \" \n",
+ "print win32api.GetCursorPos()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mouse Button pressed\n",
+ "(207, 115)\n",
+ "Current cursor position at "
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "(502, 188)\n"
+ ]
+ }
+ ],
+ "prompt_number": 108
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.10, Page number: 523<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Change mouse cursor.\n",
+ "\n",
+ "#Placing the cursor on top of the circle button will change the pointer to circle\n",
+ "# and plus button to plus symbol\n",
+ "\n",
+ "from Tkinter import *\n",
+ "import Tkinter\n",
+ "\n",
+ "top = Tkinter.Tk()\n",
+ "\n",
+ "B1 = Tkinter.Button(top, text =\"circle\", relief=RAISED,\\\n",
+ " cursor=\"circle\")\n",
+ "B2 = Tkinter.Button(top, text =\"plus\", relief=RAISED,\\\n",
+ " cursor=\"plus\")\n",
+ "B1.pack()\n",
+ "B2.pack()\n",
+ "top.mainloop()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 110
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+>>>>>>> 0ee873700378b995b441b1be6652178f741aea5b
} \ No newline at end of file