Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 链式转换数据问题_Javascript_Json_D3.js_Svg - Fatal编程技术网

Javascript 链式转换数据问题

Javascript 链式转换数据问题,javascript,json,d3.js,svg,Javascript,Json,D3.js,Svg,我一直在使用一个不断更新的版本 最近,我不得不转向稍微复杂一点的数据对象模型,并决定现在是切换到json数据的好时机 我还必须调整“本年度”以包括整整12个月(因此是去年的一部分)。也就是说,对于比例模型,数据下降到零是不可接受的 现在,由于某些原因,我无法在区域和valueLine转换中正确更新数据 所有轴和标签都会正确更新。但是,当前数据不是呈现新的数据选择,然后对其进行转换,而是滑出 我相信这是我代码中的一个错误,但我无法找到它: 此外,完整的代码已在上结束 JSON数据格式如下所示: {

我一直在使用一个不断更新的版本

最近,我不得不转向稍微复杂一点的数据对象模型,并决定现在是切换到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;
})]);