[英]D3 bind data of nested JSON document
我有以下格式的MongoDB数据。 我想创建一个这样的数据的多线图,类似于: http : //bl.ocks.org/mbostock/3884955,X轴上的日期,Y轴上的持续时间和每个作业都是自己的分开的。
我对数据的嵌套特性感到很难 - 我以前做过一些简单的D3图表,但我不确定如何绑定和访问这些数据。 我在Stackoverflow上看过其他几个类似的例子(使用嵌套函数等),但我还没有完全理解它,我不确定这是否是最好的解决方案。 任何关于最佳方法的指针都将非常感激。
{
"result" : [
{
"_id" : {
"month" : 1,
"day" : 20,
"year" : 2014,
"job" : "ABC"
},
"build_duration" : 432565
},
{
"_id" : {
"month" : 1,
"day" : 17,
"year" : 2014,
"job" : "ABC"
},
"build_duration" : 543256
},
{
"_id" : {
"month" : 1,
"day" : 17,
"year" : 2014,
"job" : "DEF"
},
"build_duration" : 87634
},
{
"_id" : {
"month" : 1,
"day" : 20,
"year" : 2014,
"job" : "DEF"
},
"build_duration" : 456230
}
],
"ok" : 1
}
这是我要采取的方法。 根据作业ID嵌套数据,然后绘制嵌套数据。 嵌套的代码很简单,只需要
var nested = d3.nest().key(function(d) { return d._id.job; })
.entries(data.result);
然后你可以像这样绘制它(假设这里省略了适当的变量定义)。
svg.selectAll("path").data(nested)
.enter().append("path")
.style("stroke", function(d) { return color(d.key); })
.attr("d", function(d) { return line(d.values); });
在这里完成示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.