generalized desired_versions handling to data_to_lines
authorForrest Voight <forrest@forre.st>
Sat, 5 May 2012 20:49:46 +0000 (16:49 -0400)
committerForrest Voight <forrest@forre.st>
Mon, 7 May 2012 23:23:36 +0000 (19:23 -0400)
web-static/graphs.html

index 0238882..64f7c8e 100644 (file)
                 });
             }
             
+            function data_to_lines(data) {
+                var vers = {}; for(var i = 0; i < data.length; ++i) for(var v in data[i][1]) vers[v] = null;
+                var verlist = []; for(var v in vers) verlist.push(v);
+                verlist.sort();
+                
+                lines = [];
+                for(var i = 0; i < verlist.length; i++) {
+                    lines.push({
+                        data: data.map(function(d){ return [d[0], verlist[i] in d[1] ? d[1][verlist[i]] : null, d[2]] }),
+                        color: d3.hsl(i/verlist.length*360, 0.5, 0.5),
+                        label: verlist[i]
+                    });
+                }
+                function m(x) { return d3.max(x.data, function(d){ return d[1] }) }
+                lines.sort(function(a, b){ return m(a) - m(b) });
+                return lines;
+            }
+            
             function change_period(period, currency_info) {
                 d3.select("#period_current").text(period);
                 var lowerperiod = period.toLowerCase();
                 });
                 
                 d3.json("/web/graph_data/desired_versions/last_" + lowerperiod, function(data) {
-                    var vers = {}; for(var i = 0; i < data.length; ++i) for(var v in data[i][1]) vers[v] = null;
-                    var verlist = []; for(var v in vers) verlist.push(v);
-                    verlist.sort();
-                    
-                    lines = [];
-                    for(var i = 0; i < verlist.length; i++) {
-                        lines.push({
-                            data: data.map(function(d){ return [d[0], verlist[i] in d[1] ? d[1][verlist[i]] : null, d[2]] }),
-                            color: "#0000FF",
-                            label: verlist[i]
-                        });
-                    }
-                    plot(d3.select('#desired_versions'), '', null, lines);
+                    plot(d3.select('#desired_versions'), '', null, data_to_lines(data));
                 });
             }