diff --git a/noblogsmv/webapp.py b/noblogsmv/webapp.py index 1c55df1f6b60418adb736dd9b29fab5caee726e4..cf574b21039f8e5728280f0c2a7842b6db05b741 100644 --- a/noblogsmv/webapp.py +++ b/noblogsmv/webapp.py @@ -7,7 +7,7 @@ import time import urllib2 from noblogsmv import state from flask import Flask, redirect, render_template, request, g -from pygooglechart import SimpleLineChart +from pygooglechart import Axis, SimpleLineChart app = Flask(__name__) @@ -29,21 +29,29 @@ _palette = ['ffa07a', '4ce2d3', ] -def _mk_stats_graph(x=450, y=270): + +def _mk_stacked_graph(chart, valuelist): + n = len(valuelist[0]) + v0 = [0] * n + for j, values in enumerate(valuelist): + for i, v in enumerate(values): + v0[i] += v + chart.add_data(v0[:]) + chart.add_fill_range(_palette[i], j, j+1) + chart.set_colours(['000000'] + _palette[:n]) + + +def _mk_stats_graph(x=500, y=270): ts = g.sm.state_count_ts - chart = SimpleLineChart(x, y) labels = sorted(ts.keys()) - chart.set_legend(labels) + valuelist = [] for key in labels: - values = ts[key].get_values() - chart.add_data(values) - nkeys = len(labels) - chart.add_data([0] * nkeys) - chart.set_colours(_palette[:nkeys]) - #for i in xrange(nkeys - 1): - # chart.add_fill_range(_palette[i], i, i+1) + valuelist.append(ts[key].get_values()) + chart = SimpleLineChart(x, y) + _mk_stacked_graph(chart, valuelist) + chart.set_legend(labels) return chart.get_url()