basic-plot.txt
author amit@thunder
Fri, 02 Apr 2010 19:30:17 +0530
changeset 13 847f9aefa7d4
parent 11 eafc653206d8
child 16 cdcad776b360
permissions -rw-r--r--
Changes in the end some problem with continuity of commands . Fixed it .

* Script
**********
Some greeting-- Hi or Hello or Welcome - would be polite to start with
**********

Hello and welcome to the first tutorial in a series of tutorials on Python for Scientific Computing . 
In this tutorial, we will cover the basics of the Plotting features available in Python. 
For this we shall use  Ipython and pylab. 
Ipython is An Enhanced Interactive Python interpreter. It provides additional features like tab completion,easier access to help , and many other useful features.
Pylab is python library which provides plotting functionality. 

I am assuming that you have both Ipython and Pylab installed on your system .

On your terminal type in the command Ipython -pylab
$ ipython -pylab
press RETURN

We will first start with the absolute basic i.e how to print hello world

In []: print 'hello world'

Now to exit ipython type Ctrl-D . It will ask if you wish to exit type y to exit

Now we will get back to plotting .

type :
$ ipython -pylab
press RETURN

First, we will create a sequence of equally spaced points starting from 0 to 2*pi

For this type:

In []: x = linspace(0, 2*pi, 50)

You can also do :
In []: x = lins<Tab> This is an Ipython feature that will auto-suggest the word




To know more about the 'linspace' function type

In []: lins<Tab>pace  linspace?

It shows documentation related to linspace function. 'help' talks in detail about arguments to be passed, return values, some examples on usage.

as you can see linspace can take three parameters start, stop, and num and returns num evenly space points . You can scroll through the help to know more about the function
 


You can Check value of x by
In []: x
 x is a sequence of 50 points starting from 0 to 2*pi. Length of x can be seen via function
In []: len(x)
which shows it to be 50 points.

To obtain the plot we say,
In []: plot(x, sin(x))
***
As you can see a plot has appeared on the screen. 
***
The plot has the default color and line properties. 

Both 'pi' and 'sin' come from 'pylab'. 

Now that we have a basic plot, we can label and title the plot. 
In []: xla<TAB>bel('x') will add a label to the x-axis. Note that 'x' is enclosed in quotes. 
Similarly
In []: ylabel('sin(x)') adds a label to the y-axis.
To add a title to plot we simply use 
In []: tit<TAB>le('Sinusoid').

Now we will add a legend to the plot. 
In []: legend(['sin(x)'])

To go to previous command, we can use 'UP Arrow key' and 'DOWN' will take us (in reverse order)/back.
We can modify previous command to specify the location of the legend, by passing an additional argument to the function. 
In []: legend(['sin(x)'], loc = 'center')

other positions which can be tried are
'best' 
'right'

We now annotate, i.e add a comment, at a specific position in the graph. In this case, let's add a comment at the point with maximum sin value. 
In []: annotate('origin', xy=(0, 0))

The first argument is the comment string and second one is the position for it. 

Now, we save the plot as follows
In []: savefig('sin.png') saves the figure with the name 'sin.png' in the current directory. 

#other supported formats are: eps, ps, pdf etc.

When we use plot again by default plots get overlaid.
In []: plot(x, cos(x))

we update Y axis label 
In []: ylabel('f(x)')

Now in these situations with overlaid graphs, legend becomes absolutely essential. To add multiple legends, we pass the strings within quotes separated by commas and enclosed within square brackets as shown.

In []: legend( [ 'sin(x)' , 'cos(x)'] )

In []: clf()
clears the plot area and starts afresh.

In case we want to create multiple plots rather than overlaid plots, we use 'figure' function.
The figure command is used to open a plain figure window without any plot.
In []: figure(1)

plot() plot command plots a sin plot on figure(1)
In []: plot(x, sin(x))

to creates a new plain figure window without any plot. 
In []: figure(2)
figure() is also used to shift the focus between multiple windows. 

Any command issued henceforth applies to this window only.
In []: plot(x, cos(x))
The previous plot window remains unchanged to these commands.

In []: savefig('cosine.png')

figure(1) shifts the focus back to figure(1).
In []: figure(1)

title() sets the title of figure(1) 
In []: title('sin(x)')

Here we save the plot of figure(1). 
In []: savefig('sine.png')

close() closes figure(1). Now there is just one figure that is open and hence 
the focus is automatically shifted to figure(2).
In []: close()

close() now closes the figure(2).
In []: close()

The plot command takes the following optional parameters such as 'g' which generates the plot in green color. 

Passing the linewidth=2 option to plot, generates the plot with linewidth of two units.
Use Up arrow to get to the previous commands 
In []: plot(x, sin(x), 'g', linewidth=2) and add arguments

In []: clf()

In order to plot points you may pass '.' as a parameter to plot
In []: plot(x, sin(x), '.')

In []: clf()

In order to plot filled circles in black color you can pass 'ko' parameter to plot
In []: plot(x, cos(x), 'ko')

In []: clf()

A plot using dashed lines can be generated by passing the '--' parameter
In []: plot(x, sin(x), '--')

You may look at more options related to colors and type of lines using plot?

In []: clf()

and finally to close the plot
In []: close()




****************
This brings us to the end of this tutorial.  Thank you for attending this first tutorial on Python for Scientific Computing 
****************