Example #1
0
    def createEventFrequencyPlot(self, title, events, id=0):
        # Count the number of each event
        eventFrequency = Collections.DefaultDict(lambda: 0)
        for event in events:
            eventFrequency[event.name] += 1

        items = eventFrequency.items()
        items.sort(key=lambda f: -f[1])

        funcNames = [f[0] for f in items]
        funcFreq = [f[1] for f in items]

        # Create a bar charts and add a text describing the event to each bar
        pylab.figure()
        pylab.yticks([])
        pylab.ylim(len(funcNames), 0)
        rects = pylab.barh(range(len(funcNames)),
                           funcFreq,
                           color=self.primaryColor)

        for name, rect in zip(funcNames, rects):
            pylab.text(rect.get_x() + rect.get_width(),
                       rect.get_y() + rect.get_height(),
                       "  " + name,
                       fontsize=8)

        fn = os.path.join(self.path,
                          title.lower().replace(" ", "_") + "%03d.png" % id)
        pylab.savefig(fn)
        pylab.close()

        section = Report.Section(title)
        section.create(Report.Image, fn)
        return section
Example #2
0
 def testDefaultDict(self):
     d = Collections.DefaultDict(lambda: 1)
     assert d["foo"] == 1
     d["foo"] = 2
     assert d["foo"] == 2
Example #3
0
 def __init__(self, items=None):
     self.freq = Collections.DefaultDict(lambda: 0)
     if items:
         for item in items:
             self.add(item)