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
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
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