SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Downloaden Sie, um offline zu lesen
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
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
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
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
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
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
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
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
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
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
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
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
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
Plotting    Drawing plots


First Plot




                        In []: x = linspace(0, 2*pi, 50)
                        In []: plot(x, sin(x))




  FOSSEE (IIT Bombay)            Interactive Plotting        14 / 34
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
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
Plotting    Decoration


Adding Labels




                       In []: xlabel(’x’)

                       In []: ylabel(’sin(x)’)




 FOSSEE (IIT Bombay)    Interactive Plotting     17 / 34
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
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
Plotting    More decoration


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




 FOSSEE (IIT Bombay)   Interactive Plotting          20 / 34
Plotting    More decoration


Legend Placement

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




                                               ’best’
                                               ’right’
                                               ’center’




  FOSSEE (IIT Bombay)   Interactive Plotting              21 / 34
Plotting    More decoration


Saving & Closing



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

In []: close()




 FOSSEE (IIT Bombay)   Interactive Plotting          22 / 34
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
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
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
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
Multiple plots


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




 FOSSEE (IIT Bombay)         Interactive Plotting   27 / 34
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
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
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
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
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
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
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

Weitere ähnliche Inhalte

Was ist angesagt?

A peek on numerical programming in perl and python e christopher dyken 2005
A peek on numerical programming in perl and python  e christopher dyken  2005A peek on numerical programming in perl and python  e christopher dyken  2005
A peek on numerical programming in perl and python e christopher dyken 2005
Jules Krdenas
 

Was ist angesagt? (19)

Introduction to Iteratees (Scala)
Introduction to Iteratees (Scala)Introduction to Iteratees (Scala)
Introduction to Iteratees (Scala)
 
Introduction to NumPy (PyData SV 2013)
Introduction to NumPy (PyData SV 2013)Introduction to NumPy (PyData SV 2013)
Introduction to NumPy (PyData SV 2013)
 
Introduction to Gura Programming Language
Introduction to Gura Programming LanguageIntroduction to Gura Programming Language
Introduction to Gura Programming Language
 
NumPy/SciPy Statistics
NumPy/SciPy StatisticsNumPy/SciPy Statistics
NumPy/SciPy Statistics
 
Introduction to matplotlib
Introduction to matplotlibIntroduction to matplotlib
Introduction to matplotlib
 
Закон Деметры / Demetra's law
Закон Деметры / Demetra's lawЗакон Деметры / Demetra's law
Закон Деметры / Demetra's law
 
Intoduction to numpy
Intoduction to numpyIntoduction to numpy
Intoduction to numpy
 
A peek on numerical programming in perl and python e christopher dyken 2005
A peek on numerical programming in perl and python  e christopher dyken  2005A peek on numerical programming in perl and python  e christopher dyken  2005
A peek on numerical programming in perl and python e christopher dyken 2005
 
Numpy
NumpyNumpy
Numpy
 
Tensor board
Tensor boardTensor board
Tensor board
 
NUMPY
NUMPY NUMPY
NUMPY
 
C Programming: Pointer (Examples)
C Programming: Pointer (Examples)C Programming: Pointer (Examples)
C Programming: Pointer (Examples)
 
Deep learning for Junior Developer
Deep learning for Junior DeveloperDeep learning for Junior Developer
Deep learning for Junior Developer
 
[DevDay2019] Python Machine Learning with Jupyter Notebook - By Nguyen Huu Th...
[DevDay2019] Python Machine Learning with Jupyter Notebook - By Nguyen Huu Th...[DevDay2019] Python Machine Learning with Jupyter Notebook - By Nguyen Huu Th...
[DevDay2019] Python Machine Learning with Jupyter Notebook - By Nguyen Huu Th...
 
Python for Scientific Computing -- Ricardo Cruz
Python for Scientific Computing -- Ricardo CruzPython for Scientific Computing -- Ricardo Cruz
Python for Scientific Computing -- Ricardo Cruz
 
Shape Safety in Tensor Programming is Easy for a Theorem Prover -SBTB 2021
Shape Safety in Tensor Programming is Easy for a Theorem Prover -SBTB 2021Shape Safety in Tensor Programming is Easy for a Theorem Prover -SBTB 2021
Shape Safety in Tensor Programming is Easy for a Theorem Prover -SBTB 2021
 
Finding root of equation (numarical method)
Finding root of equation (numarical method)Finding root of equation (numarical method)
Finding root of equation (numarical method)
 
Breadth first search signed
Breadth first search signedBreadth first search signed
Breadth first search signed
 
Pythonbrasil - 2018 - Acelerando Soluções com GPU
Pythonbrasil - 2018 - Acelerando Soluções com GPUPythonbrasil - 2018 - Acelerando Soluções com GPU
Pythonbrasil - 2018 - Acelerando Soluções com GPU
 

Ähnlich wie Session1

Session2
Session2Session2
Session2
vattam
 
