#!/usr/bin/env python ################################################################################ # PlotFile.py Signal plotter # T.Barnaby, BEAM Ltd, 2006-02-10 ################################################################################ # import sys import getopt import math import Gnuplot import array def sigFileReadAscii(fileName, numSamples): d = Numeric.zeros(numSamples, Numeric.Float32); f = open(fileName); for i in range(0, numSamples): l = f.readline(); if(l == ""): break; d[i] = float(l); return d[0:i]; def sigFileRead(fileName, numSamples): f = open(fileName, "r"); s = os.fstat(f.fileno()); if(numSamples > (s.st_size / (24 * 4))): numSamples = s.st_size / (24 * 4); d = array.array("f"); d.fromfile(f, 24 * numSamples); sig24 = Numeric.zeros((24, numSamples), Numeric.Float32); for i in range(0, numSamples): for c in range(0, 24): sig24[c][i] = d[i * 24 + c]; return sig24; def plotSig1(fileName, toFile=""): g = Gnuplot.Gnuplot(); g('set multiplot'); g('set format x ""'); g('set lmargin 8'); g('set bmargin 0'); g('set tmargin 1'); g('set grid noytics xtics'); g('set data style lines'); # g('set size 1.0,1.0'); g('set data style lines'); g('set grid'); g('set mouse'); if(toFile != ""): g('set term png'); g("set output '" + toFile + "'"); d1 = Gnuplot.Data(sig); g('set xlabel "Sample"'); if(sigRange != ""): g('set xrange [' + sigRange + ']'); g.plot(d1); if(toFile == ""): raw_input('Please press return to continue...\n'); def plotSig(fileName, toFile=""): g = Gnuplot.Gnuplot(); g('set multiplot'); g('set format x ""'); g('set lmargin 8'); g('set bmargin 0'); g('set tmargin 1'); g('set grid noytics xtics'); g('set data style lines'); g.plot("diag_injection_0g.txt"); if(toFile == ""): raw_input('Please press return to continue...\n'); def usage(): print "Usage: filePlot.py [ -p <file> ] <signal file>"; print " -p <file> - Create graphics file (.png)" def main(): toFile = ""; try: opts, args = getopt.getopt(sys.argv[1:], "p:"); except getopt.GetoptError: # print help information and exit: usage(); sys.exit(1); for o in opts: if(o[0] == "-p"): toFile = o[1]; else: usage(); if(len(args) != 1): usage(); sys.exit(1); plotSig(args[0]); sys.exit(0); if __name__ == "__main__": main();