SlideShare une entreprise Scribd logo
1  sur  38
Python plotting for lab folk
Only the stuff you need to know to
 make publishable figures of your
  data. For all else: ask Sourish
Overview
•   Introductory stuff
•   A simple time series plot
•   Plots with multiple panes and axes
•   A Keeling plot
•   Scatterplots and maps
•   Functions, modules and classes
What is Python?
• Python is an general-purpose high-level programming
  language
• Many, many things are done with Python
• There are many libraries available with modules for
  specialized tasks. Like for scientific data plotting...

A general tutorial to Python is available on
http://docs.python.org/tutorial/. Very useful!
This one also seems useful:
http://www.openbookproject.net/thinkcs/python/english
2e/
Packages for plotting data
• Matplotlib: for plotting                (
  http://matplotlib.sourceforge.net/, you’ll
  need this webpage often... )
• Numpy: for scientific computing
  (http://www.scipy.org/Tentative_NumPy_Tuto
  rial )

These libraries/packages are combined in the
pylab package.
Starting up
I usually open a terminal, and give the command
“ipython –pylab”. Then this appears:




  This may work slightly differently on your computer.
Starting up
Now I can give commands, or run some script
that I have on my computer somewhere.
Scripts
Scripts are text files with extension ‘.py’ that
contain Python commands. You can edit them in
Komodo or any other text editor that you find
convenient.
In principle, you could build your figure by
typing all your commands in the terminal, but
that is really tedious...
So from now on, I’ll assume that you want a
script that draws your figure.
Overview
•   Introductory stuff
•   A simple time series plot
•   Plots with multiple panes
•   A Keeling plot
•   Scatterplots and maps
•   Functions, modules and classes
A simple time series plot
In Excel:
A simple timeseries plot (step 1)
Save your data in a “clean” Windows Comma Separated
Value (.csv) file (other text formats are also
possible, but this usually works best).
A simple timeseries plot (step 2)
Start scripting! First, load the useful packages. Maybe
set some default settings for the graphics as well.




  There are different ways to import functions
A simple timeseries plot (step 3)
Read the data from the file and get them into a
tidy nested list.
                                 Object-oriented way of calling a function




    “List comprehensions”: typical for Python and essentially a
    way to write a list-creating loop very compactly
A simple timeseries plot (step 4)
Set up the figure, get the values you want to
plot in lists, and plot.




                                        For use in the legend
Formatting string: specifies blue (b)
lines (-) with square (s) markers
A simple timeseries plot (first result)
A simple timeseries plot (step 5)
Format the axes and embellish your plot with
titles, axis labels, legends, annotations. Save.
A simple timeseries plot (end result)
Errorbar plot
Suppose you want to have errorbars in your plot that are 2%
of the values. Then you can replace the plot command:




With this command that uses the errorbar function:
Errorbar plot
Overview
•   Introductory stuff
•   A simple time series plot
•   Plots with multiple panes and axes
•   A Keeling plot
•   Scatterplots and maps
•   Functions, modules and classes
Plot with two y-axes
You can make a plot with two y-axes with the twinx() command:
Plot with two y-axes
Multipane plots
The simplest way to define subplots is with the subplot() or
fig.add_subplot() commands. In the brackets should be the desired
number of rows, columns and the number of the figure.
Multipane plots
Multipane plots
The distance between the subplots is adjustable, also
to 0. The NullFormatter() can be used to remove the
axis ticklabels. Overlapping ticklabels can be removed.
Multipane plots
Multipane plots
Even more customizable subplots can be made with
add_axes(), should you want it.
Multipane plots
Overview
•   Introductory stuff
•   A simple time series plot
•   Plots with multiple panes and axes
•   A Keeling plot
•   Scatterplots and maps
•   Functions, modules and classes
A Keeling plot
Python offers more possibilities than Excel for
customized fits to data. There are
scipy.stats.linregress() and
scipy.optimize.curvefit(), but you can also write
your own routines.
I often use a home-made bivariate fit module
based on Cantrell (2008) to fit straight lines to
data with errors in x and y, like in Keeling plots.
A Keeling plot
Overview
•   Introductory stuff
•   A simple time series plot
•   Plots with multiple panes and axes
•   A Keeling plot
•   Scatterplots and maps
•   Functions, modules and classes
Scatter plots
Of all the other plot possibilities that matplotlib offers, I
find the scatter plots quite useful.
In scatter plots, marker color and/or size can depend on
a third variable.
Maps
Maps can be made with the basemap package
Scatter plots and maps
Maps can be combined with other things, like
plot(), errorbar() and scatter().
Overview
•   Introductory stuff
•   A simple time series plot
•   Plots with multiple panes and axes
•   A Keeling plot
•   Scatterplots and maps
•   Functions, modules and classes
Functions
When your script gets longer, it can be a good
idea to group some statements into functions.
“def” starts             The function needs
function definition      this argument
                                                             Optional
                                                             argument




                                                                   Body: what the
                                              Return value         function does




              Calls to the function
Modules
Function definitions can be grouped into a file
and then imported into a script (or
interactively). Such a file with definitions is
called a module.
The bivariate fit module that was imported to
the Keeling plot script is an example.
If you’re changing your module while running
your script, you may have to use the reload()
command.
Classes
Almost everything in Python is an object of some class or other.
Object classes have “methods” associated with them that can
work on those objects.
You can define your own object classes and methods.



               Method: definition of a function that can work
               on your object




                                     Another method

Contenu connexe

Tendances

Tendances (14)

Matplotlib Review 2021
Matplotlib Review 2021Matplotlib Review 2021
Matplotlib Review 2021
 
PYTHON-Chapter 4-Plotting and Data Science PyLab - MAULIK BORSANIYA
PYTHON-Chapter 4-Plotting and Data Science  PyLab - MAULIK BORSANIYAPYTHON-Chapter 4-Plotting and Data Science  PyLab - MAULIK BORSANIYA
PYTHON-Chapter 4-Plotting and Data Science PyLab - MAULIK BORSANIYA
 
Data Visualization using matplotlib
Data Visualization using matplotlibData Visualization using matplotlib
Data Visualization using matplotlib
 
NumPy/SciPy Statistics
NumPy/SciPy StatisticsNumPy/SciPy Statistics
NumPy/SciPy Statistics
 
Introduction to NumPy (PyData SV 2013)
Introduction to NumPy (PyData SV 2013)Introduction to NumPy (PyData SV 2013)
Introduction to NumPy (PyData SV 2013)
 
PyData NYC whatsnew NumPy-SciPy 2019
PyData NYC whatsnew NumPy-SciPy 2019PyData NYC whatsnew NumPy-SciPy 2019
PyData NYC whatsnew NumPy-SciPy 2019
 
Intellectual technologies
Intellectual technologiesIntellectual technologies
Intellectual technologies
 
Python 3.6 Features 20161207
Python 3.6 Features 20161207Python 3.6 Features 20161207
Python 3.6 Features 20161207
 
Basic of python for data analysis
Basic of python for data analysisBasic of python for data analysis
Basic of python for data analysis
 
Python your new best friend
Python your new best friendPython your new best friend
Python your new best friend
 
Chapter 5 - THREADING & REGULAR exp - MAULIK BORSANIYA
Chapter 5 - THREADING & REGULAR exp - MAULIK BORSANIYAChapter 5 - THREADING & REGULAR exp - MAULIK BORSANIYA
Chapter 5 - THREADING & REGULAR exp - MAULIK BORSANIYA
 
Numpy Talk at SIAM
Numpy Talk at SIAMNumpy Talk at SIAM
Numpy Talk at SIAM
 
Intro to Functions Python
Intro to Functions PythonIntro to Functions Python
Intro to Functions Python
 
Data structures
Data structuresData structures
Data structures
 

En vedette (6)

Batenburg agu 2012_11_26
Batenburg agu 2012_11_26Batenburg agu 2012_11_26
Batenburg agu 2012_11_26
 
Vlookup presentation
Vlookup presentationVlookup presentation
Vlookup presentation
 
Calculating the air-sea flux of any trace gas: transfer velocity, chemical e...
Calculating the air-sea flux of any trace gas:  transfer velocity, chemical e...Calculating the air-sea flux of any trace gas:  transfer velocity, chemical e...
Calculating the air-sea flux of any trace gas: transfer velocity, chemical e...
 
Egu2011 2599 Presentation
Egu2011 2599 PresentationEgu2011 2599 Presentation
Egu2011 2599 Presentation
 
Batenburg bbos2011
Batenburg bbos2011Batenburg bbos2011
Batenburg bbos2011
 
Batenburg caribic seeheim2011
Batenburg caribic seeheim2011Batenburg caribic seeheim2011
Batenburg caribic seeheim2011
 

Similaire à Python for lab_folk

Introduction to scala for a c programmer
Introduction to scala for a c programmerIntroduction to scala for a c programmer
Introduction to scala for a c programmer
Girish Kumar A L
 
Q-Step_WS_06112019_Data_Analysis_and_visualisation_with_Python.pptx
Q-Step_WS_06112019_Data_Analysis_and_visualisation_with_Python.pptxQ-Step_WS_06112019_Data_Analysis_and_visualisation_with_Python.pptx
Q-Step_WS_06112019_Data_Analysis_and_visualisation_with_Python.pptx
kalai75
 

Similaire à Python for lab_folk (20)

CPP homework help
CPP homework helpCPP homework help
CPP homework help
 
Lecture 01 variables scripts and operations
Lecture 01   variables scripts and operationsLecture 01   variables scripts and operations
Lecture 01 variables scripts and operations
 
Programming with Python - Week 3
Programming with Python - Week 3Programming with Python - Week 3
Programming with Python - Week 3
 
pythontraining-201jn026043638.pptx
pythontraining-201jn026043638.pptxpythontraining-201jn026043638.pptx
pythontraining-201jn026043638.pptx
 
A full Machine learning pipeline in Scikit-learn vs in scala-Spark: pros and ...
A full Machine learning pipeline in Scikit-learn vs in scala-Spark: pros and ...A full Machine learning pipeline in Scikit-learn vs in scala-Spark: pros and ...
A full Machine learning pipeline in Scikit-learn vs in scala-Spark: pros and ...
 
Python training
Python trainingPython training
Python training
 
Gráficas en python
Gráficas en python Gráficas en python
Gráficas en python
 
Introduction to Python for Plone developers
Introduction to Python for Plone developersIntroduction to Python for Plone developers
Introduction to Python for Plone developers
 
Objective-C for iOS Application Development
Objective-C for iOS Application DevelopmentObjective-C for iOS Application Development
Objective-C for iOS Application Development
 
C++ Introduction brown bag
C++ Introduction brown bagC++ Introduction brown bag
C++ Introduction brown bag
 
Python
PythonPython
Python
 
Introduction to scala for a c programmer
Introduction to scala for a c programmerIntroduction to scala for a c programmer
Introduction to scala for a c programmer
 
MATLAB & Image Processing
MATLAB & Image ProcessingMATLAB & Image Processing
MATLAB & Image Processing
 
Python library
Python libraryPython library
Python library
 
Functional Python Webinar from October 22nd, 2014
Functional Python Webinar from October 22nd, 2014Functional Python Webinar from October 22nd, 2014
Functional Python Webinar from October 22nd, 2014
 
Q-Step_WS_06112019_Data_Analysis_and_visualisation_with_Python.pptx
Q-Step_WS_06112019_Data_Analysis_and_visualisation_with_Python.pptxQ-Step_WS_06112019_Data_Analysis_and_visualisation_with_Python.pptx
Q-Step_WS_06112019_Data_Analysis_and_visualisation_with_Python.pptx
 
C Types - Extending Python
C Types - Extending PythonC Types - Extending Python
C Types - Extending Python
 
Python Tutorial Part 1
Python Tutorial Part 1Python Tutorial Part 1
Python Tutorial Part 1
 
ch 2. Python module
ch 2. Python module ch 2. Python module
ch 2. Python module
 
Python-Libraries,Numpy,Pandas,Matplotlib.pptx
Python-Libraries,Numpy,Pandas,Matplotlib.pptxPython-Libraries,Numpy,Pandas,Matplotlib.pptx
Python-Libraries,Numpy,Pandas,Matplotlib.pptx
 

Dernier

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
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
QucHHunhnh
 

Dernier (20)

HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
 
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
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
Spatium Project Simulation student brief
Spatium Project Simulation student briefSpatium Project Simulation student brief
Spatium Project Simulation student brief
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
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
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
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
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
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)
 
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
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
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
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 

