prewikka/master: Chart rendering fixes
[email protected] Fri, 29 Jan 2010 18:01:52 +0100 (CET)
| Newsgroups | gmane.comp.security.ids.prelude.cvs |
|---|---|
| Message-ID | <[email protected]> |
commit 78403e3f1282e73a34d0c3bb78b53ac3c8692e12 Author: Yoann Vandoorselaere <[email protected]> Date: Thu Jan 21 09:17:03 2010 +0100 Chart rendering fixes ======================================== prewikka/Chart.py | 41 +++++++++++++---------------------------- 1 files changed, 13 insertions(+), 28 deletions(-) ======================================== diff --git a/prewikka/Chart.py b/prewikka/Chart.py index 291dc89..2865585 100644 --- a/prewikka/Chart.py +++ b/prewikka/Chart.py @@ -270,37 +270,22 @@ class CairoDistributionChart(ChartCommon): fname = self._getFilename(name, expire, user, uid, gid); color = [] - idx = 0 - data = {} + data = utils.OrderedDict() total = 0 - for l, v in zip(self._labels, self._values): - total += v - data[str(l)] = v - - item_color = self.getItemColor(str(l)) - if item_color: - color.append(self.hex2rgb(item_color)) - else: - color.append(self.hex2rgb(self._color_map[idx % len(self._color_map)])) - - idx += 1 + lv = zip(self._labels, self._values) + lv.sort(lambda x, y: int(x[1] - y[1])) - other = 0 - if data: - share = 100.0 / total - - for key in data.keys(): - if data[key] * share < 1: - other += data[key] - else: - nkey = key + ", %.1f%% (%d)" % (share * data[key], data[key]) - data[nkey] = data[key] + for l, v in lv: + total += v - data.pop(key) + if total: + share = 100.0 / total - if other: - data["Other, %.1f%% (%d)" % (share * other, other)] = other + for l, v in lv: + l = str(l) + data["%s (%d, %.2f%%)" % (l, v, share * v)] = v + color.append(self.hex2rgb(self.getItemColor(l))) cairoplot.pie_plot(fname, data, self._width, self._height, gradient = True, shadow = True, colors=color) @@ -310,8 +295,7 @@ class CairoTimelineChart(TimelineChartCommon): fname = self._getFilename(name, expire, user, uid, gid); colors = [] - legend = [] - values = {} + values = utils.OrderedDict() for name in self._values.keys(): nname = name[0:min(len(name), 25)] if not values.has_key(nname): @@ -321,6 +305,7 @@ class CairoTimelineChart(TimelineChartCommon): values[nname].append(item[0]) colors.append(self.hex2rgb(self.getItemColor(name))) + cairoplot.dot_line_plot(fname, values, self._width, self._height, border=0, axis=True, grid=True, x_labels = self._labels, series_legend=True, series_colors=colors) _______________________________________________ Prelude-cvslog site list [email protected] http://lists.prelude-ids.org/mailman/listinfo/prelude-cvslog