【发布时间】:2014-03-22 02:09:29
【问题描述】:
我正在尝试创建堆叠面积图并遇到了 stack 函数的问题。 x 轴为日期,y 轴为计数,面积为 buildResult。
代码如下:
var stack = d3.layout.stack()
.offset("zero")
.values(function(d) { return d.values; })
.x(function(d) { return d.date; })
.y(function(d) { return d.count; });
// Loop through the data and add elements
data.result.forEach(function(d) {
d.date = new Date(d._id.year, d._id.month-1, d._id.day);
});
// Nest by name aka status
var nested = d3.nest()
.key(function(d) { return d._id.buildResult; });
// Create the layers
var layers = stack(nested.entries(data.result));
原始数据如下:
{
"result" : [
{
"_id" : {
"month" : 1,
"day" : 20,
"year" : 2014,
"buildResult" : "FAILURE"
},
"count" : 27
},
{
"_id" : {
"month" : 1,
"day" : 20,
"year" : 2014,
"buildResult" : "SUCCESS"
},
"count" : 93
}
],
"ok" : 1
}
我得到的错误来自图层对象:
Cannot read property 1 of undefined
nested.entries(data.result) 对象不为空,所以我不确定发生了什么。感谢您的帮助!
【问题讨论】:
-
很难看到更多代码......但它不应该是
.key(function(d) {return d._id.buildResult;});吗? -
是的,我复制了错误的行。我有它,你有它,但仍然得到错误。将修复帖子。
标签: d3.js