【发布时间】:2014-02-28 23:41:49
【问题描述】:
我正在尝试遵循这个例子:http://bl.ocks.org/mbostock/3886208
在我的应用程序中,我必须显示一个堆积条形图,例如,我可以在其中查看特定用户购买了多少种不同的动物。
这是我的对象:
[["PersonName1", 10, 10],["PersonName2", 4, 16]];
第一个属性是名字,第二个是动物类型1,第三个是动物类型2。
我陷入了这个 foreach 循环:
data.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;
});
下面的代码行具体是做什么的?
d.ages = color.domain().map(function(name) {
return {name: name, y0: y0, y1: y0 += +d[name]};
});
我无法完全弄清楚如何对我的对象做同样的事情。
我尝试过这样做:
scope.data.forEach(function(d) {
var y0 = 0;
d.animals = color.domain().map(function(name) {
return {name: d[0], y0: y0, y1: y0 += +d[1]};
});
d.total = d.animals[d.animals.length - 1].y1;
});
但是 d.animals 总是空的。
我以后还要用它:
state.selectAll("rect")
.data(function(d) { return d.animals; })
.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); });
有什么想法吗?
【问题讨论】:
标签: javascript d3.js bar-chart