i trying adopt bar chart example here understand data joins in d3 v4. enter selection works fine unable figure out how update. here have far: https://jsfiddle.net/hackygkl/ can please me.
var width = 420, barheight = 30; var svg = d3.select('#bar-chart') .append('svg') .attr('width', width + 50) .attr('height', 1000); var scale = d3.scalelinear() .range([0, width]); function createbar(data) { scale.domain([0, d3.max(data)]); var bargroups = svg.selectall('g') .data(data, function(d){return d;}); bargroups.exit().remove(); var entergroup = bargroups.enter() //enter .append('g') .merge(bargroups) //update .attr("transform", function(d, i){ return "translate(0, " + barheight * + ")"; }); var bars = bargroups.selectall('rect'); entergroup.append('rect') //enter .attr('class', 'bar') .attr('height', barheight - 1) .merge(bars) //update .attr('width', function(d){ return scale(d); }) .attr('fill', 'steelblue'); var texts = bargroups.selectall('text'); entergroup.append("text") //enter .attr('class', 'text') .attr("y", barheight / 2) .attr("dy", ".35em") .merge(texts) //update .attr("x", function(d) { return scale(d) + 10; }) .text(function(d) { return d;}); }
seems work after merging groups first, updating rects , texts: https://bl.ocks.org/ckothari/699b112b6e1376779e65973bbabdced6
Comments
Post a Comment