author | shantanu <shantanu@fossee.in> |
Tue, 30 Mar 2010 19:11:39 +0530 | |
changeset 5 | 76fe6a48386f |
parent 4 | 4dee50d4804b |
child 9 | 538f59bb598c |
permissions | -rw-r--r-- |
0
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
1 |
* Script |
5 | 2 |
********** |
3 |
Some greeting - Hi or Hello or Welcome - would be polite to start with |
|
4 |
********** |
|
0
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
5 |
|
5 | 6 |
Hello, in this tutorial, we will cover the basics of the Plotting features available in Python. We shall use Ipython and pylab. Ipython is An Enhanced Interactive Python interpreter. It provides additional features like tab completion, help etc. pylab is python library which provides plotting functionality. |
4
4dee50d4804b
Added changes to array.org file and basic plotting.
Shantanu <shantanu@fossee.in>
parents:
0
diff
changeset
|
7 |
|
4dee50d4804b
Added changes to array.org file and basic plotting.
Shantanu <shantanu@fossee.in>
parents:
0
diff
changeset
|
8 |
I am assuming that you have them installed on your system. |
0
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
9 |
|
5 | 10 |
Lets start IPython. Click Applications - Accessories - Terminal. The terminal window will open. Type the following command. |
0
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
11 |
|
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
12 |
$ ipython -pylab |
4
4dee50d4804b
Added changes to array.org file and basic plotting.
Shantanu <shantanu@fossee.in>
parents:
0
diff
changeset
|
13 |
press RETURN |
0
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
14 |
|
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
15 |
This will give us a prompt where we can get started. |
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
16 |
|
5 | 17 |
First, we create a sequence of numbers which are equally spaced starting from 0 till/to(?) 2*pi |
18 |
||
19 |
In []: x = lins<Tab> will auto complete the function. This is one of the feature of IPython. |
|
20 |
||
0
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
21 |
In []: x = linspace(0, 2*pi, 100) |
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
22 |
|
5 | 23 |
To check or read documentation on 'linspace' function type |
24 |
||
25 |
In []: lins<Tab>pace? |
|
26 |
||
27 |
It shows documentation related to linspace function. 'help' talks in detail about arguments to be passed, return values, some examples on usage. (To scroll down the page use 'SPACE' key and to scroll up use 'b')To navigate through content use arrow(/Page Up and Page Down) keys. ':See Also' section hints about other related or similar functions which might be useful. To exit help (mode) press 'q'. |
|
28 |
||
29 |
In our case, we have passed three arguments to the linspace function - the starting point, the last point and the total number of points. |
|
30 |
Check value of x by |
|
0
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
31 |
In []: x |
5 | 32 |
x is a sequence of 100 points starting from 0 to 2*pi. Length of x can be seen via function |
0
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
33 |
In []: len(x) |
5 | 34 |
which shows the length of x to be 100 points. |
0
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
35 |
|
5 | 36 |
To obtain the plot we say, |
0
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
37 |
In []: plot(x, sin(x)) |
5 | 38 |
*** |
39 |
As you can see a plot has come on the screen. |
|
40 |
*** |
|
41 |
A plot of x vs sin(x) appears on screen, with the default color and line properties. |
|
0
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
42 |
|
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
43 |
Both 'pi' and 'sin' come from 'pylab'. |
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
44 |
|
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
45 |
Now that we have a basic plot, we can label and title the plot. |
5 | 46 |
In []: xla<TAB>bel('x') will add a label to the x-axis. Note that 'x' is enclosed in quotes. |
47 |
Similarly |
|
48 |
In []: ylabel('sin(x)') adds a label to the y-axis. |
|
49 |
To add a title to plot we simply use |
|
50 |
In []: tit<TAB>le('Sinusoid'). |
|
0
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
51 |
|
5 | 52 |
Now we will add a legend to the plot. |
0
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
53 |
In []: legend(['sin(x)']) |
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
54 |
|
5 | 55 |
To go to previous command, we can use 'UP Arrow key' and 'DOWN' will take us (in reverse order)/back. |
56 |
We can modify previous command to specify the location of the legend, by passing an additional argument to the function. |
|
0
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
57 |
In []: legend(['sin(2y)'], loc = 'center') |
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
58 |
|
5 | 59 |
other positions which can be tried are |
0
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
60 |
'best' |
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
61 |
'right' |
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
62 |
|
5 | 63 |
We now annotate, i.e add a comment, at the point with maximum sin value. |
0
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
64 |
In []: annotate('local max', xy=(1.5, 1)) |
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
65 |
|
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
66 |
The first argument is the comment and second one is the position for it. |
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
67 |
|
5 | 68 |
Now, we save the plot as follows |
69 |
In []: savefig('sin.png') saves the figure as sin.png in the current directory. |
|
70 |
||
71 |
?#other supported formats are: eps, ps, pdf etc. |
|
72 |
||
73 |
When we use plot again by default plots get overlaid. |
|
74 |
In []: plot(x, cos(x)) |
|
75 |
||
76 |
we update Y axis label |
|
77 |
In []: ylabel('f(x)') |
|
78 |
||
79 |
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. |
|
80 |
||
81 |
In []: legend( [ 'sin(y)' , 'cos(y)'] ) |
|
82 |
||
83 |
In []: clf() |
|
84 |
clears the plot area and start afresh. |
|
85 |
||
86 |
In case we want to create multiple plots rather than overlaid plots, we use 'figure' function. |
|
87 |
The figure command is used to open a plain figure window without any plot. |
|
88 |
In []: figure(1) |
|
89 |
||
90 |
plot() plot command plots a sin plot on figure(1) |
|
91 |
In []: plot(y, sin(y)) |
|
92 |
||
93 |
to creates a new plain figure window without any plot. |
|
94 |
In []: figure(2) |
|
95 |
figure() also shifts the focus between multiple windows. |
|
96 |
||
97 |
Any command issued henceforth applies to this window only. |
|
98 |
In []: plot(x, cos(x)) |
|
99 |
The previous plot window remains unchanged to these commands. |
|
100 |
||
101 |
In []: savefig('cosine.png') |
|
102 |
||
103 |
figure(1) shifts the focus back to figure(1). |
|
104 |
In []: figure(1) |
|
0
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
105 |
|
5 | 106 |
title() sets the title of figure(1) |
107 |
In []: title('sin(y)') |
|
108 |
||
109 |
Here we save the plot of figure(1). |
|
110 |
In []: savefig('sine.png') |
|
111 |
||
112 |
close() closes figure(1). Now there is just one figure that is open and hence |
|
113 |
the focus is automatically shifted to figure(2). |
|
114 |
In []: close() |
|
115 |
||
116 |
close() now closes the figure(2). |
|
117 |
In []: close() |
|
118 |
||
119 |
The plot command takes the following optional parameters such as 'r' which generates the plot in red color. |
|
120 |
Use up arrow key to get till this command |
|
121 |
In []: plot(x, cos(x), 'r') and add argument. |
|
122 |
||
123 |
# For other color options you may check out 'plot?' |
|
124 |
||
125 |
In []: clf() |
|
126 |
||
127 |
Passing the linewidth=2 option to plot, generates the plot with linewidth of two units. |
|
128 |
In []: plot(x, sin(x), 'g', linewidth=2) |
|
129 |
||
130 |
In []: clf() |
|
131 |
||
132 |
In order to plot points in black color you can pass 'k.' parameter to plot |
|
133 |
In []: plot(x, , 'k.') |
|
134 |
||
135 |
In []: clf() |
|
136 |
||
137 |
A plot using dashed lines can be generated by passing the '--' parameter |
|
138 |
In []: plot(x, y, '--') |
|
139 |
||
140 |
You may look at more options related to colors and type of lines using plot? |
|
141 |
||
142 |
In []: clf() |
|
0
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
143 |
|
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
144 |
and finally to close the plot |
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
145 |
In []: close() |
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
146 |
|
67604aed10e0
Initialization and scripts for first two sessions.
shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
147 |
**************** |
5 | 148 |
This brings us to the end of this tutorial. This tutorial is first in the series of Python for Scientific Computing Tutorials. |
149 |
**************** |