예제 #1
0
파일: agestats.py 프로젝트: goetzk/gramps
 def compute_stats(self, hash):
     """ Returns the statistics of a dictionary of data """
     #print "compute_stats", hash
     hashkeys = sorted(hash)
     count = sum(hash.values())
     sumval = sum(k * hash[k] for k in hash)
     minval = min(hashkeys)
     maxval = max(hashkeys)
     median = 0
     average = 0
     if count > 0:
         current = 0
         for k in hashkeys:
             if current + hash[k] > count/2:
                 median = k
                 break
             current += hash[k]
         average = sumval/float(count)
     retval = _("Statistics") + ":\n"
     retval += "  " + _("Total") + ": %d\n" % count
     retval += "  " + _("Minimum") + ": %d\n" % minval
     retval += "  " + _("Average") + glocale.format_string(": %.1f\n", average)
     retval += "  " + _("Median") + ": %d\n" % median
     retval += "  " + _("Maximum") + ": %d\n" % maxval
     return retval
예제 #2
0
파일: agestats.py 프로젝트: pat49/gramps
 def compute_stats(self, hash):
     """ Returns the statistics of a dictionary of data """
     # print "compute_stats", hash
     hashkeys = sorted(hash)
     count = sum(hash.values())
     sumval = sum(k * hash[k] for k in hash)
     minval = min(hashkeys)
     maxval = max(hashkeys)
     median = 0
     average = 0
     if count > 0:
         current = 0
         for k in hashkeys:
             if current + hash[k] > count / 2:
                 median = k
                 break
             current += hash[k]
         average = sumval / float(count)
     retval = _("Statistics") + ":\n"
     retval += "  " + _("Total") + ": %d\n" % count
     retval += "  " + _("Minimum") + ": %d\n" % minval
     retval += "  " + _("Average") + glocale.format_string(": %.1f\n", average)
     retval += "  " + _("Median") + ": %d\n" % median
     retval += "  " + _("Maximum") + ": %d\n" % maxval
     return retval
예제 #3
0
    def compute_stats(self, data):
        """
        Create a table of statistics based on a dictionary of data.
        """
        keys = sorted(data)
        count = sum(data.values())
        sumval = sum(k * data[k] for k in data)
        minval = min(keys)
        maxval = max(keys)
        median = 0
        average = 0
        if count > 0:
            current = 0
            for k in keys:
                if current + data[k] > count / 2:
                    median = k
                    break
                current += data[k]
            average = sumval / float(count)

        vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
        label = Gtk.Label(label=_("Statistics") + ":")
        label.set_halign(Gtk.Align.START)
        vbox.pack_start(label, False, False, 0)
        grid = Gtk.Grid()
        grid.set_margin_start(12)
        grid.set_column_spacing(12)
        rows = [[_("Total"), "%d" % count], [_("Minimum"),
                                             "%d" % minval],
                [_("Average"),
                 glocale.format_string("%.1f", average)],
                [_("Median"), "%d" % median], [_("Maximum"),
                                               "%d" % maxval]]
        for row, value in enumerate(rows):
            label1 = Gtk.Label(label=value[0] + ":")
            label1.set_halign(Gtk.Align.START)
            grid.attach(label1, 0, row, 1, 1)
            label2 = Gtk.Label(label=value[1])
            label2.set_halign(Gtk.Align.END)
            grid.attach(label2, 1, row, 1, 1)
        vbox.pack_start(grid, False, False, 0)
        vbox.show_all()

        return vbox