我有一个分组堆积条形图,如图所示,http ://pasteboard.co/1BKMicBq.jpg 我想将各个条形图的总和相加,如图所示。我有一个数据集,其中包含准备显示的总和值,看起来像,
var months= [
{ "key": "Jan",
"values[0]": 25000,
"values[1]": 25000,
"values[3]": 25000
}, { "key": "Feb",
"values[0]": 25000,
"values[1]": 25000,
"values[3]": 25000
},
{ "key": "March",
"values[0]": 25000,
"values[1]": 25000,
"values[3]": 25000
}
]
我已经使用以下代码进行了尝试,但我无法获取每个条形图上的数据。
var project_stackedbar = svg.selectAll(".project_stackedbar")
.data(data)
.enter().append("g")
.attr("class", "g")
.attr("transform", function (d) { return "translate(" + x0(d.Month) + ",0)"; });
project_stackedbar.selectAll("rect")
.data(function (d) { return d.columnDetails; })
.enter()
.append("rect")
.attr("width", x1.rangeBand())
.attr("x", function (d) {
return x1(d.column);
})
.attr("y", function (d) {
return y(d.yEnd);
})
.attr("height", function (d) {
return y(d.yBegin) - y(d.yEnd);
})
.style("fill", function (d) { return color(d.name); });
var sum = 0;
project_stackedbar.selectAll("text")
.data(function (d) { return d.columnDetails; })
.enter()
.append("text")
.attr("x", function (d) { return x1(d.column) })
.attr("y", function (d) {
return y(d.yEnd) + 15;})
.text(function (d) {if (d.yEnd - d.yBegin !== 0) return "$" + (d.yEnd - d.yBegin);});
columns = svg.append("g")
.selectAll("text")
.data(months)
.enter().append("text")
.attr("x", function (d) {
return (x1(d.column));
})
.attr("y", function (d, i) {
return y(d.values[i]) - 60;
})
.attr("dy", "1.35em")
.attr('style', 'font-size:13px')
.text(function (d, i) {
if (d.values !== 0) return d3.format("$")(d.values[i]);
})
.style({ fill: 'black', "text-anchor": "middle" });
在这里,我只能获得 3 个值,这些值将打印在第一组条形图中。我无法在图中获得正确的 x 轴位置。任何人都可以在这里指导我我错了吗?