Related Documentation:
Contributed By:
Dave Beeman (dbeeman@dogstar.colorado.edu)
Extended version of fplot.py. Uses Matplotlib object-oriented classes instead of Matlab-like pylab commands.
#!/usr/bin/env python
# plotVm ver 0.5 - a command line utility to plot a wildcarded argument # list of files containing membrane potential data, and plots them in # different colors on the same axes import sys, os import matplotlib.pyplot as plt import numpy as np def plot_file(file,format): print ’Plotting %s’ % file x = []; y = [] fp = open(file, ’r’) for line in fp.readlines(): data = line.split(" ") x.append(data[0]); y.append(data[1]) # print "Data length is ", len(x), "Format is ", format axes.plot(x, y, format) # use this instead, to let pyplot plot pick new colors # axes.plot(x, y) def do_plot_files(filenames): if len(filenames) > 0: formats = [’k’, ’r’, ’b’, ’g’, ’m’, ’c’] plotnum = 0 for file in filenames: # print file format = formats[plotnum % len(formats)] # print format, plotnum try: if os.path.exists(file): plot_file(file,format) plotnum = plotnum + 1 else: print ’*** Error: Incorrect file name or path specified ***’ # I need to do better error handling! except: print ’An error ocurred’ sys.exit() else: print "No files were specified for plotting!" print "Please give one or more filenames as arguments, e.g.\n" print " plotVm Vm.out pyr4*.out\n" sys.exit() if __name__ == "__main__": # Get the arguments (possibly wildcarded) into a list of filenames filenames = sys.argv[1:] print filenames # create the plot fig = plt.figure() axes = fig.add_subplot(111) do_plot_files(filenames) axes.set_title(’Membrane Potential’) axes.set_xlabel(’seconds’) axes.set_ylabel(’Volts’) axes.axis(ymin=-0.1, ymax=0.05) # to use autoscaling # axes.axis(’auto’) # to add a legend # axes.legend(filenames) plt.draw() plt.show() |