Having trouble positioning the total value for each bar above a bar in my bar chart. It seems to stay static no matter what I try. Any help would be greatly appreciated! Code snippet has been shortened for brevity.
Current look:
https://i.sstatic.net/N5ZIm.png
var x = d3.scaleBand()
.rangeRound([0, width])
.paddingInner(0.2);
var y = d3.scaleLinear()
.rangeRound([height, 0]);
var color = d3.scaleOrdinal()
.range(d3.schemeGreys[7]);
var xAxis = d3.axisBottom(x);
var yAxis = d3.axisLeft(y)
.tickFormat(d3.format(".2s"));
var svg = d3.select("body").append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.append("g")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")");
var update = function(data) {
color.domain(d3.keys(data[0]).filter(function(key) { return key !== "Categories"; }));
data.forEach(function(d) {
var y0 = 0;
d.stores = color.domain().map(function(name) { return {name: name, y0: y0, y1: y0 += +d[name]}; });
d.total = d.stores[d.stores.length - 1].y1;
});
data.sort(function(a, b) { return b.total - a.total; });
x.domain(data.map(function(d) { return d.Categories; }));
y.domain([0, d3.max(data, function(d) { return d.total; })]);
svg.append("g")
.attr("class", "x axis")
.attr("transform", "translate(0," + height + ")")
.call((xAxis)
.tickSize(0)
.tickPadding(6));
var categories = svg.selectAll(".categories")
.data(data)
.enter().append("g")
.attr("class", "g")
.attr("transform", function(d) { return "translate(" + x(d.Categories) + ",0)"; });
// more code...