erange version 4.0a dev release
[erange.git] / plotbardist.py
index 52ccbe294f0b584b07400839ab3b869ea50017f3..8b1432ecd82a65df1c3d2de4ec2b1da5a384f116 100755 (executable)
@@ -15,9 +15,10 @@ import optparse
 import matplotlib
 from pylab import *
 from math import *
+from commoncode import getConfigParser, getConfigOption, getConfigIntOption, getConfigFloatOption
 
 
-print "%prog: version 3.2"
+print "plotbardist: version 3.3"
 
 
 def main(argv=None):
@@ -26,23 +27,7 @@ def main(argv=None):
 
     usage = "usage: python %prog infile1 [infile2] [infile3] [options] outfile.png"
 
-    parser = optparse.OptionParser(usage=usage)
-    parser.add_option("--bins", type="int", dest="bins")
-    parser.add_option("--field", type="int", dest="binnedField")
-    parser.add_option("--binSize", type="float", dest="binLength")
-    parser.add_option("--doLog", type="int", dest="logBase")
-    parser.add_option("--ymax", type="int", dest="maxY")
-    parser.add_option("--xlabel", dest="xLabel")
-    parser.add_option("--ylabel", dest="yLabel")
-    parser.add_option("--binLabels", dest="binLabels", help="comma separated list")
-    parser.add_option("--title", dest="figTitle")
-    parser.add_option("--legend", dest="barsLegend", help="comma separated list")
-    parser.add_option("--xoffset", type="float", dest="pointOffset")
-    parser.add_option("--figsize", dest="figSizes", help="x,y pair")
-    parser.set_defaults(bins=10, binnedField=-1, binLength=-1, logBase=None, maxY=0,
-                        xLabel="bins", yLabel="count", binLabels=None, figTitle="",
-                        barsLegend=None, pointOffset=0., figSizes=None)
-
+    parser = makeParser(usage)
     (options, args) = parser.parse_args(argv[1:])
 
 
@@ -59,6 +44,43 @@ def main(argv=None):
                 options.figTitle, options.barsLegend, options.pointOffset, options.figSizes)
 
 
+def makeParser(usage=""):
+    parser = optparse.OptionParser(usage=usage)
+    parser.add_option("--bins", type="int", dest="bins")
+    parser.add_option("--field", type="int", dest="binnedField")
+    parser.add_option("--binSize", type="float", dest="binLength")
+    parser.add_option("--doLog", type="int", dest="logBase")
+    parser.add_option("--ymax", type="int", dest="maxY")
+    parser.add_option("--xlabel", dest="xLabel")
+    parser.add_option("--ylabel", dest="yLabel")
+    parser.add_option("--binLabels", dest="binLabels", help="comma separated list")
+    parser.add_option("--title", dest="figTitle")
+    parser.add_option("--legend", dest="barsLegend", help="comma separated list")
+    parser.add_option("--xoffset", type="float", dest="pointOffset")
+    parser.add_option("--figsize", dest="figSizes", help="x,y pair")
+
+    configParser = getConfigParser()
+    section = "plotbardist"
+    bins = getConfigIntOption(configParser, section, "bins", 10)
+    binnedField = getConfigIntOption(configParser, section, "binnedField", -1)
+    binLength = getConfigIntOption(configParser, section, "binLength", -1)
+    logBase = getConfigOption(configParser, section, "logBase", None)
+    maxY = getConfigIntOption(configParser, section, "maxY", 0)
+    xLabel = getConfigOption(configParser, section, "xLabel", "bins")
+    yLabel = getConfigOption(configParser, section, "yLabel", "count")
+    binLabels = getConfigOption(configParser, section, "binLabels", None)
+    figTitle = getConfigOption(configParser, section, "figTitle", "")
+    barsLegend = getConfigOption(configParser, section, "barsLegend", None)
+    pointOffset = getConfigFloatOption(configParser, section, "pointOffset", 0.)
+    figSizes = getConfigOption(configParser, section, "figSizes", None)
+
+    parser.set_defaults(bins=bins, binnedField=binnedField, binLength=binLength, logBase=logBase, maxY=maxY,
+                        xLabel=xLabel, yLabel=yLabel, binLabels=binLabels, figTitle=figTitle,
+                        barsLegend=barsLegend, pointOffset=pointOffset, figSizes=figSizes)
+
+    return parser
+
+
 def plotbardist(fileList, pngfilename, bins=10, binnedField=-1, binLength=-1, logBase=None,
                 maxY=0, xLabel="bins", yLabel="count", binLabels=None, figTitle="",
                 barsLegend=None, pointOffset=0., figSizes=None):