David M. Beazley - Advanced Python Programming (2000, O'Reilly).pdf
David M. Beazley - Advanced Python Programming (2000, O'Reilly).pdfDavid M. Beazley - Advanced Python Programming (2000, O'Reilly).pdf
David M. Beazley - Advanced Python Programming (2000, O'Reilly).pdf
phptr
 
SociaLite: High-level Query Language for Big Data Analysis
SociaLite: High-level Query Language for Big Data AnalysisSociaLite: High-level Query Language for Big Data Analysis
SociaLite: High-level Query Language for Big Data Analysis
DataWorks Summit
 
Kotlin Slides from Devoxx 2011
Kotlin Slides from Devoxx 2011Kotlin Slides from Devoxx 2011
Kotlin Slides from Devoxx 2011
Andrey Breslav
 
Lecture 5 – Computing with Numbers (Math Lib).pptx
Lecture 5 – Computing with Numbers (Math Lib).pptxLecture 5 – Computing with Numbers (Math Lib).pptx
Lecture 5 – Computing with Numbers (Math Lib).pptx
jovannyflex
 

Ähnlich wie Session1 (20)

Session2
Session2Session2
Session2
 
GoLightly: Building VM-Based Language Runtimes with Google Go
GoLightly: Building VM-Based Language Runtimes with Google GoGoLightly: Building VM-Based Language Runtimes with Google Go
GoLightly: Building VM-Based Language Runtimes with Google Go
 
Scalapeno18 - Thinking Less with Scala
Scalapeno18 - Thinking Less with ScalaScalapeno18 - Thinking Less with Scala
Scalapeno18 - Thinking Less with Scala
 
Artificial intelligence - python
Artificial intelligence - pythonArtificial intelligence - python
Artificial intelligence - python
 
PLOTCON NYC: PlotlyJS.jl: Interactive plotting in Julia
PLOTCON NYC: PlotlyJS.jl: Interactive plotting in JuliaPLOTCON NYC: PlotlyJS.jl: Interactive plotting in Julia
PLOTCON NYC: PlotlyJS.jl: Interactive plotting in Julia
 
Python于Web 2.0网站的应用 - QCon Beijing 2010
Python于Web 2.0网站的应用 - QCon Beijing 2010Python于Web 2.0网站的应用 - QCon Beijing 2010
Python于Web 2.0网站的应用 - QCon Beijing 2010
 
Advanced_Python_Programming.pdf
Advanced_Python_Programming.pdfAdvanced_Python_Programming.pdf
Advanced_Python_Programming.pdf
 
David M. Beazley - Advanced Python Programming (2000, O'Reilly).pdf
David M. Beazley - Advanced Python Programming (2000, O'Reilly).pdfDavid M. Beazley - Advanced Python Programming (2000, O'Reilly).pdf
David M. Beazley - Advanced Python Programming (2000, O'Reilly).pdf
 
Python.pdf
Python.pdfPython.pdf
Python.pdf
 
ODU ACM Python & Memento Presentation
ODU ACM Python & Memento PresentationODU ACM Python & Memento Presentation
ODU ACM Python & Memento Presentation
 
SociaLite: High-level Query Language for Big Data Analysis
SociaLite: High-level Query Language for Big Data AnalysisSociaLite: High-level Query Language for Big Data Analysis
SociaLite: High-level Query Language for Big Data Analysis
 
Kotlin @ Devoxx 2011
Kotlin @ Devoxx 2011Kotlin @ Devoxx 2011
Kotlin @ Devoxx 2011
 
Kotlin Slides from Devoxx 2011
Kotlin Slides from Devoxx 2011Kotlin Slides from Devoxx 2011
Kotlin Slides from Devoxx 2011
 
Python Puzzlers
Python PuzzlersPython Puzzlers
Python Puzzlers
 
IAT334-Lab02-ArraysPImage.pptx
IAT334-Lab02-ArraysPImage.pptxIAT334-Lab02-ArraysPImage.pptx
IAT334-Lab02-ArraysPImage.pptx
 
CS4200 2019 | Lecture 5 | Transformation by Term Rewriting
CS4200 2019 | Lecture 5 | Transformation by Term RewritingCS4200 2019 | Lecture 5 | Transformation by Term Rewriting
CS4200 2019 | Lecture 5 | Transformation by Term Rewriting
 
Python for data science by www.dmdiploma.com
Python for data science by www.dmdiploma.comPython for data science by www.dmdiploma.com
Python for data science by www.dmdiploma.com
 
Python slide
Python slidePython slide
Python slide
 
Lecture 5 – Computing with Numbers (Math Lib).pptx
Lecture 5 – Computing with Numbers (Math Lib).pptxLecture 5 – Computing with Numbers (Math Lib).pptx
Lecture 5 – Computing with Numbers (Math Lib).pptx
 
Lecture 5 – Computing with Numbers (Math Lib).pptx
Lecture 5 – Computing with Numbers (Math Lib).pptxLecture 5 – Computing with Numbers (Math Lib).pptx
Lecture 5 – Computing with Numbers (Math Lib).pptx
 

Kürzlich hochgeladen

Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
AnaAcapella
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
KarakKing
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
heathfieldcps1
 

Kürzlich hochgeladen (20)

Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
 
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxSKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxGoogle Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptx
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 

Session1

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Plotting Decoration Adding Labels In []: xlabel(’x’) In []: ylabel(’sin(x)’) FOSSEE (IIT Bombay) Interactive Plotting 17 / 34
  • 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. 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. Plotting More decoration Title and Legends In []: title(’Sinusoids’) In []: legend([’sin(2y)’]) FOSSEE (IIT Bombay) Interactive Plotting 20 / 34
  • 21. Plotting More decoration Legend Placement In []: legend([’sin(2y)’], loc = ’center’) ’best’ ’right’ ’center’ FOSSEE (IIT Bombay) Interactive Plotting 21 / 34
  • 22. Plotting More decoration Saving & Closing In []: savefig(’sin.png’) In []: close() FOSSEE (IIT Bombay) Interactive Plotting 22 / 34
  • 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. 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. 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. 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. Multiple plots Annotating In []: annotate(’local max’, xy=(1.5, 1)) FOSSEE (IIT Bombay) Interactive Plotting 27 / 34
  • 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. 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. 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. 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. 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. 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. 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