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