Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to update data in stack bar chart in D3
    primarykey
    data
    text
    <p>I am able to populate a stacked bar chart first time, but my requirement is to update the stacked bar chart with new data on button click. On button click, i m making call to backend and getting the data, Could you please guide me as how to update the stacked bar char chart. My problem is passing the new data to bar chart.</p> <pre><code> d3.json("http://myhost/ITLabourEffortChart/effort/effort",function(error, data){ color.domain(d3.keys(data.effort[0]).filter(function(key) { return key !== "qName"; })); data.effort.forEach(function(d) { var y0 = 0; d.effortHr = color.domain().map(function(name) { return {name: name, y0: y0, y1: y0 += +d[name]}; }); d.total = d.effortHr[d.effortHr.length - 1].y1; }); x.domain(data.effort.map(function(d) { return d.qName; })); y.domain([0, d3.max(data.effort, function(d) { return d.total; })]); svg.append("g") .attr("class", "x axis") .attr("transform", "translate(0," + height + ")") .call(xAxis); svg.append("g") .attr("class", "y axis") .call(yAxis) .append("text") .attr("transform", "rotate(-90)") .attr("y", 6) .attr("dy", ".71em") .style("text-anchor", "end") .text("FTE"); var state = svg.selectAll(".layer") .data(data.effort) .enter().append("g") .attr("class", "g") .attr("transform", function(d) { return "translate(" + x(d.qName) + ",0)"; }); rect = state.selectAll("rect") .attr("id", "barchart") .data(function(d) { return d.effortHr; }) .enter().append("rect") .attr("width", x.rangeBand()) .attr("y", function(d) { return y(d.y1); }) .attr("height", function(d) { return y(d.y0) - y(d.y1); }) .style("fill", function(d) { return color(d.name); }); On Update i am calling below method function redraw() { d3.json("http://localhost:8080/ITLabourEffortChart/effort/effort/YrReports",function(error, data){ color.domain(d3.keys(data.effort[0]).filter(function(key) { return key !== "qName"; })); data.effort.forEach(function(d) { var y0 = 0; d.ages = color.domain().map(function(name) { return {name: name, y0: y0, y1: y0 += +d[name]}; }); d.total = d.ages[d.ages.length - 1].y1; }); var updatebar = svg.selectAll("#barchart"); // Update… updatebar .transition() .duration(500) .delay(function(d, i) { return i * 10; }) .transition() .attr("width", x.rangeBand()) .attr("y", function(d) { return y(d.y1); }) .attr("height", function(d) { return y(d.y0) - y(d.y1); }) .style("fill", function(d) { return color(d.name); } .attr("x", function(d) { return x(d.x); }) ); }); .attr("x", function(d) { return x(d.x); }) ); }); </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload