Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Session1

596 views

Published on

Published in: Education
  • Be the first to comment

  • Be the first to like this

Session1

  1. 1. Python for Science and Engg: Interactive Plotting FOSSEE Department of Aerospace Engineering IIT Bombay 12 February, 2010 Day 1, Session 1 FOSSEE (IIT Bombay) Interactive Plotting 1 / 34
  2. 2. Workshop Schedule: Day 1 Session 1 Fri 14:00–15:00 Session 2 Fri 15:05–16:05 Session 3 Fri 16:10–17:10 Quiz 1 Fri 17:10–17:25 Exercises Thu 17:30–18:00 FOSSEE (IIT Bombay) Interactive Plotting 2 / 34
  3. 3. Workshop Schedule: Day 2 Session 1 Sat 09:00–10:00 Session 2 Sat 10:05–11:05 Session 3 Sat 11:20–12:20 Quiz 2 Fri 14:25–14:40 FOSSEE (IIT Bombay) Interactive Plotting 3 / 34
  4. 4. Workshop Schedule: Day 3 Session 1 Sun 09:00–10:00 Session 2 Sun 10:05–11:05 Session 3 Sun 11:20–12:20 Quiz 3 Sun 12:20–12:30 Exercises Sun 12:30–13:00 FOSSEE (IIT Bombay) Interactive Plotting 4 / 34
  5. 5. Checklist Outline 1 Checklist 2 Starting up Ipython 3 Loops 4 Plotting Drawing plots Decoration More decoration 5 Multiple plots FOSSEE (IIT Bombay) Interactive Plotting 5 / 34
  6. 6. Checklist Checklist 1 IPython 2 Editor 3 Data files: sslc1.txt pendulum.txt points.txt pos.txt holmes.txt 4 Python scripts: sslc_allreg.py sslc_science.py 5 Images lena.png smoothing.gif FOSSEE (IIT Bombay) Interactive Plotting 6 / 34
  7. 7. Checklist About the Workshop Intended Audience Engg., Mathematics and Science teachers. Interested students from similar streams. Goal: Successful participants will be able to Use Python as plotting, computational tool. Understand how to use Python as a scripting and problem solving language. Train students for the same. FOSSEE (IIT Bombay) Interactive Plotting 7 / 34
  8. 8. Starting up Ipython Outline 1 Checklist 2 Starting up Ipython 3 Loops 4 Plotting Drawing plots Decoration More decoration 5 Multiple plots FOSSEE (IIT Bombay) Interactive Plotting 8 / 34
  9. 9. Starting up Ipython Starting up . . . $ ipython -pylab In []: print "Hello, World!" Hello, World! Exiting In []: ^D(Ctrl-D) Do you really want to exit([y]/n)? y FOSSEE (IIT Bombay) Interactive Plotting 9 / 34
  10. 10. Loops Outline 1 Checklist 2 Starting up Ipython 3 Loops 4 Plotting Drawing plots Decoration More decoration 5 Multiple plots FOSSEE (IIT Bombay) Interactive Plotting 10 / 34
  11. 11. Loops Loops Breaking out of loops In []: while True: ...: print "Hello, World!" ...: Hello, World! Hello, World!^C(Ctrl-C) ------------------------------------ KeyboardInterrupt FOSSEE (IIT Bombay) Interactive Plotting 11 / 34
  12. 12. Plotting Outline 1 Checklist 2 Starting up Ipython 3 Loops 4 Plotting Drawing plots Decoration More decoration 5 Multiple plots FOSSEE (IIT Bombay) Interactive Plotting 12 / 34
  13. 13. Plotting Drawing plots Outline 1 Checklist 2 Starting up Ipython 3 Loops 4 Plotting Drawing plots Decoration More decoration 5 Multiple plots FOSSEE (IIT Bombay) Interactive Plotting 13 / 34
  14. 14. Plotting Drawing plots First Plot In []: x = linspace(0, 2*pi, 50) In []: plot(x, sin(x)) FOSSEE (IIT Bombay) Interactive Plotting 14 / 34
  15. 15. Plotting Drawing plots Walkthrough x = linspace(start, stop, num) returns num evenly spaced points, in the interval [start, stop]. x[0] = start x[num - 1] = end plot(x, y) plots x and y using default line style and color FOSSEE (IIT Bombay) Interactive Plotting 15 / 34
  16. 16. Plotting Decoration Outline 1 Checklist 2 Starting up Ipython 3 Loops 4 Plotting Drawing plots Decoration More decoration 5 Multiple plots FOSSEE (IIT Bombay) Interactive Plotting 16 / 34
  17. 17. Plotting Decoration Adding Labels In []: xlabel(’x’) In []: ylabel(’sin(x)’) FOSSEE (IIT Bombay) Interactive Plotting 17 / 34
  18. 18. Plotting Decoration Another example In []: clf() Clears the plot area. In []: y = linspace(0, 2*pi, 50) In []: plot(y, sin(2*y)) In []: xlabel(’y’) In []: ylabel(’sin(2y)’) FOSSEE (IIT Bombay) Interactive Plotting 18 / 34
  19. 19. Plotting More decoration Outline 1 Checklist 2 Starting up Ipython 3 Loops 4 Plotting Drawing plots Decoration More decoration 5 Multiple plots FOSSEE (IIT Bombay) Interactive Plotting 19 / 34
  20. 20. Plotting More decoration Title and Legends In []: title(’Sinusoids’) In []: legend([’sin(2y)’]) FOSSEE (IIT Bombay) Interactive Plotting 20 / 34
  21. 21. Plotting More decoration Legend Placement In []: legend([’sin(2y)’], loc = ’center’) ’best’ ’right’ ’center’ FOSSEE (IIT Bombay) Interactive Plotting 21 / 34
  22. 22. Plotting More decoration Saving & Closing In []: savefig(’sin.png’) In []: close() FOSSEE (IIT Bombay) Interactive Plotting 22 / 34
  23. 23. Multiple plots Outline 1 Checklist 2 Starting up Ipython 3 Loops 4 Plotting Drawing plots Decoration More decoration 5 Multiple plots FOSSEE (IIT Bombay) Interactive Plotting 23 / 34
  24. 24. Multiple plots Overlaid Plots In []: clf() In []: plot(y, sin(y)) In []: plot(y, cos(y)) In []: xlabel(’y’) In []: ylabel(’f(y)’) In []: legend([’sin(y)’, ’cos(y)’]) By default plots would be overlaid! FOSSEE (IIT Bombay) Interactive Plotting 24 / 34
  25. 25. Multiple plots Plotting separate figures In []: clf() In []: figure(1) In []: plot(y, sin(y)) In []: figure(2) In []: plot(y, cos(y)) In []: savefig(’cosine.png’) In []: figure(1) In []: title(’sin(y)’) In []: savefig(’sine.png’) In []: close() In []: close() FOSSEE (IIT Bombay) Interactive Plotting 25 / 34
  26. 26. Multiple plots Showing it better In []: plot(y, cos(y), ’r’) In []: clf() In []: plot(y, sin(y), ’g’, linewidth=2) FOSSEE (IIT Bombay) Interactive Plotting 26 / 34
  27. 27. Multiple plots Annotating In []: annotate(’local max’, xy=(1.5, 1)) FOSSEE (IIT Bombay) Interactive Plotting 27 / 34
  28. 28. Multiple plots Axes lengths Get the axes limits In []: xmin, xmax = xlim() In []: ymin, ymax = ylim() Set the axes limits In []: xlim(xmin, 2*pi) In []: ylim(ymin-0.2, ymax+0.2) FOSSEE (IIT Bombay) Interactive Plotting 28 / 34
  29. 29. Multiple plots Review Problem 1 Plot x, -x, sin(x), xsin(x) in range −5π to 5π 2 Add a legend 3 Annotate the origin 4 Set axes limits to the range of x FOSSEE (IIT Bombay) Interactive Plotting 29 / 34
  30. 30. Multiple plots Review Problem . . . Plotting . . . In []: x=linspace(-5*pi, 5*pi, 500) In []: plot(x, x, ’b’) In []: plot(x, -x, ’b’) In []: plot(x, sin(x), ’g’, linewidth=2) In []: plot(x, x*sin(x), ’r’, linewidth=3) . . . FOSSEE (IIT Bombay) Interactive Plotting 30 / 34
  31. 31. Multiple plots Review Problem . . . Legend & Annotation. . . In []: legend([’x’, ’-x’, ’sin(x)’, ’xsin(x)’]) In []: annotate(’origin’, xy = (0, 0)) Setting Axes limits. . . In []: xlim(-5*pi, 5*pi) In []: ylim(-5*pi, 5*pi) FOSSEE (IIT Bombay) Interactive Plotting 31 / 34
  32. 32. Multiple plots Saving Commands Save commands of review problem into file Use %hist command of IPython Identify the required line numbers Then, use %save command of IPython In []: %hist In []: %save four_plot.py 16 18-27 Careful about errors! %hist will contain the errors as well, so be careful while selecting line numbers. FOSSEE (IIT Bombay) Interactive Plotting 32 / 34
  33. 33. Multiple plots Python Scripts. . . This is called a Python Script. run the script in IPython using %run -i four_plot.py FOSSEE (IIT Bombay) Interactive Plotting 33 / 34
  34. 34. Multiple plots What did we learn? Starting up IPython %hist - History of commands %save - Saving commands Running a script using %run -i Creating simple plots. Adding labels and legends. Annotating plots. Changing the looks: size, linewidth FOSSEE (IIT Bombay) Interactive Plotting 34 / 34

×