Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.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 d3js图表点和区域未更新_Javascript_D3.js - Fatal编程技术网

Javascript d3js图表点和区域未更新

Javascript d3js图表点和区域未更新,javascript,d3.js,Javascript,D3.js,我调用了一个函数来呈现d3js图表: 这只能部分起作用,因为我得到了以下结果: 我试图弄明白为什么,但我弄不明白。。有什么想法吗?当您这样做时: svg.select("circle") 您仅选择页面中的第一个圆圈(如果有)。根据API,选择 选择与指定选择器字符串匹配的第一个元素。重点矿山 也就是说,您需要在这里选择All。但这并不能解决问题:您必须重新绑定数据。因为我不知道您的数据结构,所以默认方法是按索引绑定的 总之,它应该是: svg.selectAll("circle") .

我调用了一个函数来呈现d3js图表:

这只能部分起作用,因为我得到了以下结果:

我试图弄明白为什么,但我弄不明白。。有什么想法吗?

当您这样做时:

svg.select("circle")
您仅选择页面中的第一个圆圈(如果有)。根据API,选择

选择与指定选择器字符串匹配的第一个元素。重点矿山

也就是说,您需要在这里选择All。但这并不能解决问题:您必须重新绑定数据。因为我不知道您的数据结构,所以默认方法是按索引绑定的

总之,它应该是:

svg.selectAll("circle")
    .data(data)
    //etc...
由于这些圆有一个名为dot的类,因此可以使用以下方法避免选择其他圆:

svg.selectAll(".dot")
    .data(data)
    //etc...
对于线和区域,执行相同的操作:首先绑定数据,然后更改其d属性:

svg.select(".area")
    .data([data])
    .attr("d", area);

svg.select(".line")
    .data([data])
    .attr("d", valueline);
此外,由于您正在重新绑定数据,因此必须更改以下内容:

var svg = d3.select("body").transition();

因为svg.selectAll将是一个转换选择。也就是说,在重新绑定数据并将其从svg选择中删除后,将转换设置为每个单独的选择。

谢谢!在执行svg.selectAll.dot.datadata时,它给出了以下内容:svg.selectAll….数据不是函数。。svg.select.area.data[data]也一样。为什么?可能是因为你有一个没有转换的持续时间。我有var svg=d3.selectsvgsvg-day.transition;如上面的代码所示。然后删除它,并将转换添加到每个选择中。不能在转换选择中重新绑定数据。这种转变太不寻常了,我完全错过了。杰拉尔多。。。请看这个:
svg.select(".area")
    .data([data])
    .attr("d", area);

svg.select(".line")
    .data([data])
    .attr("d", valueline);
var svg = d3.select("body").transition();