def main(): # Get the command line arguments args = docopt(__doc__) fileNames = args['<reduce-files>'] estimatorToPlot = args['--estimator'] NDIM = int(args['--ndim']) plotType = args['--plot_type'] title = args['--title'] hval = args['--hline'] and float(args['--hline']) if args['--hline']: if args['--hlabel']: hlabel = args['--hlabel'] else: hlabel = '%s = %5.2f' % (estimatorToPlot[0], hval) if args['--legend']: varLabel = [l for l in args['--legend']] else: varLabel = [None] xLim = args['--xlim'] and [float(x) for x in args['--xlim']] yLim = args['--ylim'] and [float(y) for y in args['--ylim']] # Analyze the imput files reduce = pimchelp.ScalarReduce(fileNames, None) # Get a color scheme and marker list numColors = max(reduce.getNumVarParams(), 2) markers, colors = plotoptions.markersColors(numColors) # create a description object descrip = pimchelp.Description(NDIM) # get the plot options pOptions = plotoptions.plotOptions(plotType) # Plot each estimator for n, est in enumerate(estimatorToPlot): plt.figure(n + 1) ax = plt.subplot(111) if title: plt.title(title) # Add a possible horizontal line indicating some value if args['--hline']: plt.axhline(y=hval, color='#4d4d4d', linewidth=2.0, label=hlabel) for i in range(reduce.getNumVarParams()): lab = reduce.getVarLabel(i) if not lab or varLabel: lab = varLabel[i] pOptions['color'] = colors[i] # fill between to represent error bars if 'f' in plotType: emin = reduce.estimator(est, i) - reduce.estimatorError(est, i) emax = reduce.estimator(est, i) + reduce.estimatorError(est, i) plt.fill_between(reduce.param(), emax, emin, color=colors[i], alpha=0.2) # plot with points if 'p' in plotType: plt.plot(reduce.param(), reduce.estimator(est, i), markerfacecolor=colors[i], label=lab, **pOptions) # plot lines only if plotType == 'l': plt.plot(reduce.param(), reduce.estimator(est, i), label=lab, **pOptions) # plot errorbars elif 'e' in plotType: print pOptions eb = plt.errorbar(reduce.param(), reduce.estimator(est, i), yerr=reduce.estimatorError(est, i), label=lab) # Set the width of the cap lines # for cap in eb[1]: # cap.set_mew(2.0) plt.xlabel(descrip.paramLongName[reduce.reduceLabel], labelpad=16) plt.ylabel(descrip.estimatorLongName[est]) leg = plt.legend(frameon=False, loc='best', prop={'size': 18}) if xLim != []: plt.xlim(xLim[0], xLim[1]) if yLim != []: plt.ylim(yLim[0], yLim[1]) plt.show()
def main(): # parse the command line options args = docopt(__doc__) fileNames = args["<file>"] estimatorToPlot = args["--estimator"] NDIM = int(args["--ndim"]) plotType = args["--plot"] varLabel = args["--label"] xLim = args["--xLim"] yLim = args["--yLim"] # don't want any empty lists # if varLabel == []: # varLabel = None if xLim == []: xLim = None if yLim == []: yLim = None if len(fileNames) < 1: sys.exit("\nNeed to specify at least one scalar estimator file\n") # Analyze the imput files # reduce = pimchelp.ScalarReduce(fileNames,varLabel) reduce = pimchelp.ScalarReduce(fileNames, None) # Get a color scheme and marker list numColors = max(reduce.getNumVarParams(), 2) markers, colors = plotoptions.markersColors(numColors) # create a description object descrip = pimchelp.Description(NDIM) # get the plot options pOptions = plotoptions.plotOptions(plotType) # Plot each estimator for n, est in enumerate(estimatorToPlot): if args["--same"]: pl.figure(1) else: pl.figure(n + 1) ax = pl.subplot(111) for i in range(reduce.getNumVarParams()): if args["--same"]: lab = varLabel[n] else: lab = reduce.getVarLabel(i) pOptions["color"] = colors[i] if "p" in plotType: pl.plot(reduce.param(), reduce.estimator(est, i), markerfacecolor=colors[i], label=lab, **pOptions) if plotType == "l": pl.plot(reduce.param(), reduce.estimator(est, i), label=lab, **pOptions) elif "e" in plotType: if args["--same"]: eb = pl.errorbar( reduce.param(), reduce.estimator(est, i), yerr=reduce.estimatorError(est, i), markerfacecolor=colors[i + n], ecolor=colors[i + n], label=lab, **pOptions ) else: eb = pl.errorbar( reduce.param(), reduce.estimator(est, i), yerr=reduce.estimatorError(est, i), markerfacecolor=colors[i], ecolor=colors[i], label=lab, **pOptions ) # Set the width of the cap lines for cap in eb[1]: cap.set_mew(2.0) # pl.tight_layout() pl.xlabel(descrip.paramLongName[reduce.reduceLabel], fontsize=18) pl.ylabel(descrip.estimatorLongName[est], fontsize=18) leg = pl.legend(frameon=False, loc="best", prop={"size": 18}) if xLim != None: pl.xlim(xLim[0], xLim[1]) if yLim != None: pl.ylim(yLim[0], yLim[1]) pl.grid(True) pl.show()
def main(): # Get the command line arguments args = docopt(__doc__) fileNames = args['<reduce-files>'] estimatorToPlot = args['--estimator'] NDIM = int(args['--ndim']) plotType = args['--plot_type'] title = args['--title'] hval = args['--hline'] and float(args['--hline']) if args['--hline']: if args['--hlabel']: hlabel = args['--hlabel'] else: hlabel = '%s = %5.2f' % (estimatorToPlot[0],hval) if args['--legend']: varLabel = [l for l in args['--legend']] else: varLabel = [None] xLim = args['--xlim'] and [float(x) for x in args['--xlim']] yLim = args['--ylim'] and [float(y) for y in args['--ylim']] # Analyze the imput files reduce = pimchelp.ScalarReduce(fileNames,None) # Get a color scheme and marker list numColors = max(reduce.getNumVarParams(),2) markers,colors = plotoptions.markersColors(numColors) # create a description object descrip = pimchelp.Description(NDIM) # get the plot options pOptions = plotoptions.plotOptions(plotType) # Plot each estimator for n,est in enumerate(estimatorToPlot): plt.figure(n+1) ax = plt.subplot(111) if title: plt.title(title) # Add a possible horizontal line indicating some value if args['--hline']: plt.axhline(y=hval,color='#4d4d4d',linewidth=2.0,label=hlabel) for i in range(reduce.getNumVarParams()): lab = reduce.getVarLabel(i) if not lab or varLabel: lab = varLabel[i] pOptions['color'] = colors[i] # fill between to represent error bars if 'f' in plotType: emin = reduce.estimator(est,i)-reduce.estimatorError(est,i) emax = reduce.estimator(est,i)+reduce.estimatorError(est,i) plt.fill_between(reduce.param(), emax,emin, color=colors[i], alpha=0.2) # plot with points if 'p' in plotType: plt.plot(reduce.param(), reduce.estimator(est,i), markerfacecolor=colors[i],label=lab, **pOptions) # plot lines only if plotType == 'l': plt.plot(reduce.param(), reduce.estimator(est,i), label=lab,**pOptions) # plot errorbars elif 'e' in plotType: eb = plt.errorbar(reduce.param(), reduce.estimator(est,i), yerr=reduce.estimatorError(est,i), markerfacecolor=colors[i], ecolor=colors[i], label=lab, **pOptions) # Set the width of the cap lines # for cap in eb[1]: # cap.set_mew(2.0) plt.xlabel(descrip.paramLongName[reduce.reduceLabel],labelpad=16) plt.ylabel(descrip.estimatorLongName[est]) leg = plt.legend(frameon=False, loc='best', prop={'size':18}) if xLim != []: plt.xlim(xLim[0],xLim[1]) if yLim != []: plt.ylim(yLim[0],yLim[1]) plt.show()
def main(): # setup the argument parser parser = argparse.ArgumentParser(description='Plot a vector estimator.') parser.add_argument('fileNames', help='Reduced scalar estimator files', nargs='+') parser.add_argument('--ndim', '-d', help='Number of spatial dimensions.', type=int, default=3) parser.add_argument('--plot', '-p', help='The plot type. l = lines, p = points, \ e = errorbars', type=str, choices=['l', 'e', 'p', 'lp', 'le'], default='e') parser.add_argument('--label', '-l', help='Parameter name for labels.', type=str) parser.add_argument('--subplot', '-s', help='Dimensions of a subplot matrix.', type=int, nargs='+') parser.add_argument('--xlim', '-x', help='x-axis limits', type=float, nargs='+') parser.add_argument('--ylim', '-y', help='y-axis limits', type=float, nargs='+') parser.add_argument('--log', help='Set y-axis log scale', action='store_true') args = parser.parse_args() fileNames = args.fileNames NDIM = args.ndim varLabel = args.label plotType = args.plot subplot = args.subplot xLim = args.xlim yLim = args.ylim log = args.log if len(fileNames) < 1: parser.error("Need to specify at least one vector estimator file") # Analyze the imput files estimatorName = pimchelp.getVectorEstimatorName(fileNames[0]) print estimatorName reduce = pimchelp.VectorReduce(fileNames, estimatorName, varLabel) # Get a color scheme and marker list numColors = reduce.getNumReduceParams() markers, colors = plotoptions.markersColors(numColors) # get the plot options pOptions = plotoptions.plotOptions(plotType) # create a description object descrip = pimchelp.Description(NDIM) # Plot each estimator for varIndex in range(reduce.getNumVarParams()): pl.figure(varIndex + 1) #ax = pl.subplot(111) for reduceIndex in range(reduce.getNumReduceParams()): lab = reduce.getReduceLabel(reduceIndex) pOptions['color'] = colors[reduceIndex] if 'e' in plotType: eb = pl.errorbar(reduce.x(varIndex, reduceIndex), reduce.estimator(varIndex, reduceIndex), yerr=reduce.estimatorError( varIndex, reduceIndex), markerfacecolor=colors[reduceIndex], ecolor=colors[reduceIndex], label=lab, **pOptions) # Set the width of the cap lines for cap in eb[1]: cap.set_mew(1.0) else: pl.plot(reduce.x(varIndex, reduceIndex), reduce.estimator(varIndex, reduceIndex), label=lab, **pOptions) pl.xlabel(descrip.estimatorXLongName[estimatorName]) pl.ylabel(descrip.estimatorLongName[estimatorName]) leg = pl.legend(frameon=False, loc='best', prop={'size': 18}) # # Add a colorbar # cmap = loadgmt.getcmap('cb/div','Spectral_08') # T = reduce.param()[::2] # cb = pl.colorbar(loadgmt.getMap(cmap,T),ax=ax,ticks=T) # cb.ax.set_ylabel('Temperature',rotation=-90) if xLim != None: pl.xlim(xLim[0], xLim[1]) if yLim != None: pl.ylim(yLim[0], yLim[1]) # Set a log scale if log: ax = pl.subplot(111) ax.set_yscale('log') # Plot a possible subplot matrix if subplot != None: f, ax = pl.subplots(subplot[0], subplot[1], sharex=True, squeeze=False, sharey=True) numReduce = reduce.getNumReduceParams() for reduceIndex in range(reduce.getNumReduceParams()): id = getIndex(reduceIndex, subplot, 2) pOptions['color'] = colors[reduceIndex] lab = reduce.getReduceLabel(reduceIndex) for varIndex in range(reduce.getNumVarParams()): pOptions['marker'] = markers[varIndex] if 'e' in plotType: eb = ax[id[0], id[1]].errorbar( reduce.x(varIndex, reduceIndex), reduce.estimator(varIndex, reduceIndex), yerr=reduce.estimatorError(0, reduceIndex), markerfacecolor=colors[reduceIndex], ecolor=colors[reduceIndex], label=lab, **pOptions) # Set the width of the cap lines for cap in eb[1]: cap.set_mew(1.0) else: ax[id[0], id[1]].plot(reduce.x(varIndex, reduceIndex), reduce.estimator(varIndex, reduceIndex), label=lab, **pOptions) ax[id[0], id[1]].legend(frameon=False, loc='upper left', prop={'size': 18}) if xLim != None: ax[id[0], id[1]].set_xlim(xLim[0], xLim[1]) if yLim != None: ax[id[0], id[1]].set_ylim(yLim[0], yLim[1]) [ ax[-1, n].set_xlabel(descrip.estimatorXLongName[estimatorName]) for n in range(subplot[1]) ] [ ax[n, 0].set_ylabel(descrip.estimatorLongName[estimatorName]) for n in range(subplot[0]) ] f.subplots_adjust(hspace=0.10) f.subplots_adjust(wspace=0.10) pl.show()
def main(): # setup the argument parser parser = argparse.ArgumentParser(description='Plot a vector estimator.') parser.add_argument('fileNames', help='Reduced scalar estimator files', nargs='+') parser.add_argument('--ndim', '-d', help='Number of spatial dimensions.', type=int, default=3) parser.add_argument('--plot','-p', help='The plot type. l = lines, p = points, \ e = errorbars', type=str, choices=['l','e','p','lp','le'], default='e') parser.add_argument('--label', '-l', help='Parameter name for labels.', type=str) parser.add_argument('--subplot', '-s', help='Dimensions of a subplot matrix.', type=int, nargs='+') parser.add_argument('--xlim', '-x', help='x-axis limits', type=float, nargs='+') parser.add_argument('--ylim', '-y', help='y-axis limits', type=float, nargs='+') parser.add_argument('--log', help='Set y-axis log scale', action='store_true') args = parser.parse_args() fileNames = args.fileNames NDIM = args.ndim varLabel = args.label plotType = args.plot subplot = args.subplot xLim = args.xlim yLim = args.ylim log = args.log if len(fileNames) < 1: parser.error("Need to specify at least one vector estimator file") # Analyze the imput files estimatorName = pimchelp.getVectorEstimatorName(fileNames[0]) print estimatorName reduce = pimchelp.VectorReduce(fileNames,estimatorName,varLabel) # Get a color scheme and marker list numColors = reduce.getNumReduceParams() markers,colors = plotoptions.markersColors(numColors) # get the plot options pOptions = plotoptions.plotOptions(plotType) # create a description object descrip = pimchelp.Description(NDIM) # Plot each estimator for varIndex in range(reduce.getNumVarParams()): pl.figure(varIndex+1) #ax = pl.subplot(111) for reduceIndex in range(reduce.getNumReduceParams()): lab = reduce.getReduceLabel(reduceIndex) pOptions['color'] = colors[reduceIndex] if 'e' in plotType: eb = pl.errorbar(reduce.x(varIndex,reduceIndex), reduce.estimator(varIndex,reduceIndex), yerr=reduce.estimatorError(varIndex,reduceIndex), markerfacecolor=colors[reduceIndex], ecolor=colors[reduceIndex], label=lab, **pOptions) # Set the width of the cap lines for cap in eb[1]: cap.set_mew(1.0) else: pl.plot(reduce.x(varIndex,reduceIndex), reduce.estimator(varIndex,reduceIndex), label=lab, **pOptions) pl.xlabel(descrip.estimatorXLongName[estimatorName]) pl.ylabel(descrip.estimatorLongName[estimatorName]) leg = pl.legend(frameon=False, loc='best', prop={'size':18}) # # Add a colorbar # cmap = loadgmt.getcmap('cb/div','Spectral_08') # T = reduce.param()[::2] # cb = pl.colorbar(loadgmt.getMap(cmap,T),ax=ax,ticks=T) # cb.ax.set_ylabel('Temperature',rotation=-90) if xLim != None: pl.xlim(xLim[0],xLim[1]) if yLim != None: pl.ylim(yLim[0],yLim[1]) # Set a log scale if log: ax = pl.subplot(111) ax.set_yscale('log') # Plot a possible subplot matrix if subplot != None: f, ax = pl.subplots(subplot[0], subplot[1], sharex=True, squeeze=False, sharey=True) numReduce = reduce.getNumReduceParams() for reduceIndex in range(reduce.getNumReduceParams()): id = getIndex(reduceIndex,subplot,2) pOptions['color'] = colors[reduceIndex] lab = reduce.getReduceLabel(reduceIndex) for varIndex in range(reduce.getNumVarParams()): pOptions['marker'] = markers[varIndex] if 'e' in plotType: eb = ax[id[0],id[1]].errorbar(reduce.x(varIndex,reduceIndex), reduce.estimator(varIndex,reduceIndex), yerr=reduce.estimatorError(0,reduceIndex), markerfacecolor=colors[reduceIndex], ecolor=colors[reduceIndex], label=lab, **pOptions) # Set the width of the cap lines for cap in eb[1]: cap.set_mew(1.0) else: ax[id[0],id[1]].plot(reduce.x(varIndex,reduceIndex), reduce.estimator(varIndex,reduceIndex), label=lab, **pOptions) ax[id[0],id[1]].legend(frameon=False, loc='upper left', prop={'size':18}) if xLim != None: ax[id[0],id[1]].set_xlim(xLim[0],xLim[1]) if yLim != None: ax[id[0],id[1]].set_ylim(yLim[0],yLim[1]) [ax[-1,n].set_xlabel(descrip.estimatorXLongName[estimatorName]) for n in range(subplot[1])] [ax[n,0].set_ylabel(descrip.estimatorLongName[estimatorName]) for n in range(subplot[0])] f.subplots_adjust(hspace=0.10) f.subplots_adjust(wspace=0.10) pl.show()
def main(): # parse the command line options args = docopt(__doc__) fileNames = args['<file>'] estimatorToPlot = args['--estimator'] NDIM = int(args['--ndim']) plotType = args['--plot'] varLabel = args['--label'] xLim = args['--xLim'] yLim = args['--yLim'] # don't want any empty lists #if varLabel == []: # varLabel = None if xLim == []: xLim = None if yLim == []: yLim = None if len(fileNames) < 1: sys.exit("\nNeed to specify at least one scalar estimator file\n") # Analyze the imput files #reduce = pimchelp.ScalarReduce(fileNames,varLabel) reduce = pimchelp.ScalarReduce(fileNames, None) # Get a color scheme and marker list numColors = max(reduce.getNumVarParams(), 2) markers, colors = plotoptions.markersColors(numColors) # create a description object descrip = pimchelp.Description(NDIM) # get the plot options pOptions = plotoptions.plotOptions(plotType) # Plot each estimator for n, est in enumerate(estimatorToPlot): if args['--same']: pl.figure(1) else: pl.figure(n + 1) ax = pl.subplot(111) for i in range(reduce.getNumVarParams()): if args['--same']: lab = varLabel[n] else: lab = reduce.getVarLabel(i) pOptions['color'] = colors[i] if 'p' in plotType: pl.plot(reduce.param(), reduce.estimator(est, i), markerfacecolor=colors[i], label=lab, **pOptions) if plotType == 'l': pl.plot(reduce.param(), reduce.estimator(est, i), label=lab, **pOptions) elif 'e' in plotType: if args['--same']: eb = pl.errorbar(reduce.param(), reduce.estimator(est, i), yerr=reduce.estimatorError(est, i), markerfacecolor=colors[i + n], ecolor=colors[i + n], label=lab, **pOptions) else: eb = pl.errorbar(reduce.param(), reduce.estimator(est, i), yerr=reduce.estimatorError(est, i), markerfacecolor=colors[i], ecolor=colors[i], label=lab, **pOptions) # Set the width of the cap lines for cap in eb[1]: cap.set_mew(2.0) #pl.tight_layout() pl.xlabel(descrip.paramLongName[reduce.reduceLabel], fontsize=18) pl.ylabel(descrip.estimatorLongName[est], fontsize=18) leg = pl.legend(frameon=False, loc='best', prop={'size': 18}) if xLim != None: pl.xlim(xLim[0], xLim[1]) if yLim != None: pl.ylim(yLim[0], yLim[1]) pl.grid(True) pl.show()