How to render rectangles in a D3 grouped bar chart using React Faux DOM?
Solution 1:
If your data is starting out like the example you provided, it's already nested and d3.nest(). Assuming that the data from your example is nestedData
, then your problem is that you need to bind values
not value
. See below:
svg.append("g").selectAll("g")
.data(nestedData)
.enter()
.append("g")
.style("fill", function(d, i) { return z(i); })
.attr("transform", function(d, i) { return `translate(${x1(i)},0)`; })
.selectAll("rect")
.data(function(d) { return d.values; }) // This needs to be values
.enter().append("rect")
.attr("width", x1.rangeBand())
.attr("height", yScale)
.attr("x", function(d, i) { return x0(i); })
.attr("y", function(d) { return height - yScale(d.value); });