Python for lab_folk

  • 1. Python plotting for lab folk Only the stuff you need to know to make publishable figures of your data. For all else: ask Sourish
  • 2. Overview • Introductory stuff • A simple time series plot • Plots with multiple panes and axes • A Keeling plot • Scatterplots and maps • Functions, modules and classes
  • 3. What is Python? • Python is an general-purpose high-level programming language • Many, many things are done with Python • There are many libraries available with modules for specialized tasks. Like for scientific data plotting... A general tutorial to Python is available on http://docs.python.org/tutorial/. Very useful! This one also seems useful: http://www.openbookproject.net/thinkcs/python/english 2e/
  • 4. Packages for plotting data • Matplotlib: for plotting ( http://matplotlib.sourceforge.net/, you’ll need this webpage often... ) • Numpy: for scientific computing (http://www.scipy.org/Tentative_NumPy_Tuto rial ) These libraries/packages are combined in the pylab package.
  • 5. Starting up I usually open a terminal, and give the command “ipython –pylab”. Then this appears: This may work slightly differently on your computer.
  • 6. Starting up Now I can give commands, or run some script that I have on my computer somewhere.
  • 7. Scripts Scripts are text files with extension ‘.py’ that contain Python commands. You can edit them in Komodo or any other text editor that you find convenient. In principle, you could build your figure by typing all your commands in the terminal, but that is really tedious... So from now on, I’ll assume that you want a script that draws your figure.
  • 8. Overview • Introductory stuff • A simple time series plot • Plots with multiple panes • A Keeling plot • Scatterplots and maps • Functions, modules and classes
  • 9. A simple time series plot In Excel:
  • 10. A simple timeseries plot (step 1) Save your data in a “clean” Windows Comma Separated Value (.csv) file (other text formats are also possible, but this usually works best).
  • 11. A simple timeseries plot (step 2) Start scripting! First, load the useful packages. Maybe set some default settings for the graphics as well. There are different ways to import functions
  • 12. A simple timeseries plot (step 3) Read the data from the file and get them into a tidy nested list. Object-oriented way of calling a function “List comprehensions”: typical for Python and essentially a way to write a list-creating loop very compactly
  • 13. A simple timeseries plot (step 4) Set up the figure, get the values you want to plot in lists, and plot. For use in the legend Formatting string: specifies blue (b) lines (-) with square (s) markers
  • 14. A simple timeseries plot (first result)
  • 15. A simple timeseries plot (step 5) Format the axes and embellish your plot with titles, axis labels, legends, annotations. Save.
  • 16. A simple timeseries plot (end result)
  • 17. Errorbar plot Suppose you want to have errorbars in your plot that are 2% of the values. Then you can replace the plot command: With this command that uses the errorbar function:
  • 19. Overview • Introductory stuff • A simple time series plot • Plots with multiple panes and axes • A Keeling plot • Scatterplots and maps • Functions, modules and classes
  • 20. Plot with two y-axes You can make a plot with two y-axes with the twinx() command:
  • 21. Plot with two y-axes
  • 22. Multipane plots The simplest way to define subplots is with the subplot() or fig.add_subplot() commands. In the brackets should be the desired number of rows, columns and the number of the figure.
  • 24. Multipane plots The distance between the subplots is adjustable, also to 0. The NullFormatter() can be used to remove the axis ticklabels. Overlapping ticklabels can be removed.
  • 26. Multipane plots Even more customizable subplots can be made with add_axes(), should you want it.
  • 28. Overview • Introductory stuff • A simple time series plot • Plots with multiple panes and axes • A Keeling plot • Scatterplots and maps • Functions, modules and classes
  • 29. A Keeling plot Python offers more possibilities than Excel for customized fits to data. There are scipy.stats.linregress() and scipy.optimize.curvefit(), but you can also write your own routines. I often use a home-made bivariate fit module based on Cantrell (2008) to fit straight lines to data with errors in x and y, like in Keeling plots.
  • 31. Overview • Introductory stuff • A simple time series plot • Plots with multiple panes and axes • A Keeling plot • Scatterplots and maps • Functions, modules and classes
  • 32. Scatter plots Of all the other plot possibilities that matplotlib offers, I find the scatter plots quite useful. In scatter plots, marker color and/or size can depend on a third variable.
  • 33. Maps Maps can be made with the basemap package
  • 34. Scatter plots and maps Maps can be combined with other things, like plot(), errorbar() and scatter().
  • 35. Overview • Introductory stuff • A simple time series plot • Plots with multiple panes and axes • A Keeling plot • Scatterplots and maps • Functions, modules and classes
  • 36. Functions When your script gets longer, it can be a good idea to group some statements into functions. “def” starts The function needs function definition this argument Optional argument Body: what the Return value function does Calls to the function
  • 37. Modules Function definitions can be grouped into a file and then imported into a script (or interactively). Such a file with definitions is called a module. The bivariate fit module that was imported to the Keeling plot script is an example. If you’re changing your module while running your script, you may have to use the reload() command.
  • 38. Classes Almost everything in Python is an object of some class or other. Object classes have “methods” associated with them that can work on those objects. You can define your own object classes and methods. Method: definition of a function that can work on your object Another method