added base scripts and questions except for matrices and other-type-of-plots.
authoranoop
Sat, 09 Oct 2010 03:54:07 +0530
changeset 260 25b4e962b55e
parent 259 2ed3c5a3f856
child 261 c7f0069d698a
added base scripts and questions except for matrices and other-type-of-plots.
dictionaries.rst
getting_started_with_arrays.rst
getting_started_with_for.rst
other_type_of_plots.rst
savefig.rst
--- a/dictionaries.rst	Sat Oct 09 02:59:42 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,177 +0,0 @@
-.. 8.4 LO: dictionaries (2)
-.. ------------------------
-.. * empty 
-.. * filled 
-.. * accessing via keys 
-.. * .values(), .keys() 
-.. * in 
-.. * iteration
-
-============
-Dictionaries
-============
-
-{{{ show the welcome slide }}}
-
-Welcome to the spoken tutorial on dictionaries.
-
-{{{ switch to next slide, outline slide }}}
-
-In this tutorial, we will see how to create empty dictionaries, learn
-about keys and values of dictionaries. Checking for elements and
-iterating over elements.
-
-{{{ switch to next slide on overview of dictionaries }}}
-
-A dictionary in general, is designed to look up meanings of
-words. Similarly, Python dictionary is also designed to look up for a
-specific key and retrieve the corresponding value. Dictionaries are
-data structures that provide key-value mappings.  Dictionaries are
-similar to lists except that instead of the values having integer
-indexes, dictionaries have keys or strings as indexes.
-
-Before we can proceed, start your IPython interpreter with the
-``-pylab`` option.
-
-{{{ start ipython interpreter by issuing command ipython -pylab }}}
-
-Let us start by creating an empty dictionary, type the following in
-your IPython interpreter.
-::
-
-    mt_dict = {}    
-
-Notice that unlike lists curly braces are used define ``dictionary``,
-
-{{{ move the mouse over curly braces to grab attention }}}
-
-Now let us see how to create a filled dictionary,
-::
-
-    extensions = {'jpg' : 'JPEG Image', 'py' : 'Python script', 'html' : 'Html document', 'pdf' : 'Portable Document Format'}
-
-Notice that each key-value pair is separated by a comma
-
-{{{ move the mouse over the commas to grab attention }}}
-
-and each key and value are separated using a colon.
-
-{{{ move the mouse over the colon one by one to grab attention }}}
-
-Here, we defined four entries in the dictionary extensions. The keys
-are
-
-{{{ spell the keys letter by letter }}}
-
-jpg, py, html, and pdf.
-
-Simply type,
-::
-
-    extensions
-
-in the interpreter to see the content of the dictionary. Notice that
-in dictionaries the order cannot be predicted and you can see that the
-values are not in the order that we entered in.
-
-Like in lists, the elements in a dictionary can be accessed using the
-index, here the index is the key. Try,
-::
-
-    print extensions['jpg']
-
-It printed JPEG Image. And now try,
-::
-
-    print extensions['zip']
-
-Well it gave us an error, saying that the key 'zip' is not in the
-dictionary.
-
-Pause here for some time and try few more keys. Also try jpg in
-capital letters.
-
-{{{ switch to next slide, adding and deleting keys and values in
-dictionaries }}}
-
-Well that was about creating dictionaries, now how do we add or delete
-items. We can add new items into dictionaries as,
-::
-
-    extensions['cpp'] = 'C++ code'
-
-and delete items using the ``del`` keyword as,
-::
-
-    del extension['pdf']
-
-Let us check the content of the dictionary now,
-::
-
-    extensions
-
-So the changes have been made. Now let us try one more thing,
-::
-
-    extensions['cpp'] = 'C++ source code'
-    extensions
-
-As you can see, it did not add a new thing nor gave an error, but it
-simply replaces the existing value with the new one.
-
-Now let us learn how to check if a particular key is present in the
-dictionary. For that we can use ``in``,
-::
-
-    'py' in extensions
-    'odt' in extensions
-
-So in short it will return ``True`` if the key is found in the
-dictionary, and will return ``False`` if key is not present. Note that
-we can check only for container-ship of keys in dictionaries and not
-values.
-
-{{{ switch to next slide, Retrieve keys and values }}}
-
-Now let us see how to retrieve the keys and values. We can use the
-method ``keys()`` for getting a list of the keys in a particular
-dictionary and the method ``values()`` for getting a list of
-values. Let us try them,
-::
-
-    extensions.keys()
-
-It returned the ``list`` of keys in the dictionary extensions. And now
-the other one,
-::
-
-    extensions.values()
-
-It returned the ``list`` of values in the dictionary.
-
-{{{ switch to next slide, problem statement for the next solved
-exercise }}}
-
-Now let us try to print the data in the dictionary. We can use ``for``
-loop to iterate.
-::
-
-    for each in extensions.keys():
-        print each, "-->", extensions[each]
-
-
-{{{ switch to next slide, recap }}}
-
-This brings us to the end of this tutorial, we learned dictionaries
-and saw how to create an empty dictionary, build a dictionary with
-some data in it, adding data, ``keys()`` and ``values()`` methods, and
-iterating over the dictionaries.
-
-{{{ switch to next slide, thank you slide }}}
-
-Thank you!
-
-..  Author: Anoop Jacob Thomas <anoop@fossee.in>
-    Reviewer 1:
-    Reviewer 2:
-    External reviewer:
--- a/getting_started_with_arrays.rst	Sat Oct 09 02:59:42 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,213 +0,0 @@
-.. 4.1 LO: getting started with arrays (2) [anoop] 
-.. ------------------------------------------------
-.. * why arrays 
-..   + speed - simply say 
-..   + array level operations 
-.. * creating arrays 
-..   + direct data 
-..   + list conversion 
-..   + homogeneous 
-..   + builtins - identitiy, zeros, 
-.. * array operations 
-..   + =+ - * /= 
-
-===========================
-Getting started with Arrays
-===========================
-
-{{{ show the welcome slide }}}
-
-Welcome to the spoken tutorial on getting started with arrays.
-
-{{{ switch to next slide, outline slide }}}
-
-In this tutorial, we will learn about arrays, how to convert a list
-into an array and also why an array is preferred over lists. And array
-operations.
-
-{{{ switch to next slide on overview of array }}}
-
-Arrays are homogeneous data structures, unlike lists, arrays cannot
-have heterogeneous data elements, that is, it can have only one type
-of data type, either all integers, or strings, or float, and not a
-mix.
-
-Arrays are really fast in mathematical operations when compared to
-lists, it is at least 80 to 100 times faster than lists.
-
-{{{ switch to the next slide, creating arrays }}}
-
-I am assuming that you have your IPython interpreter running with the
-``-pylab`` option, so that you have the required modules loaded.
-
-To create an array we will use the function ``array()`` as,
-::
-
-    a1 = array([1,2,3,4])
-
-Notice that here we created a one dimensional array. Also notice the
-object we passed to create an array. Now let us see how to create a
-two dimensional array.
-::
-
-    a2 = array([[1,2,3,4],[5,6,7,8]])
-
-Now, let us see how to convert a list object to an array. As you have
-already seen, in both of the previous statements we have passed a
-list, so creating an array can be done so, first let us create a list
-``l1``
-::
-
-    l1 = [1,2,3,4]
-
-Now we can convert the list to an array as,
-::
-
-    a3 = array(l1)
-
-
-{{{ switch to the next slide, problem statement of unsolved exercise 1 }}}
-
-Create a three dimensional array of the order (2,2,4).
-
-{{{ switch to the next slide, shape of an array }}}
-
-To find the shape of an array we can use the object ``.shape``, let us
-check the shape of the arrays we have created so far,
-::
-
-    a1.shape
-
-``a1.shape`` object is a tuple, and since a1 is a single dimensional
-array, it returned a tuple (4,).
-
-{{{ switch to the next slide, unsolved exercise 2 }}}
-
-Find out the shape of the other two arrays that we have created.
-
-{{{ Array can have only a single type of data }}}
-
-Now let us try to create a new array with a mix of elements and see
-what will happen,
-::
-
-    a4 = array([1,2,3,'a string'])
-
-Well, we expected an error as previously I said that an array can have
-only homogeneous elements, but it didn't give an error. Let us check
-the values in the new array created. In your IPython terminal type,
-::
-
-    a4
-
-Did you notice it, 
-
-{{{ highlight all the array elements one by one using mouse 
-movements }}}
-
-all the elements have been implicitly type casted as string, though
-our first three elements were integers.
-
-{{{ switch to the next slide, identity & zeros methods }}}
-
-An identity matrix is a square matrix in which all the diagonal
-elements are one and rest of the elements zero. We can create an
-identity matrix using the method ``identity()``.
-
-The function ``identity()`` takes an integer argument,
-::
-
-    identity(3)
-
-As you can see the identity method returned a three by three square
-array with all the diagonal elements as one and the rest of the
-elements as zero.
-
-``zeros()`` function accepts a tuple, which is the order of the array
-we want to create, and it generates an array with all elements zero.
-
-{{{ switch to the next slide, problem statement of the solved exercise
-1 }}}
-
-Let us creates an array of the order four by five with all the
-elements zero. We can do it using the method zeros,
-::
-
-    zeros((4,5))
-
-Notice that we passed a tuple to the function zeros.
-
-{{{ switch to next slide, learning exercise }}}
-
-We learned two functions ``identity()`` and ``zeros()``, find out more
-about the functions ``zeros_like()``, ``ones()``, ``ones_like()``.
-
-{{{ switch to next slide, array operations }}}
-
-Try the following, first check the value of a1,
-::
-
-    a1
-
-``a1`` is a single dimensional array, and now try,
-::
-
-    a1 * 2
-
-It returned a new array with all the elements multiplied by 2.
-::
-
-    a1
-
-note that the value of a1 still remains the same.
-
-Similarly with addition,
-::
-
-    a1 + 2
-
-it returns a new array, with all the elements summed with two. But
-again notice that the value of a1 has not been changed.
-::
-
-    a1
-
-You may change the value of a1 by simply assigning the newly returned
-array as,
-::
-
-    a1 += 2
-
-Notice the change in elements of a,
-::
-
-    a
-
-We can use all the mathematical operations with arrays, Now let us try
-this
-::
-
-   a1 = array([1,2,3,4])
-   a2 = array([1,2,3,4])
-   a1 + a2
-
-Returns an array with element by element addition,
-::
-
-    a1 * a2
-
-Returns an array with element by element multiplication, notice that
-it does not perform matrix multiplication.
-
-{{{ switch to next slide, recap slide }}}
-
-So this brings us to the end of this tutorial, in this tutorial we covered basics of arrays, how to create an array, converting a list to an array, basic array operations etc.
-
-{{{ switch to next slide, thank you }}}
-
-Thank you!
-
-..  Author: Anoop Jacob Thomas <anoop@fossee.in>
-    Reviewer 1:
-    Reviewer 2:
-    External reviewer:
--- a/getting_started_with_for.rst	Sat Oct 09 02:59:42 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,272 +0,0 @@
-.. 3.2 LO: getting started with =for= (2) [anoop] 
-.. -----------------------------------------------
-.. * blocks in python 
-..   + (indentation) 
-.. * blocks in ipython 
-..   + ... prompt 
-..   + hitting enter 
-.. * =for= with a list 
-.. * =range= function 
-
-=============================
-Getting started with for loop
-=============================
-
-{{{ show welcome slide }}}
-
-Hello and welcome to the tutorial getting started with ``for`` loop. 
-
-{{{ switch to next slide, outline slide }}}
-
-In this tutorial we will learn about ``for`` loops in python, and also
-learn how to write blocks of code in Python.
-
-.. #[Nishanth]: Instead of saying basics of indenting code,
-                say How to define code blocks in Python
-
-{{{ switch to next slide, about whitespaces }}}
-
-In Python whitespace is significant, and the blocks are visually
-separated.
-
-.. #[nishanth]: Simply tell how blocks are defined in python.
-                The details like braces are not used and its
-                advantages like neat code can be told after completely
-                explaining the indentation
-
-.. #[Amit]: Do you want to do that here. May be its better to talk about 
-   this after some initiation into the idea of blocks. 
-
-The best practice is to indent the code using four spaces.
-
-.. #[Nishanth]: Even this detail may be skipped. Simply say use 4 spaces
-                for indentation. Do that while typing so that they can
-                actually see what is being typed.
-
-Now let us move straight into ``for`` loop.
-
-{{{ switch to next slide, problem statement of exercise 1 }}}
-
-
-Write a for loop which iterates through a list of numbers and find the
-square root of each number.
-::
-
-    numbers are 1369, 7225, 3364, 7056, 5625, 729, 7056, 576, 2916
-
-.. #[nishanth]: making new list with square roots induces extra complication
-                like appending which has no use case here
-
-.. #[Nishanth]: The problem focuses more on square root and creation
-                of list. The problem must be simple and focusing on 
-                nothing more but the indentation and for loop.
-                May be change the problem to print squares than to
-                print square roots.
-
-For the problem, first we need to create a ``list`` of numbers and
-then iterate over the list and find the square root of each element in
-it. And let us create a script, rather than typing it out in the
-interpreter itself. Create a script called list_roots.py and type the
-following.
-
-{{{ open the text editor and paste the following code there }}}
-::
-
-    numbers = [1369, 7225, 3364, 7056, 5625, 729, 7056, 576, 2916]
-    for each in numbers:
-        print "Square root of", each, "is", sqrt(each)
-    print "This is not in for loop!"
-
-..  numbers = [1, 12, 3, 4, 21, 17]
-    for each in numbers:
-        print each, each * each
-
-.. #[nishanth]: I don't see a use case to append the sq_root to
-                square_roots. It is only complicating stuff.
-                Simply iterate and print.
-
-{{{ save the script }}}
-
-Now save the script, and run it from your IPython interpreter. I
-assume that you have started your IPython interpreter using ``-pylab``
-option.
-
-Run the script as,
-::
-
-    %run -i list_roots.py
-
-.. #[Nishanth]: you don't have to use the -i option here
-
-{{{ run the script }}}
-
-So that was easy! All what we did was iterate over the list element by
-element and then use the element for calculation. Note that here we
-used two variables. One the variable ``numbers``, which is a list,
-another one ``each``, which is the element of list under consideration
-in each cycle of the ``for`` loop. The variable names can be chosen by
-you.
-
-.. #[Nishanth]: The details like we didn't have to find the length
-                are relevant for people who have programmed in C or
-                other languages earlier. But for a newbie it is more
-                of confusing extra info. That part may be skipped.
-                Simply go ahead and focus on the syntax of for loop.
-                And how the variable name is used inside the for loop.
-                If you modify the question to only print, the extra 
-                variable sq_root can also be avoided. let it be more
-                about "each", "numbers" and "for". no other new names.
-
-{{{ show the script which was created }}}
-
-Note that the lines after ``for`` statement, is indented using four
-spaces.
-
-{{{ highlight the line after for statement }}}
-
-It means that line is part of the for loop. And it is a block of code,
-although it is only a single statement in the block. And the fourth
-line or the immediate line after the ``for`` block is not indented,
-
-{{{ highlight the fourth line - the line just after for loop }}}
-
-it means that it is not part of the ``for`` loop and the lines after
-that doesn't fall in the scope of the ``for`` loop. Thus each block is
-separated by the indentation level. Thus marking the importance of
-white-spaces in Python.
-
-{{{ switch to the slide which shows the problem statement of the first
-problem to be tried out }}}
-
-Now a question for you to try, from the given numbers make a list of
-perfect squares and a list of those which are not. The numbers are,
-::
-    
-    7225, 3268, 3364, 2966, 7056, 5625, 729, 5547, 7056, 576, 2916
-
-{{{ switch to next slide, problem statement of second problem in
-solved exercise}}}
-
-Now let us try a simple one, to print the square root of numbers in
-the list. And this time let us do it right in the IPython
-interpreter. 
-
-{{{ switch focus to the IPython interpreter }}}
-
-So let us start with making a list. Type the following
-::
-
-    numbers = [1369, 7225, 3364, 7056, 5625, 729, 7056, 576, 2916]
-    for each in numbers:
-
-and now you will notice that, as soon as you press the return key
-after for statement, the prompt changes to four dots and the cursor is
-not right after the four dots but there are four spaces from the
-dots. Please note that IPython automatically indents the block. The
-four dots tell you that you are inside a block. Now type the rest of
-the ``for`` loop,
-
-.. #[Nishanth]: Tell that IPython does auto indentation.
-
-::
-
-        print "Square root of", each, "is", sqrt(each)
-
-Now we have finished the statements in the block, and still the
-interpreter is showing four dots, which means you are still inside the
-block. To exit from the block press return key or the enter key twice
-without entering anything else. It printed the square root of each
-number in the list, and that is executed in a ``for`` loop.
-
-Now, let us find the cube of all the numbers from one to ten. But this
-time let us try it in the vanilla version of Python interpreter.
-
-Start the vanilla version of Python interpreter by issuing the command
-``python`` in your terminal.
-
-{{{ open the python interpreter in the terminal using the command
-python to start the vanilla Python interpreter }}}
-
-Start with,
-::
-    
-    for i in range(1,11):
-
-and press enter once, and we will see that this time it shows four
-dots, but the cursor is close to the dots, so we have to indent the
-block. The vanilla version of Python interpreter does not indent the
-code automatically. So enter four spaces there and then type the
-following
-::
-    
-        print i, "cube is", i**3
-
-Now when we hit enter, we still see the four dots, to get out of the
-block, hit enter once again
-
-.. #[Nishanth]: Here also the overhead on print can be reduced.
-                Think of a simple print statement. This statement
-                will be confusing for a newbie.
-                We can focus more on indentation in python.
-
-.. #[nishanth]: Not sure if you must use range here. You can 
-                define a list of numbers and iterate on it.
-                Then say this list can also be generated using
-                the range function and hence introduce range.
-
-Okay! so the main thing here we learned is how to use Python
-interpreter and IPython interpreter to specify blocks. But while we
-were generating the multiplication table we used something new,
-``range()`` function. ``range()`` is an inbuilt function in Python
-which can be used to generate a ``list`` of integers from a starting
-number to an ending number. Note that the ending number that you
-specify will not be included in the ``list``.
-
-.. #[Nishanth]: Show some examples of range without the step argument
-                May be give an exercise with negative numbers as arguments
-
-Now, let us print all the odd numbers from 1 to 50. Let us do it in
-our IPython interpreter for ease of use.
-
-{{{ switch to next slide, problem statement of the next problem in
-solved exercises }}}
-
-{{{ switch focus to ipython interpreter }}}
-
-The problem can be solved by just using the ``range()`` function.
-
-It can be solved as,
-::
-
-    print range(1,51,2)
-
-This time we passed three parameters to ``range()`` function unlike
-the previous case where we passed only two parameters. The first two
-parameters are the same in both the cases. The first parameter is the
-starting number of the sequence and the second parameter is the end of
-the range. Note that the sequence doesn't include the ending
-number. The third parameter is for stepping through the sequence. Here
-we gave two which means we are skipping every alternate element.
-
-{{{ switch to next slide, recap slide }}}
-
-Thus we come to the end of this tutorial. We learned about blocks in
-Python, indentation, blocks in IPython, for loop, iterating over a
-list and then the ``range()`` function.
-
-.. #[Amit]: There does seem to too much overhead of details. Should
-            the first example be done using script is it necessary. 
-	    Do add some things in evolutionary manner. Like introducing 
-	    range as a list and doing a very very simple for loop.Like
-	    iterating over [1,2,3] .Before getting into a problem.
-	    And club details about problem in one paragraph and syntactic details
-	    in other.
-
-{{{ switch to next slide, thank you slide }}}
-
-Thank you!
-
-..  Author: Anoop Jacob Thomas <anoop@fossee.in>
-    Reviewer 1: Nishanth
-    Reviewer 2: Amit Sethi
-    External reviewer:
--- a/other_type_of_plots.rst	Sat Oct 09 02:59:42 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,220 +0,0 @@
-.. 2.4 LO: other types of plots (3) [anoop] 
-.. -----------------------------------------
-.. * scatter 
-.. * pie chart 
-.. * bar chart 
-.. * log 
-.. * illustration of other plots, matplotlib help
-
-===================
-Other type of plots
-===================
-
-{{{ show the first slide }}}
-
-Hello and welcome to the tutorial other type of plots.
-
-{{{ show the outline slide }}}
-
-In this tutorial we will cover scatter plot, pie chart, bar chart and
-log plot. We will also see few other plots and also introduce you to
-the matplotlib help.
-
-
-Let us start with scatter plot. 
-
-{{{ switch to the next slide }}}
-
-In a scatter plot, the data is displayed as a collection of points,
-each having the value of one variable determining the position on the
-horizontal axis and the value of the other variable determining the
-position on the vertical axis. This kind of plot is also called a
-scatter chart, scatter diagram and scatter graph.
-
-Before we proceed further get your IPython interpreter running with
-the ``-pylab`` option. Start your IPython interpreter as
-::
-
-    ipython -pylab
-
-{{{ open the ipython interpreter in the terminal using the command
-ipython -pylab }}}
-
-{{{ switch to the next slide having the problem statement of first
-exercise }}}
-
-Now, let us plot a scatter plot showing the percentage profit of company A
-from the year 2000-2010. The data for the same is available in the
-file ``company-a-data.txt``. 
-
-{{{ open the file company-a-data.txt and show the content }}}
-
-The data file has two lines with a set of values in each line, the
-first line representing years and the second line representing the
-profit percentages.
-
-{{{ close the file and switch to the terminal }}}
-
-To product the scatter plot first we need to load the data from the
-file using ``loadtxt``. We learned in one of the previous sessions,
-and it can be done as ::
-
-    year,profit = loadtxt('/home/fossee/other-plot/company-a-data.txt',dtype=type(int()))
-
-Now in-order to generate the scatter graph we will use the function 
-``scatter()`` 
-::
-
-	scatter(year,profit)
-
-Notice that we passed two arguments to ``scatter()`` function, first
-one the values in x-coordinate, year, and the other the values in
-y-coordinate, the profit percentage.
-
-{{{ switch to the next slide which has the problem statement of
-problem to be tried out }}}
-
-Now here is a question for you to try out, plot the same data with red
-diamonds. 
-
-**Clue** - *try scatter? in your ipython interpreter* 
-
-.. scatter(year,profit,color='r',marker='d')
-
-Now let us move on to pie chart.
-
-{{{ switch to the slide which says about pie chart }}}
-
-A pie chart or a circle graph is a circular chart divided into
-sectors, illustrating proportion.
-
-{{{ switch to the slide showing the problem statement of second
-exercise question }}}
-
-Plot a pie chart representing the profit percentage of company A, with
-the same data from file ``company-a-data.txt``. So let us reuse the
-data we have loaded from the file previously.
-
-We can plot the pie chart using the function ``pie()``.
-::
-
-   pie(profit,labels=year)
-
-Notice that we passed two arguments to the function ``pie()``. The
-first one the values and the next one the set of labels to be used in
-the pie chart.
-
-{{{ switch to the next slide which has the problem statement of
-problem to be tried out }}}
-
-Now here is a question for you to try out, plot a pie chart with the
-same data with colors for each wedges as white, red, black, magenta,
-yellow, blue, green, cyan, yellow, magenta and blue respectively.
-
-**Clue** - *try pie? in your ipython interpreter* 
-
-.. pie(t,labels=s,colors=('w','r','k','m','y','b','g','c','y','m','b'))
-
-{{{ switch to the slide which says about bar chart }}}
-
-Now let us move on to bar chart. A bar chart or bar graph is a chart
-with rectangular bars with lengths proportional to the values that
-they represent.
-
-{{{ switch to the slide showing the problem statement of third
-exercise question }}}
-
-Plot a bar chart representing the profit percentage of company A, with
-the same data from file ``company-a-data.txt``. 
-
-So let us reuse the data we have loaded from the file previously.
-
-We can plot the bar chart using the function ``bar()``.
-::
-
-   bar(year,profit)
-
-Note that the function ``bar()`` needs at least two arguments one the
-values in x-coordinate and the other values in y-coordinate which is
-used to determine the height of the bars.
-
-{{{ switch to the next slide which has the problem statement of
-problem to be tried out }}}
-
-Now here is a question for you to try, plot a bar chart which is not
-filled and which is hatched with 45\ :sup:`o` slanting lines as shown
-in the image in the slide.
-
-**Clue** - *try bar? in your ipython interpreter* 
-
-.. bar(year,profit,fill=False,hatch='/')
-
-{{{ switch to the slide which says about bar chart }}}
-
-Now let us move on to log-log plot. A log-log graph or log-log plot is
-a two-dimensional graph of numerical data that uses logarithmic scales
-on both the horizontal and vertical axes. Because of the nonlinear
-scaling of the axes, a function of the form y = ax\ :sup:`b` will
-appear as a straight line on a log-log graph
-
-{{{ switch to the slide showing the problem statement of fourth
-exercise question }}}
-
-
-Plot a `log-log` chart of y=5*x\ :sup:`3` for x from 1-20.
-
-Before we actually plot let us calculate the points needed for
-that. And it could be done as,
-::
-
-    x = linspace(1,20,100)
-    y = 5*x**3
-
-Now we can plot the log-log chart using ``loglog()`` function,
-::
-
-    loglog(x,y)
-
-To understand the difference between a normal ``plot`` and a ``log-log
-plot`` let us create another plot using the function ``plot``.
-::
-
-    figure(2)
-    plot(x,y)
-
-{{{ show both the plots side by side }}}
-
-So that was ``log-log() plot``.
-
-{{{ switch to the next slide which says: "How to get help on
-matplotlib online"}}}
-
-Now we will see few more plots and also see how to access help of
-matplotlib over the internet.
-
-Help about matplotlib can be obtained from
-matplotlib.sourceforge.net/contents.html
-
-.. #[[Anoop: I am not so sure how to do the rest of it, so I guess we
-   can just browse through the side and tell them few. What is your
-   opinion??]]
-
-Now let us see few plots from
-matplotlib.sourceforge.net/users/screenshots.html
-
-{{{ browse through the site quickly }}}
-
-{{{ switch to recap slide }}}
-
-Now we have come to the end of this tutorial. We have covered scatter
-plot, pie chart, bar chart, log-log plot and also saw few other plots
-and covered how to access the matplotlib online help.
-
-{{{ switch to the thank you slide }}}
-
-Thank you!
-
-..  Author: Anoop Jacob Thomas <anoop@fossee.in>
-    Reviewer 1:
-    Reviewer 2:
-    External reviewer:
--- a/savefig.rst	Sat Oct 09 02:59:42 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-=======
-Savefig
-=======
-
-Hello and welcome to the tutorial. In this tutorial you will learn how
-to save plots using Python.
-
-Start your IPython interpreter with the command ::
-
-  ipython -pylab
-
-It will start your IPython interpreter with the required python
-modules for plotting and saving your plots.
-
-{{{ Open ipython }}}
-
-Now let us plot something, let us plot a sine wave from minus 3 pi to
-3 pi. Let us start by calculating the required points for the plot. It
-can be done using linspace as, ::
-
-  x = linspace(-3*pi,3*pi,100)
-
-We have stored required points in x. Now let us plot the points using
-the statement ::
-
-  plot(x,sin(x))
-
-{{{ Keep the plot open }}}
-
-Done! we have made a very basic sine plot, now let us see how to save
-the plot for future use so that you can embed the plot in your
-reports.
-
-{{{ Switch the focus to IPython interpreter window }}}
-
-For saving the plot, we will use savefig function, and it has to be
-done with the plot window open. The statement is, ::
-
-  savefig('/home/fossee/sine.png')
-
-Notice that ``savefig`` function takes one argument which is a string
-which is the filename. The last 3 characters after the ``.`` in the
-filename is the extension or type of the file which determines the
-format in which you want to save.
-
-{{{ Highlight the /home/fossee part using mouse movements }}}
-
-Also, note that we gave the full path or the absolute path to which we
-want to save the file.
-
-{{{ Highlight the .png part using mouse movements }}}
-
-Here I have used an extension ``.png`` which means i want to save the
-image as a PNG file.
-
-Now let us locate ``sine.png`` file saved. We saved the file to
-``/home/fossee`` so let us navigate to ``/home/fossee`` using the
-file browser.
-
-{{{ Open the browser, navigate to /home/fossee and highlight the file
-sine.png }}}
-
-Yes, the file ``sine.png`` is here and let us check the it.
-
-{{{ Open the file sine.png and show it for two-three seconds and then
-close it and return to IPython interpreter, make sure the plot window
-is still open, also don't close the file browser window }}}
-
-So in-order to save a plot, we use ``savefig`` function. ``savefig``
-can save the plot in many formats, such as pdf - portable document
-format, ps - post script, eps - encapsulated post script, svg -
-scalable vector graphics, png - portable network graphics which
-support transparency etc.
-
-#[slide must give the extensions for the files - Anoop]
-
-Let us now try to save the plot in eps format. ``eps`` stands for
-encapsulated post script, and it can be embedded in your latex
-documents.
-
-{{{ Switch focus to the already open plot window }}}
-
-We still have the old sine plot with us, and now let us save the plot
-as ``sine.eps``.
-
-{{{ Switch focus to IPython interpreter }}}
-
-Now, We will save the plot using the function ``savefig`` ::
-
-  savefig('/home/fossee/sine.eps')
-
-{{{ Switch focus to file browser window }}}
-
-Now let us go to ``/home/fossee`` and see the new file created.
-
-{{{ Highlight the file sine.eps with a single mouse click for 2
-seconds and then double click and open the file }}}
-
-Yes! the new file ``sine.eps`` is here.
-
-Now you may try saving the same in pdf, ps, svg formats.
-
-Let us review what we have learned in this session! We have learned to
-save plots in different formats using the function ``savefig()``.
-
-Thank you!
-
-..  Author: Anoop Jacob Thomas <anoop@fossee.in>
-    Reviewer 1:
-    Reviewer 2:
-    External reviewer: