plotting-script.txt
changeset 37 c2634d874e33
parent 36 57ed95acb13f
equal deleted inserted replaced
36:57ed95acb13f 37:c2634d874e33
    10 As you can see the pendulum.txt file in our case is on the desktop and we are currently in the home directory. 
    10 As you can see the pendulum.txt file in our case is on the desktop and we are currently in the home directory. 
    11 So we navigate to the desktop, using cd Desktop. Now let's start IPython by typing ipython -pylab.
    11 So we navigate to the desktop, using cd Desktop. Now let's start IPython by typing ipython -pylab.
    12 
    12 
    13 First we shall look into using lists to input the data and then we shall plot it. 
    13 First we shall look into using lists to input the data and then we shall plot it. 
    14 Type
    14 Type
    15 x = 0, 1, 2.1, 3.1, 4.2, 5.2 within square brackets.
    15 x = open square bracket 0, 1, 2.1, 3.1, 4.2, 5.2 close square bracket.
    16 here x is a list. In python, list is a container that holds a number of objects in the given order. 
    16 here x is a list. In python, list is a container that holds a number of objects in the given order. 
    17 We shall look into other functions related to lists a little later. 
    17 We shall look into other functions related to lists a little later. 
    18 
    18 
    19 Now for the corresponding Y values type
    19 Now for the corresponding Y values type
    20 y = 0, 0.8, 0.9, 0, -0.9, -0.8 within square brackets.
    20 y = open square bracket 0, 0.8, 0.9, 0, -0.9, -0.8 close square bracket.
    21  
    21  
    22 Now that we have x and y in two separate lists and we plot x vs. y using
    22 Now that we have x and y in two separate lists and we plot x vs. y using
    23 plot (x, y, 'o') The o within quotes plots with filled circles. We saw the various style options in the previous tutorial.
    23 plot (x, y, 'o') The o within quotes plots with filled circles. And lo! We have our plot! 
    24 
    24 
    25 And lo! We have our plot! 
    25 
    26 [We close the plot window. ] 
    26 [We close the plot window. ] 
    27 
    27 
    28 Now, that we know how to plot data from lists, we will look at plotting data from a text file. Essentially, if we read the data from the file and fit them into lists, we can easily plot the data, just as we did previously. 
    28 Now, that we know how to plot data from lists, we will look at plotting data from a text file. Essentially, if we read the data from the file and fit them into lists, we can easily plot the data, just as we did previously. 
    29 
    29 
    30 Here we shall use the data collected from a simple pendulum experiment as an example. 
    30 Here we shall use the data collected from a simple pendulum experiment as an example. The aim of the experiment is to plot the length versus square of the time period.
    31 Let us check out what pendulum.txt contains. Type cat pendulum.txt
    31 Let us check out what pendulum.txt contains. Type cat pendulum.txt
    32 
    32 
    33 Windows users just double click on the file to open it. Please be careful not to edit the file.
    33 Windows users just double click on the file to open it. Please be careful not to edit the file.
    34 
    34 
    35 The first column is the length of the pendulum and the second column is the time. We read the file line-by-line, collect the data into lists and plot them.
    35 The first column is the length of the pendulum and the second column is the time period. We read the file line-by-line, collect the data into lists and plot them.
    36 
    36 
    37 Let's begin with initializing three empty lists for length, time-period and square of the time-period.
    37 Let's begin with initializing three empty lists for length, time-period and square of the time-period.
    38 l = []
    38 l = []
    39 t = []
    39 t = []
    40 tsq = []
    40 tsq = []
    41  
    41  
    42 Initializing an empty list is done as shown above using just a pair of square brackets without any content in them.
    42 Initializing an empty list is done as shown above using just a pair of square brackets without any content in them.
    43 
    43 
    44 Now we open the file and read it line by line. 
    44 Now we open the file and read it line by line. 
    45 for line in open('pendulum.txt'): 
    45 for line in open (within quotes the file name. )('pendulum.txt'): 
    46 
    46 
    47 The ':' at the end of the 'for' statement marks the beginning of the for block.
    47 The ':' at the end of the 'for' statement marks the beginning of the for block.
    48 'open' returns an iterable object which we traverse using the 'for' loop. In  python, 'for' iterates over items of a sequence.
    48 'open' returns an iterable object which we traverse using the 'for' loop. In  python, 'for' iterates over items of a sequence.
    49 For more details regarding the for loop refer to our tutorial on loops and data structures.
    49 For more details regarding the for loop refer to our tutorial on loops and data structures.
    50 'line' here is a string variable that contains one line of the file at a time as the 'for' loop iterates through the file.
    50 Whatever we read from a file is in the form of strings. Thus 'line' here is a string variable that contains one line of the file at a time as the 'for' loop iterates through the file.
    51 
    51 
    52 We split each line at the space using
    52 We split each line at the space using
    53      point = line.split() 
    53      point = line.split() 
    54 the split function returns a list of elements from the 'line' variable split over spaces. In this case it will have two elements, first is length and second is time. 
    54 the split function returns a list of elements from the 'line' variable split over spaces. In this case it will have two elements, first is length and second is time. point here contains 2 elements, the first one is the length and the second one is the time period
    55 
    55 
    56 Note the indentation here. Everything inside the 'for' loop has to be indented by 4 spaces.
    56 Note the indentation here. Everything inside the 'for' loop has to be indented by 4 spaces.
    57 Then we append the length and time values to the appropriate lists. Since we cannot perform mathematical operations on strings, we need to convert the strings to floats, before appending to the lists. 
    57 Then we append the length and time values to the appropriate lists. Since we cannot perform mathematical operations on strings, we need to convert the strings to floats, before appending to the lists. 
    58     l.append(float(point[0]))
    58     l.append(float(point[0]))
    59 append is a function used to append a single element to a list.
    59 append is a function used to append a single element to a list.
    60     t.append(float(point[1]))
    60     t.append(float(point[1]))
       
    61 
       
    62 That's it, now we need to exit the loop. Hit the enter key twice.
    61 
    63 
    62 Now we have the time and length values in two lists. Now to get the square of the time values, we shall write one more 'for' loop which will iterate through list 't'
    64 Now we have the time and length values in two lists. Now to get the square of the time values, we shall write one more 'for' loop which will iterate through list 't'
    63 
    65 
    64 for time in t:
    66 for time in t:
    65     tsq.append(time*time) 
    67     tsq.append(time*time) 
    68 print len(l), len(t), len(tsq)
    70 print len(l), len(t), len(tsq)
    69 
    71 
    70 Now we have verified that all three have the same dimensions. lists l and tsq have the required data. Let's now plot them, as we did earlier. 
    72 Now we have verified that all three have the same dimensions. lists l and tsq have the required data. Let's now plot them, as we did earlier. 
    71 plot(l, tsq, 'o')
    73 plot(l, tsq, 'o')
    72 
    74 
    73 So here is the required plot. 
    75 So here is the required plot. We may proceed to label the axes, title the plot and save it. 
    74 In this way, you can plot data from files.  Hope this information was helpful. Thank you.
    76 
       
    77 In this tutorial we have learnt how to create lists and append items to them. We have learnt how to process data using lists, how to open and read files and the 'for' loop.
       
    78 
       
    79 That brings us to the end of this session.
       
    80 Hope this information was helpful. Thank you.