function Legend(g, // mw, // mark width mh, // mark height mp) // mark padding { mw = mw || 25; mh = mh || 25; mp = mp || 10; // public this.draw = function(marks) { var m = group.selectAll('.legend') .data(marks) .enter() .append('g') .attr('class', 'legend'); m.append('rect') .attr('x', 0) .attr('y', function(d, i) { return (markHeight + markPadding) * i; }) .attr('width', markWidth) .attr('height', markHeight) .attr('fill', function(d) { return d.color; }); m.append('text') .attr('transform', function(d, i) { var x = markWidth + markPadding; var y = (markHeight + markPadding) * i; y += tweak; return 'translate(' + x + ',' + y + ')'; }) .attr('class', 'legend-text') .text(function(d) { return d.category; }); }; // private var group = g; var markWidth = mw; var markHeight = mh; var markPadding = mp; var tweak = 16; }