MatPlotLib Tutorial 1

From dftwiki3
Revision as of 17:57, 25 April 2011 by Thiebaut (talk | contribs) (Changing Colors and Adding Markers)
Jump to: navigation, search

--D. Thiebaut 10:27, 25 April 2011 (EDT)



MatPlotLib.png



This tutorial will introduce you to the MatPlotLib Python library for generating graphs.




Other Sources of Information

Setup

We use the Eclipse IDE and PyDev to develop Python packages. If you want to setup your environment to match the one used here you will need to install:

  1. Eclipse: http://www.eclipse.org/downloads/
  2. Python: http://www.python.org/download/
  3. PyDev: http://pydev.org/download.html
  4. EDP from Enthought: https://www.enthought.com/products/. It contains all you need to run MatPlotLib.

Default Python

  • You should make the Python version installed by EDP as the default Python interpreter for Eclipse/PyDev.
  • First open a Terminal window and type:
 which python
 /Library/Frameworks/Python.framework/Versions/Current/bin/python
  • Record the answer to the command and enter it in Eclipse's Preference window for PyDev:

EclipsePyDevDefaultPythonInterpreter.png

Testing


MatPlotLib1.png


Scatter Plot of (X, Y) points

The Simplest Approach

MatPlotLib SimplestApproach.png
  • You have an array of N Y-values, and you want to display them at X-values ranging from 0 to N-1:


def plot2():
    plt.plot([1,3,2,4])
    plt.ylabel('Intensity')
    plt.show()







Changing Colors and Adding Markers

MatPlotLib SimplestApproachColorMarkers.png


def plot3():
    plt.plot([1,3,2,4], 'ro-' )
    plt.ylabel('Intensity')
    plt.show()



To change the color, simply use a string at the last parameter of the plot() function and define the color, 'r' for red, for example, and the type of marker, 'o' for circle. 'ro' would display red circles only. 'ro-' would display red circles linked by a line. This is similar to the Matlab syntax. '--rs' would display a dash line between red squares. ':bs' would display a dotted line between blue squares.




Two list of coordinates

MatPlotLib XYListsCoords.png


def plot4():  
    x = [1, 2, 3, 4, 5, 6]
    y = [1, 2, 4, 3, 6, 5]  
    plt.plot( x, y, ':rs' )
    plt.axis( [0, 10, 0, 6])
    plt.xlabel( "X values" )
    plt.ylabel( "Y values" )
    plt.show()