Class 16: matplotlib 2 - graphing

Introduction

This is part 2 of the matplotlib introduction. The material in classes 15 and 16 is covered in a video:

Last time - lecture 15

We had this script last time to create the x,y offsets in meters of the GPS

#!/usr/bin/env python

import pyproj
import numpy as np

def wander_list():
geod = pyproj.Geod(ellps='WGS84')
x,y,z,quality,satellites,hdop = np.loadtxt('2011-10-11.gga.dat.bz2', unpack=True)

x_ave = np.average(x)
y_ave = np.average(y)

print x_ave,y_ave

print '__name__:', __name__
if __name__ == '__main__':
wander_list()

We want to create a better script that can save the data out for reuse.

Matplotlib continued

import wander
reload wander # You have to reload after the first import to get more changes
dir, m = wander.wander_list('2011-10-11.gga.dat.bz2')

cla()
plot dir

Errr… dir runs -180 to +180. Let's make that 0..360:

dir360 = [ d if d>0 else d+360 for d in dir ]

Didn't get that last line? I'll explain it more in a video.

Fancier plotting - histograms and subplots

It would be nice to be able to make a figure with multiple plots and maybe have a histogram. Let's try making a histogram first.

cla()
hist(m)
hist(m, bins=30)
hist(m, bins=100)

Which is a reminder that you are warned that histograms are not a stable concept. How they look depends heavily on the number of bins.

Warning: matplotlib is designed to follow how matlab does plotting. That means that subplots start counting from 1, not 0. Bummer.

cla()
subplot (411)
plot(dir360)
plot(x)
subplot (412)
plot(y)
subplot (413)
plot(m)
subplot (414)
hist(m, bins=200)

Working with arrays

We can start building up capabilities

zeros(30)
ones(10)
concatonate( (zeros(100), ones(100), zeros(100) ) )

TODO Questions

• What is "interactive mode" for matplotlib?
• Switching figures
• Splitting 15 into 15 & 16

Date: <2011-10-25 Tue>

HTML generated by org-mode 7.4 in emacs 23