fixed labels being squished together for non-stacked graphs
authorForrest Voight <forrest@forre.st>
Fri, 20 Sep 2013 06:26:42 +0000 (02:26 -0400)
committerForrest Voight <forrest@forre.st>
Fri, 20 Sep 2013 06:26:49 +0000 (02:26 -0400)
web-static/graphs.html

index 5bd8daa..572b007 100644 (file)
                         d3.max(lines, function(line) { return d3.max(line.data, itemgetter(1)); } )
                     ]).range([h - margin_v, margin_v]);
                     
+                    var y_abs = d3.scale.linear().domain([0, 1]).range([h - margin_v, margin_v]);
+                    
                     g.selectAll().data(lines).enter().append("svg:path")
                         .attr("d", function(line) {
                             return d3.svg.line()
                         .style("stroke", function(line) { return line.color })
                         .attr("class", "plotline");
                     
+                    lines.sort(function(a, b) { return get_area_mean(a.data).mean > get_area_mean(b.data).mean; });
+                    
                     for(var i = 0; i < lines.length; ++i) {
                         var line = lines[i];
                         var stats = get_area_mean(line.data);
                         if(stats.mean != null) {
+                            g.append("svg:line")
+                                .style("stroke", line.color)
+                                .attr("x1", w - margin_h + 3)
+                                .attr("y1", y(stats.mean))
+                                .attr("x2", w - margin_h + 10)
+                                .attr("y2", y_abs(i/lines.length));
                             g.append("svg:text")
                                 .text(line.label)
                                 .attr("text-anchor", "start")
                                 .attr("dominant-baseline", "central")
                                 .attr("fill", line.color)
                                 .attr("x", w - margin_h + 10)
-                                .attr("y", y(stats.mean) - 12);
+                                .attr("y", y_abs(i/lines.length) - 12);
                             g.append("svg:text")
-                                .text("-Mean: " + d3.format(".3s")(stats.mean) + unit)
+                                .text("Mean: " + d3.format(".3s")(stats.mean) + unit)
                                 .attr("text-anchor", "start")
                                 .attr("dominant-baseline", "central")
                                 .attr("fill", line.color)
-                                .attr("x", w - margin_h)
-                                .attr("y", y(stats.mean));
+                                .attr("x", w - margin_h + 10)
+                                .attr("y", y_abs(i/lines.length));
                             if(total_unit != null)
                                 g.append("svg:text")
                                     .text("Area: " + d3.format(".3s")(stats.area) + total_unit)
                                     .attr("dominant-baseline", "central")
                                     .attr("fill", line.color)
                                     .attr("x", w - margin_h + 10)
-                                    .attr("y", y(stats.mean) + 12);
+                                    .attr("y", y_abs(i/lines.length) + 12);
                         }
                     }
                 }