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