# HG changeset patch # User Madhusudan.C.S # Date 1284727625 -19800 # Node ID 53df732199a15d760aa379486955ce3621cec1b3 # Parent 1709bdcea9d1ca8e5e2d21036019d8653aff9e28 Completed multiple plots script and for review with reviewers names. diff -r 1709bdcea9d1 -r 53df732199a1 multiple-plots.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/multiple-plots.rst Fri Sep 17 18:17:05 2010 +0530 @@ -0,0 +1,198 @@ +Hello friends. Welcome to this spoken tutorial on Multiple plots. + +{{{ Show the slide containing the title }}} + +{{{ Show the slide containing the outline }}} + +In this tutorial, we will learn how to draw more than one plot, how to +add legends to each plot to indicate what each plot represents. We +will also learn how to switch between the plots and creating multiple +plots with different regular axes which are also called as subplots. + +{{{ Shift to terminal and start ipython -pylab }}} + +To begin with let us start ipython with pylab, by typing:: + + ipython -pylab + +on the terminal + +Let us first create set of points for our plot. For this we will use +the command called linspace:: + + x = linspace(0, 50, 10) + +linspace command creates 10 points in the interval between 0 and 50 +both inclusive. We assign these values to a variable called x. + +Now let us draw a plot simple sine plot using these points:: + + plot(x, sin(x)) + +This should give us a nice sine plot. + +{{{ Switch to the plot window }}} + +Oh! wait! Is that a nice sine plot? Does a sine plot actually look +like that? We know that a sine plot is a smooth curve is it not? What +really caused this? + +{{{ pause for a while }}} + +A small investigation on linspace tells us that we chose too few +points in a large interval between 0 and 50 for the curve to be +smooth. So now let us use linspace again to get 500 points between 0 +and 100 and draw the sine plot + +{{{ Switch to ipython andtype }}} :: + + y = linspace(0, 50, 500) + plot(y, sin(y)) + +{{{ Change to the plot window }}} + +Now we see what we remember as a sine plot. A smooth curve. If we +carefully notice we also have two plots now one overlaid upon +another. In pylab, by default all the plots are overlaid. + +We now know how to draw multiple plots but we would like to have more +control over it. Like switch between them, perform some operations or +labelling on them individually and so on. Let us see how to accomplish +this. Before we move on, let us clear our screen. + +{{{ Switch to ipython }}}:: + + clf() + +To accomplishing more control over individual plots we use the figure +command:: + + x = linspace(0, 50, 500) + figure(1) + plot(x, sin(x), 'b') + figure(2) + plot(x, cos(x), 'g') + +{{{ Switch to plot window }}} + +Now we have two plots, a sine plot and a cosine plot one overlaid upon +the other. + +{{{ Have both plot window and ipython side by side }}} + +The figure command takes an integer as an argument which is the serial +number of the plot. This selects the corresponding plot. All the plot +commands we run after this are applied to the selected plot. In this +example figure 1 is the sine plot and figure 2 is the cosine plot. We +can, for example, save each plot separately + +{{{ Switch to ipython }}}:: + + savefig('/home/user/cosine.png') + figure(1) + title('sin(y)') + savefig('/home/user/sine.png') + +{{{ Have both plot window and ipython side by side }}} + +We also titled the our first plot as 'sin(y)' which we did not do for +the second plot. + +Since we have two plots now overlaid upon each other we would like to +have a way to indicate what each plot represents to distinguish +between them. This is accomplished using legends. Equivalently, the +legend command does this for us + +{{{ Switch to ipython }}}:: + + legend(['sin(x)', 'cos(x)']) + +The legend command takes a single list of parameters where each +parameter is the text indicating the plots in the order of their +serial number. + +{{{ Switch to plot window }}} + +Now we can see the legends being displayed for the respective sine and +cosine plots on the plot area. + +At times we run into situations where we want to compare two plots and +in such cases we want to draw both the plots in the same plotting +area. The situation is such that the two plots have different regular +axes which means we cannot draw overlaid plots. In such cases we can +draw subplots. + +We use subplot command to accomplish this + +{{{ Switch to ipython }}}:: + + subplot(2, 1, 1) + +subplot command takes three arguments, the first being the number of +rows of subplots that must be created, + +{{{ Have both plot window and ipython side by side }}} + +in this case we have 2 so it spilts the plotting area horizontally for +two subplots. The second argument specifies the number of coloumns of +subplots that must be created. We passed 1 as the argument so the +plotting area won't be split horizontally and the last argument +specifies what subplot must be created now in the order of the serial +number. In this case we passed 1 as the argument, so the first subplot +that is top half is created. If we execute the subplot command as + +{{{ Switch to ipython }}}:: + + subplot(2, 1, 2) + +{{{ Switch to plot window }}} + +The lower subplot is created. Now we can draw plots in each of the +subplot area using the plot command. + +{{{ Switch to ipython }}}:: + + x = linspace(0, 50, 500) + plot(x, cos(x)) + subplot(2, 1, 1) + y = linspace(0, 5, 100) + plot(y, y ** 2) + +{{{ Have both plot window and ipython side by side }}} + +This created two plots one in each of the subplot area. The top +subplot holds a parabola and the bottom subplot holds a cosine +curve. + +As seen here we can use subplot command to switch between the subplot +as well, but we have to use the same arguments as we used to create +that subplot, otherwise the previous subplot at that place will be +automatically erased. It is clear from the two subplots that both have +different regular axes. For the cosine plot x-axis varies from 0 to +100 and y-axis varies from 0 to 1 where as for the parabolic plot the +x-axis varies from 0 to 10 and y-axis varies from 0 to 100 + +{{{ Show summary slide }}} + +This brings us to the end of another session. In this tutorial session +we learnt + + * How to draw multiple plots which are overlaid + * the figure command + * how to switch between the plots and perform some operations on each + of them like saving the plots + * the legend command and + * creating and switching between subplots + +{{{ Show the "sponsored by FOSSEE" slide }}} + +This tutorial was created as a part of FOSSEE project, NME ICT, MHRD India + +Hope you have enjoyed and found it useful. +Thankyou + +.. Author : Madhu + Internal Reviewer 1 : [potential reviewer: Puneeth] + Internal Reviewer 2 : [potential reviewer: Nishanth] + External Reviewer : +