From 68a98ac8a219dbe3f5dbeee91e2027c4b1f5dacf Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Mon, 20 May 2013 23:02:28 -0400 Subject: [PATCH] ENH: sort versions and provide colors to group debian/ubuntus in popcon plot now expanded makes sense -- we have more debians --- sphinx/_static/popconchart.js | 16 +++++++++++++++- tools/nd_popcon2stats | 5 ++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/sphinx/_static/popconchart.js b/sphinx/_static/popconchart.js index 4fa7d83..0acea22 100644 --- a/sphinx/_static/popconchart.js +++ b/sphinx/_static/popconchart.js @@ -1,8 +1,22 @@ +var colors_debian = d3.scale.linear() + .domain([1.43, 1.58]).range(["white", "#dd1155"]) +var colors_ubuntu = d3.scale.linear() + .domain([1.43, 1.58]).range(["white", "#dd4814"]) + +keyColor = function(d, i) { + var version = parseFloat(d.key.substr(0, 4)) + if (d.key.indexOf("ubuntu") > 0) + return colors_ubuntu(version) + else + return colors_debian(version); +} + d3.json('/_files/nd_popconstats.json', function(data) { nv.addGraph(function() { chart = nv.models.stackedAreaChart() .x(function(d) { return d[0] }) .y(function(d) { return d[1] }) + .color(keyColor) .clipEdge(true); chart.stacked.style('stacked'); @@ -12,7 +26,7 @@ d3.json('/_files/nd_popconstats.json', function(data) { return d3.time.format('%d %b %Y')(new Date(d)) }); chart.yAxis - .tickFormat(d3.format(',.2f')); + .tickFormat(d3.format(',d')); d3.select('#popconchart') .datum(data) diff --git a/tools/nd_popcon2stats b/tools/nd_popcon2stats index 0fd57d1..488f6de 100755 --- a/tools/nd_popcon2stats +++ b/tools/nd_popcon2stats @@ -97,11 +97,14 @@ if __name__ == '__main__': popcon_[date_int] = count + popcon_.get(date_int, 0) timestamps.add(date_int) + versions = sorted([x for x in popcon_versions.keys() if not 'ubuntu' in x]) + \ + sorted([x for x in popcon_versions.keys() if 'ubuntu' in x]) + # we need to make sure that for every date we have an entry for # every version, otherwise d3 pukes because of ... d3.v2.js:expand export = [{'key': k, 'values': [[date, popcon_versions[k].get(date, 0)/coarsen_days] for date in sorted(list(timestamps))]} - for k in sorted(popcon_versions.keys())] + for k in versions] print json.dumps(export) -- 2.39.2