0
Python for Science and Engg:
           Interactive Plotting

                                FOSSEE
                     ...
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:...
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:...
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:...
Checklist


Outline

1   Checklist
2   Starting up Ipython
3   Loops
4   Plotting
       Drawing plots
       Decoration
 ...
Checklist


Checklist
 1
        IPython
 2
        Editor
 3
        Data files:
                 sslc1.txt
              ...
Checklist


About the Workshop

Intended Audience
     Engg., Mathematics and Science teachers.
     Interested students f...
Starting up Ipython


Outline

1   Checklist
2   Starting up Ipython
3   Loops
4   Plotting
       Drawing plots
       De...
Starting up Ipython


Starting up . . .


  $ ipython -pylab

  In []: print "Hello, World!"
  Hello, World!
Exiting
  In ...
Loops


Outline

1   Checklist
2   Starting up Ipython
3   Loops
4   Plotting
       Drawing plots
       Decoration
     ...
Loops


Loops

Breaking out of loops
  In []: while True:
    ...:     print "Hello, World!"
    ...:
  Hello, World!
  He...
Plotting


Outline

1   Checklist
2   Starting up Ipython
3   Loops
4   Plotting
       Drawing plots
       Decoration
  ...
Plotting    Drawing plots


Outline

1   Checklist
2   Starting up Ipython
3   Loops
4   Plotting
       Drawing plots
   ...
Plotting    Drawing plots


First Plot




                        In []: x = linspace(0, 2*pi, 50)
                      ...
Plotting    Drawing plots


Walkthrough

x = linspace(start, stop, num)
returns num evenly spaced points, in the interval
...
Plotting    Decoration


Outline

1   Checklist
2   Starting up Ipython
3   Loops
4   Plotting
       Drawing plots
      ...
Plotting    Decoration


Adding Labels




                       In []: xlabel(’x’)

                       In []: ylabel...
Plotting    Decoration


Another example


In []: clf()
Clears the plot area.

In   []:       y = linspace(0, 2*pi, 50)
In...
Plotting    More decoration


Outline

1   Checklist
2   Starting up Ipython
3   Loops
4   Plotting
       Drawing plots
 ...
Plotting    More decoration


Title and Legends
In []: title(’Sinusoids’)
In []: legend([’sin(2y)’])




 FOSSEE (IIT Bomb...
Plotting    More decoration


Legend Placement

In []: legend([’sin(2y)’], loc = ’center’)




                           ...
Plotting    More decoration


Saving & Closing



In []: savefig(’sin.png’)

In []: close()




 FOSSEE (IIT Bombay)   Int...
Multiple plots


Outline

1   Checklist
2   Starting up Ipython
3   Loops
4   Plotting
       Drawing plots
       Decorat...
Multiple plots


Overlaid Plots


In   []:       clf()
In   []:       plot(y, sin(y))
In   []:       plot(y, cos(y))
In   ...
Multiple plots


Plotting separate figures

In   []:      clf()
In   []:      figure(1)
In   []:      plot(y, sin(y))
In   ...
Multiple plots


Showing it better
In []: plot(y, cos(y), ’r’)

In []: clf()
In []: plot(y, sin(y), ’g’, linewidth=2)




...
Multiple plots


Annotating
In []: annotate(’local max’, xy=(1.5, 1))




 FOSSEE (IIT Bombay)         Interactive Plottin...
Multiple plots


Axes lengths


Get the axes limits
In []: xmin, xmax = xlim()
In []: ymin, ymax = ylim()
Set the axes lim...
Multiple plots


Review Problem
 1
        Plot x, -x, sin(x), xsin(x) in range −5π to 5π
 2
        Add a legend
 3
     ...
Multiple plots


Review Problem . . .

Plotting . . .
In    []:        x=linspace(-5*pi, 5*pi, 500)
In    []:        plot(...
Multiple plots


Review Problem . . .

Legend & Annotation. . .
In []: legend([’x’, ’-x’, ’sin(x)’,
               ’xsin(x...
Multiple plots


Saving Commands

Save commands of review problem into file
    Use %hist command of IPython
    Identify t...
Multiple plots


Python Scripts. . .



This is called a Python Script.
     run the script in IPython using
     %run -i ...
Multiple plots


What did we learn?

    Starting up IPython
    %hist - History of commands
    %save - Saving commands
 ...
Upcoming SlideShare
Loading in...5
×

Session1

489

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
489
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×