def drawStepByStep(cls, methods, nSteps, nmethods, pdf, stepByStep): fig = 1 ncols = nSteps + 1 # steps + baseline nlines = nmethods for name, method in methods.iteritems(): # draw baseline bl = stepByStep[name]["baseline"] for pair in method["pairs"]: val = zip(*bl[pair.getPair()]) Graph.subplot(nlines, ncols, fig) Graph.errorbar( val[0], val[1], yerr=val[2], fmt=".", color=Graph.getColor(pair.getPair()), label="%s,%s" % pair.getPair(), ) Graph.hold = True Graph.decorate( g_xlabel="Time (s)", g_ylabel="RTT time", g_title="Measures for %s, baseline" % name, g_grid=True ) Graph.legend(loc=2) dfig = 1 k = sorted(stepByStep[name].keys()) k.remove("baseline") for step in k: Graph.subplot(nlines, ncols, fig + dfig) for pair in method["pairs"]: val = zip(*stepByStep[name][step][pair.getPair()]) Graph.errorbar( val[0], val[1], yerr=val[2], fmt=".", color=Graph.getColor(pair.getPair()), label="%s,%s" % pair.getPair(), ) Graph.hold = True Graph.axhline(2 * step, color=Graph.getColor(step)) Graph.decorate( g_xlabel="Time (s)", g_ylabel="RTT time", g_title="Measures for %s, step 2x%sms" % (name, step), g_grid=True, ) Graph.legend(loc=2) dfig += 1 fig += ncols fig = Graph.gcf() fig.set_size_inches(50, 25) pdf.savefig(bbox_inches="tight") #'checks/delay.pdf', format = 'pdf', ) Graph.close()
def drawStepByStep(cls, methods, nSteps, nmethods, pdf, stepByStep): fig = 1 ncols = nSteps + 1 # steps + baseline nlines = nmethods for name, method in methods.iteritems(): # draw baseline bl = stepByStep[name]['baseline'] for pair in method['pairs']: val = zip(*bl[pair.getPair()]) Graph.subplot(nlines, ncols, fig) Graph.errorbar(val[0], val[1], yerr=val[2], fmt='.', color=Graph.getColor(pair.getPair()), label="%s,%s" % pair.getPair()) Graph.hold = True Graph.decorate(g_xlabel='Time (s)', g_ylabel='RTT time', g_title='Measures for %s, baseline' % name, g_grid=True) Graph.legend(loc=2) dfig = 1 k = sorted(stepByStep[name].keys()) k.remove('baseline') for step in k: Graph.subplot(nlines, ncols, fig + dfig) for pair in method["pairs"]: val = zip(*stepByStep[name][step][pair.getPair()]) Graph.errorbar(val[0], val[1], yerr=val[2], fmt='.', color=Graph.getColor(pair.getPair()), label="%s,%s" % pair.getPair()) Graph.hold = True Graph.axhline(2 * step, color=Graph.getColor(step)) Graph.decorate(g_xlabel='Time (s)', g_ylabel='RTT time', g_title='Measures for %s, step 2x%sms' % (name, step), g_grid=True) Graph.legend(loc=2) dfig += 1 fig += ncols fig = Graph.gcf() fig.set_size_inches(50, 25) pdf.savefig( bbox_inches='tight') #'checks/delay.pdf', format = 'pdf', ) Graph.close()
def drawBoxPlots(cls, mboxes, methods, nmethods, pdf): bl = mboxes.pop("baseline") blm = mboxes.pop("baselineMeasures") mets = sorted(methods.keys()) for outliers in ("^", ""): nstep = 1 # compare methods to each other ncols = nmethods + 2 Graph.clf() Graph.subplot(1, ncols, nstep) d = 1.0 / (2 * len(bl)) # make sure we iterate with the same order over methods for pair, data in bl.iteritems(): vals = [[], []] for me in mets: vals[0].append(data[me][0]) vals[1].append(data[me][1]) Graph.errorbar( [d + i for i in range(1, len(mets) + 1)], vals[0], yerr=vals[1], fmt=".", color=Graph.getColor(pair), label="%s,%s" % pair, ) Graph.hold = True d += 1.0 / len(bl) for l in range(1, len(mets) + 1): Graph.axvspan( l, l + 1, facecolor=Graph.getColor(mets[l - 1]), alpha=0.1, hold=True ) # , linestyle = '--') Graph.legend(loc=2) Graph.xticks(rotation=50) Graph.decorate( g_xtickslab=[""] + mets, g_xticks=[0.5 + i for i in range(0, len(methods) + 1)], g_grid=True, g_xlabel="Measurement method", g_ylabel="Measured delays with stddev (ms)", g_title="Baseline for all methods", ) nstep += 1 Graph.subplot(1, ncols, nstep) Graph.boxplot([blm[met] for met in mets], sym=outliers) Graph.xticks(rotation=50) Graph.decorate( g_xtickslab=mets, g_grid=True, g_xlabel="Measurement method", g_ylabel="Measured baseline (ms)", g_title="Measures for baseline", ) nstep += 1 for step in sorted(mboxes.keys()): m_datas = mboxes[step] Graph.subplot(1, ncols, nstep) Graph.xticks(rotation=50) Graph.boxplot([m_datas[met] for met in mets], sym=outliers) Graph.axhline(2 * step, color="r") Graph.decorate( g_xtickslab=mets, g_grid=True, g_xlabel="Measurement method", g_ylabel="Measured delays - baseline (ms)", g_title="Measures for step 2x%sms" % step, ) nstep += 1 fig = Graph.gcf() fig.set_size_inches(28, 8) pdf.savefig(bbox_inches="tight") #'checks/boxdelay.pdf', format = 'pdf', ) Graph.close()
def drawBoxPlots(cls, mboxes, methods, nmethods, pdf): bl = mboxes.pop('baseline') blm = mboxes.pop('baselineMeasures') mets = sorted(methods.keys()) for outliers in ('^', ''): nstep = 1 #compare methods to each other ncols = nmethods + 2 Graph.clf() Graph.subplot(1, ncols, nstep) d = 1.0 / (2 * len(bl)) # make sure we iterate with the same order over methods for pair, data in bl.iteritems(): vals = [[], []] for me in mets: vals[0].append(data[me][0]) vals[1].append(data[me][1]) Graph.errorbar([d + i for i in range(1, len(mets) + 1)], vals[0], yerr=vals[1], fmt='.', color=Graph.getColor(pair), label='%s,%s' % pair) Graph.hold = True d += 1.0 / len(bl) for l in range(1, len(mets) + 1): Graph.axvspan(l, l + 1, facecolor=Graph.getColor(mets[l - 1]), alpha=0.1, hold=True) #, linestyle = '--') Graph.legend(loc=2) Graph.xticks(rotation=50) Graph.decorate( g_xtickslab=[ '', ] + mets, g_xticks=[0.5 + i for i in range(0, len(methods) + 1)], g_grid=True, g_xlabel='Measurement method', g_ylabel='Measured delays with stddev (ms)', g_title='Baseline for all methods') nstep += 1 Graph.subplot(1, ncols, nstep) Graph.boxplot([blm[met] for met in mets], sym=outliers) Graph.xticks(rotation=50) Graph.decorate(g_xtickslab=mets, g_grid=True, g_xlabel='Measurement method', g_ylabel='Measured baseline (ms)', g_title='Measures for baseline') nstep += 1 for step in sorted(mboxes.keys()): m_datas = mboxes[step] Graph.subplot(1, ncols, nstep) Graph.xticks(rotation=50) Graph.boxplot([m_datas[met] for met in mets], sym=outliers) Graph.axhline(2 * step, color='r') Graph.decorate(g_xtickslab=mets, g_grid=True, g_xlabel='Measurement method', g_ylabel='Measured delays - baseline (ms)', g_title='Measures for step 2x%sms' % step) nstep += 1 fig = Graph.gcf() fig.set_size_inches(28, 8) pdf.savefig( bbox_inches='tight') #'checks/boxdelay.pdf', format = 'pdf', ) Graph.close()