Javascript 链式转换数据问题
我一直在使用一个不断更新的版本 最近,我不得不转向稍微复杂一点的数据对象模型,并决定现在是切换到json数据的好时机 我还必须调整“本年度”以包括整整12个月(因此是去年的一部分)。也就是说,对于比例模型,数据下降到零是不可接受的 现在,由于某些原因,我无法在区域和valueLine转换中正确更新数据 所有轴和标签都会正确更新。但是,当前数据不是呈现新的数据选择,然后对其进行转换,而是滑出 我相信这是我代码中的一个错误,但我无法找到它: 此外,完整的代码已在上结束 JSON数据格式如下所示:Javascript 链式转换数据问题,javascript,json,d3.js,svg,Javascript,Json,D3.js,Svg,我一直在使用一个不断更新的版本 最近,我不得不转向稍微复杂一点的数据对象模型,并决定现在是切换到json数据的好时机 我还必须调整“本年度”以包括整整12个月(因此是去年的一部分)。也就是说,对于比例模型,数据下降到零是不可接受的 现在,由于某些原因,我无法在区域和valueLine转换中正确更新数据 所有轴和标签都会正确更新。但是,当前数据不是呈现新的数据选择,然后对其进行转换,而是滑出 我相信这是我代码中的一个错误,但我无法找到它: 此外,完整的代码已在上结束 JSON数据格式如下所示: {
{
"2017": [
{
"date": "2016/11/01",
"close": 778
},
{
"date": "2016/12/01",
"close": 769
},
{
"date": "2017/01/01",
"close": 837
},
{
"date": "2017/02/01",
"close": 829
},
{
"date": "2017/03/01",
"close": 828
},
{
"date": "2017/04/01",
"close": 816
},
{
"date": "2017/05/01",
"close": 799
},
{
"date": "2017/06/01",
"close": 805
},
{
"date": "2017/07/01",
"close": 804
},
{
"date": "2017/08/01",
"close": 789
},
{
"date": "2017/09/01",
"close": 780
},
{
"date": "2017/10/01",
"close": 775
}
],
"2016": [
{
"date": "2016/01/01",
"close": 837
},
{
"date": "2016/02/01",
"close": 829
},
{
"date": "2016/03/01",
"close": 828
},
{
"date": "2016/04/01",
"close": 716
},
{
"date": "2016/05/01",
"close": 759
},
{
"date": "2016/06/01",
"close": 705
},
{
"date": "2016/07/01",
"close": 704
},
{
"date": "2016/08/01",
"close": 789
},
{
"date": "2016/09/01",
"close": 780
},
{
"date": "2016/10/01",
"close": 775
},
{
"date": "2016/11/01",
"close": 778
},
{
"date": "2016/12/01",
"close": 769
}
],
"2015": [
{
"date": "2015/01/01",
"close": 637
},
{
"date": "2015/02/01",
"close": 629
},
{
"date": "2015/03/01",
"close": 668
},
{
"date": "2015/04/01",
"close": 616
},
{
"date": "2015/05/01",
"close": 669
},
{
"date": "2015/06/01",
"close": 605
},
{
"date": "2015/07/01",
"close": 624
},
{
"date": "2015/08/01",
"close": 689
},
{
"date": "2015/09/01",
"close": 680
},
{
"date": "2015/10/01",
"close": 675
},
{
"date": "2015/11/01",
"close": 668
},
{
"date": "2015/12/01",
"close": 669
}
],
"2014": [
{
"date": "2014/01/01",
"close": 537
},
{
"date": "2014/02/01",
"close": 529
},
{
"date": "2014/03/01",
"close": 528
},
{
"date": "2014/04/01",
"close": 516
},
{
"date": "2014/05/01",
"close": 549
},
{
"date": "2014/06/01",
"close": 575
},
{
"date": "2014/07/01",
"close": 594
},
{
"date": "2014/08/01",
"close": 589
},
{
"date": "2014/09/01",
"close": 570
},
{
"date": "2014/10/01",
"close": 555
},
{
"date": "2014/11/01",
"close": 578
},
{
"date": "2014/12/01",
"close": 569
}
]
}
将数据重新绑定到路径
svg.select(".area").datum(data[current_year]);
svg.select(".line").datum(data[current_year]);
。。。并在转换前计算xScale
域:
xScale.domain([d3.min(data[current_year], function(d) {
return d.date;
}), d3.max(data[current_year], function(d) {
return d.date;
})]);
这是更新后的plunker:重新绑定数据是我所缺少的。出于某种原因,我认为只需再次调用该函数就足够了。非常感谢!有一个问题,我注意到现在数据标签(在图表的最右边)正在从图表中错误地转换。我们是怎么做的?同样的事情:你必须重新绑定数据:
xScale.domain([d3.min(data[current_year], function(d) {
return d.date;
}), d3.max(data[current_year], function(d) {
return d.date;
})]);