Ejemplo n.º 1
0
    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()
Ejemplo n.º 2
0
    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()
Ejemplo n.º 3
0
    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()
Ejemplo n.º 4
0
    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()