Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.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 D3.js-错误:D3.line()不是函数(从版本4更改为3)_Javascript_D3.js - Fatal编程技术网

Javascript D3.js-错误:D3.line()不是函数(从版本4更改为3)

Javascript D3.js-错误:D3.line()不是函数(从版本4更改为3),javascript,d3.js,Javascript,D3.js,在我的D3代码中有以下代码段 var line = d3.line() .x(function (d) { return x(parseTime(d.date)); }) .y(function (d) { return y(d.close); }); 它说,d3.line()不是一个函数。 我最初是在版本4中编写代码的

在我的D3代码中有以下代码段

  var line = d3.line()
             .x(function (d) {
                 return x(parseTime(d.date));
             })
             .y(function (d) {
                 return y(d.close);
             });
它说,
d3.line()
不是一个函数。 我最初是在版本4中编写代码的。然后再次将其更改为版本3

我已将代码粘贴到下面

   var data = [{ "date": "2016.07.19", "close": 185697.89 }, { "date": "2016.07.20", "close": 185697.89 }, { "date": "2016.07.21", "close": 186601.1 }, { "date": "2016.07.22", "close": 187273.89 }];

           var svg = d3.select("svg"),
             margin = {
                 top: 20,
                 right: 20,
                 bottom: 30,
                 left: 50
             },
             width = +svg.attr("width") - margin.left - margin.right,
             height = +svg.attr("height") - margin.top - margin.bottom,
             g = svg.append("g").attr("transform", "translate(" + margin.left + "," + margin.top + ")");

           var parseTime = d3.time.format("%Y.%m.%d");

           var x = d3.scale.linear()
             .rangeRound([0, width]);

           var y = d3.scale.linear()
             .rangeRound([height, 0]);

           var line = d3.line()
             .x(function (d) {
                 return x(parseTime(d.date));
             })
             .y(function (d) {
                 return y(d.close);
             });

           x.domain(d3.extent(data, function (d) {
               return parseTime(d.date);
           }));
           y.domain(d3.extent(data, function (d) {
               return d.close;
           }));

           g.append("g")
             .attr("transform", "translate(0," + height + ")")
             .call(d3.axisBottom(x))
             .select(".domain")
             .remove();

           g.append("g")
             .call(d3.axisLeft(y))
             .append("text")
             .attr("fill", "#000")
             .attr("transform", "rotate(-90)")
             .attr("y", 6)
             .attr("dy", "0.71em")
             .attr("text-anchor", "end")
             .text("Price ($)");

           g.append("path")
             .datum(data)
             .attr("fill", "none")
             .attr("stroke", "steelblue")
             .attr("stroke-linejoin", "round")
             .attr("stroke-linecap", "round")
             .attr("stroke-width", 1.5)
             .attr("d", line);

有人能指出根据版本3需要做的任何更改吗?

正如@Cyril
d3所指出的那样。line()
不是一个函数,而是必须使用
d3.svg.line()
。还要寻找更多的解释


参考文献:

在v3I中,它应该是
d3.svg.line()
而不是d3.line()。然后它说getFullYear()不是一个函数。我的代码里甚至没有这样的方法我改了。然后它说getFullYear()不是一个函数。我甚至没有这种方法code@Nishi看。您可能希望使用格式而不是解析时间