Session2

613 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
613
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Session2

  1. 1. Python for Science and Engg: Plotting experimental data FOSSEE Department of Aerospace Engineering IIT Bombay 12 February, 2010 Day 1, Session 2 FOSSEE (IIT Bombay) Plotting with Python 1 / 34
  2. 2. Outline 1 Plotting Points 2 Lists 3 Simple Pendulum 4 Strings 5 Summary FOSSEE (IIT Bombay) Plotting with Python 2 / 34
  3. 3. Plotting Points Outline 1 Plotting Points 2 Lists 3 Simple Pendulum 4 Strings 5 Summary FOSSEE (IIT Bombay) Plotting with Python 3 / 34
  4. 4. Plotting Points Why would I plot f(x)? Do we plot analytical functions or experimental data? In []: x = [0, 1, 2, 3] In []: y = [7, 11, 15, 19] In []: plot(x, y) Out[]: [<matplotlib.lines.Line2D object at 0xa73a In []: xlabel(’X’) Out[]: <matplotlib.text.Text object at 0x986e9ac> In []: ylabel(’Y’) Out[]: <matplotlib.text.Text object at 0x98746ec> FOSSEE (IIT Bombay) Plotting with Python 4 / 34
  5. 5. Plotting Points Is this what you have? FOSSEE (IIT Bombay) Plotting with Python 5 / 34
  6. 6. Plotting Points Plotting points What if we want to plot the points! In []: clf() In []: plot(x, y, ’o’) Out[]: [<matplotlib.lines.Line2D object In []: clf() In []: plot(x, y, ’.’) Out[]: [<matplotlib.lines.Line2D object FOSSEE (IIT Bombay) Plotting with Python 6 / 34
  7. 7. Plotting Points FOSSEE (IIT Bombay) Plotting with Python 7 / 34
  8. 8. Plotting Points Additional Plotting Attributes ’o’ - Filled circles ’.’ - Small Dots ’-’ - Lines ’- -’ - Dashed lines FOSSEE (IIT Bombay) Plotting with Python 8 / 34
  9. 9. Lists Outline 1 Plotting Points 2 Lists 3 Simple Pendulum 4 Strings 5 Summary FOSSEE (IIT Bombay) Plotting with Python 9 / 34
  10. 10. Lists Lists: Introduction In []: x = [0, 1, 2, 3] In []: y = [7, 11, 15, 19] What are x and y? lists!! FOSSEE (IIT Bombay) Plotting with Python 10 / 34
  11. 11. Lists Lists: Initializing & accessing elements In []: mtlist = [] Empty List In []: p = [ 2, 3, 5, 7] In []: p[0]+p[1]+p[-1] Out[]: 12 FOSSEE (IIT Bombay) Plotting with Python 11 / 34
  12. 12. Lists List: Slicing Remember. . . In []: p = [ 2, 3, 5, 7] In []: p[1:3] Out[]: [3, 5] A slice In []: p[0:-1] Out[]: [2, 3, 5] In []: p[::2] Out[]: [2, 5] list[initial:final:step] FOSSEE (IIT Bombay) Plotting with Python 12 / 34
  13. 13. Lists List operations In []: b = [ 11, 13, 17] In []: c = p + b In []: c Out[]: [2, 3, 5, 7, 11, 13, 17] In []: p.append(11) In []: p Out[]: [ 2, 3, 5, 7, 11] FOSSEE (IIT Bombay) Plotting with Python 13 / 34
  14. 14. Simple Pendulum Outline 1 Plotting Points 2 Lists 3 Simple Pendulum 4 Strings 5 Summary FOSSEE (IIT Bombay) Plotting with Python 14 / 34
  15. 15. Simple Pendulum Simple Pendulum - L and T Let us look at the Simple Pendulum experiment. L T T2 0.1 0.69 0.2 0.90 0.3 1.19 0.4 1.30 0.5 1.47 0.6 1.58 0.7 1.77 0.8 1.83 0.9 1.94 LαT 2 FOSSEE (IIT Bombay) Plotting with Python 15 / 34
  16. 16. Simple Pendulum Lets use lists In []: l = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9] In []: t = [0.69, 0.90, 1.19, 1.30, 1.47, 1.58, 1.77, 1.83, 1.94] FOSSEE (IIT Bombay) Plotting with Python 16 / 34
  17. 17. Simple Pendulum Plotting L vs T 2 We must square each of the values in t How to do it? We use a for loop to iterate over t FOSSEE (IIT Bombay) Plotting with Python 17 / 34
  18. 18. Simple Pendulum Plotting L vs T 2 In []: tsq = [] In []: len(l) Out[]: 9 In []: len(t) Out[]: 9 In []: for time in t: ....: tsq.append(time*time) ....: ....: FOSSEE (IIT Bombay) Plotting with Python 18 / 34
  19. 19. Simple Pendulum How to come out of the for loop? Hitting the “ENTER” key twice returns the cursor to the previous indentation level In []: for time in t: ....: tsq.append(time*time) ....: ....: In []: print tsq, len(tsq) FOSSEE (IIT Bombay) Plotting with Python 19 / 34
  20. 20. Simple Pendulum FOSSEE (IIT Bombay) Plotting with Python 20 / 34
  21. 21. Simple Pendulum What about larger data sets? Data is usually present in a file! Lets look at the pendulum.txt file. $ cat pendulum.txt 1.0000e-01 6.9004e-01 1.1000e-01 6.9497e-01 1.2000e-01 7.4252e-01 1.3000e-01 7.5360e-01 1.4000e-01 8.3568e-01 1.5000e-01 8.6789e-01 ... Windows users: C:> type pendulum.txt FOSSEE (IIT Bombay) Plotting with Python 21 / 34
  22. 22. Simple Pendulum Reading pendulum.txt Let us generate a plot from the data file File contains L vs. T values L - Column1; T - Column2 FOSSEE (IIT Bombay) Plotting with Python 22 / 34
  23. 23. Simple Pendulum Plotting from pendulum.txt Open a new script and type the following: l = [] t = [] for line in open(’pendulum.txt’): point = line.split() l.append(float(point[0])) t.append(float(point[1])) tsq = [] for time in t: tsq.append(time*time) plot(l, tsq, ’.’) FOSSEE (IIT Bombay) Plotting with Python 23 / 34
  24. 24. Simple Pendulum Save and run Save as pendulum_plot.py. Run using %run -i pendulum_plot.py FOSSEE (IIT Bombay) Plotting with Python 24 / 34
  25. 25. Simple Pendulum FOSSEE (IIT Bombay) Plotting with Python 25 / 34
  26. 26. Simple Pendulum Reading files . . . for line in open(’pendulum.txt’): opening file ‘pendulum.txt’ reading the file line by line line is a string FOSSEE (IIT Bombay) Plotting with Python 26 / 34
  27. 27. Strings Outline 1 Plotting Points 2 Lists 3 Simple Pendulum 4 Strings 5 Summary FOSSEE (IIT Bombay) Plotting with Python 27 / 34
  28. 28. Strings Strings Anything within “quotes” is a string! ’ This is a string ’ " This too! " """ This one too! """ ’’’ And one more! ’’’ FOSSEE (IIT Bombay) Plotting with Python 28 / 34
  29. 29. Strings Strings and split() In []: greet = ’hello world’ In []: greet.split() Out[]: [’hello’, ’world’] This is what happens with line In []: line = ’1.20 7.42’ In []: point = line.split() In []: point Out[]: [’1.20’, ’7.42’] FOSSEE (IIT Bombay) Plotting with Python 29 / 34
  30. 30. Strings Getting floats from strings In []: type(point[0]) Out[]: <type ’str’> But, we need floating point numbers In []: t = float(point[0]) In []: type(t) Out[]: <type ’float’> FOSSEE (IIT Bombay) Plotting with Python 30 / 34
  31. 31. Strings Let’s review the code l = [] t = [] for line in open(’pendulum.txt’): point = line.split() l.append(float(point[0])) t.append(float(point[1])) tsq = [] for time in t: tsq.append(time*time) plot(l, tsq, ’.’) FOSSEE (IIT Bombay) Plotting with Python 31 / 34
  32. 32. Strings FOSSEE (IIT Bombay) Plotting with Python 32 / 34
  33. 33. Summary Outline 1 Plotting Points 2 Lists 3 Simple Pendulum 4 Strings 5 Summary FOSSEE (IIT Bombay) Plotting with Python 33 / 34
  34. 34. Summary What did we learn? Plotting points Plot attributes Lists for Reading files Tokenizing Strings FOSSEE (IIT Bombay) Plotting with Python 34 / 34

×